示例#1
0
 /**
  * Route the request and execute the controller.
  */
 public static function process()
 {
     Request::init();
     $route = Router::process();
     if (!$route) {
         $route = Router::getRoute('404');
     }
     if ($route) {
         list($class, $method) = explode('::', $route->controller);
         $action = "{$method}Action";
         Request::$properties->set(['controller' => $class, 'action' => $method]);
         if (!class_exists($class)) {
             throw new Exception("Controller class [{$class}] not found");
         }
         if (!method_exists($class, $action)) {
             throw new Exception("Controller action [{$route->controller}Action] not found");
         }
         $controller = new $class();
         $response = static::runFilters('before', $controller, $method);
         if (!$response) {
             $response = call_user_func_array([$controller, $action], $route->actionParams());
         }
         static::runFilters('after', $controller, $method);
         if (!$response instanceof Response) {
             throw new Exception("The controller returned an invalid response");
         }
         return $response;
     } else {
         throw new Exception(sprintf("No route matches [%s %s] and no 404 controller set", Request::$method, Request::$pathInfo));
     }
 }
示例#2
0
文件: admin.php 项目: dasklney/traq
Router::post('admin_create_type', '/admin/types/new', "{$ns}\\Admin\\Types::create");
Router::get('admin_edit_type', '/admin/types/{id}/edit', "{$ns}\\Admin\\Types::edit");
Router::post('admin_save_type', '/admin/types/{id}/edit', "{$ns}\\Admin\\Types::save");
Router::get('admin_delete_type', '/admin/types/{id}/delete', "{$ns}\\Admin\\Types::destroy");
// Statuses
Router::get('admin_statuses', '/admin/statuses', "{$ns}\\Admin\\Statuses::index");
Router::get('admin_new_status', '/admin/statuses/new', "{$ns}\\Admin\\Statuses::new");
Router::post('admin_create_status', '/admin/statuses/new', "{$ns}\\Admin\\Statuses::create");
Router::get('admin_edit_status', '/admin/statuses/{id}/edit', "{$ns}\\Admin\\Statuses::edit");
Router::post('admin_save_status', '/admin/statuses/{id}/edit', "{$ns}\\Admin\\Statuses::save");
Router::get('admin_delete_status', '/admin/statuses/{id}/delete', "{$ns}\\Admin\\Statuses::destroy");
// Priorities
Router::get('admin_priorities', '/admin/priorities', "{$ns}\\Admin\\Priorities::index");
Router::get('admin_new_priority', '/admin/priorities/new', "{$ns}\\Admin\\Priorities::new");
Router::post('admin_create_priority', '/admin/priorities/new', "{$ns}\\Admin\\Priorities::create");
Router::get('admin_edit_priority', '/admin/priorities/{id}/edit', "{$ns}\\Admin\\Priorities::edit");
Router::post('admin_save_priority', '/admin/priorities/{id}/edit', "{$ns}\\Admin\\Priorities::save");
Router::get('admin_delete_priority', '/admin/priorities/{id}/delete', "{$ns}\\Admin\\Priorities::destroy");
// Severities
Router::get('admin_severities', '/admin/severities', "{$ns}\\Admin\\Severities::index");
Router::get('admin_new_severity', '/admin/severities/new', "{$ns}\\Admin\\Severities::new");
Router::post('admin_create_severity', '/admin/severities/new', "{$ns}\\Admin\\Severities::create");
Router::get('admin_edit_severity', '/admin/severities/{id}/edit', "{$ns}\\Admin\\Severities::edit");
Router::post('admin_save_severity', '/admin/severities/{id}/edit', "{$ns}\\Admin\\Severities::save");
Router::get('admin_delete_severity', '/admin/severities/{id}/delete', "{$ns}\\Admin\\Severities::destroy");
// Permissions
Router::get('admin_permissions', '/admin/permissions/groups', "{$ns}\\Admin\\Permissions::groups");
Router::post('admin_permissions_groups_save', '/admin/permissions/groups', "{$ns}\\Admin\\Permissions::saveGroups");
Router::post('admin_permissions_roles_save', '/admin/permissions/roles', "{$ns}\\Admin\\Permissions::saveRoles");
Router::get('admin_permissions_roles', '/admin/permissions/roles', "{$ns}\\Admin\\Permissions::roles");
示例#3
0
文件: routes.php 项目: nirix/traq
<?php

use Avalon\Routing\Router;
$ns = "Traq\\Controllers\\";
Router::addToken('pslug', '(?P<pslug>[^/]*?)');
Router::addExtension('txt');
Router::root("{$ns}Projects::index");
// -----------------------------------------------------------------------------
// User routes
Router::get('register', '/register', "{$ns}Users::new");
Router::post('user_create', '/register', "{$ns}Users::create");
Router::get('login', '/login', "{$ns}Sessions::new");
Router::post('session_create', '/login', "{$ns}Sessions::create");
Router::delete('logout', '/logout', "{$ns}Sessions::destroy");
Router::get('user', '/users/{id}', "{$ns}Users::show");
Router::get('usercp', '/usercp', "{$ns}UserCP::index");
// -----------------------------------------------------------------------------
// Admin routes
require __DIR__ . '/routes/admin.php';
// -----------------------------------------------------------------------------
// Project routes
require __DIR__ . '/routes/projects.php';
// -----------------------------------------------------------------------------
// Project settings routes
require __DIR__ . '/routes/project_settings.php';
示例#4
0
 /**
  * @param string $route
  * @param array  $tokens
  *
  * @return string
  */
 protected function generateUrl($route, array $tokens = [])
 {
     return Router::generateUrl($route, $tokens);
 }
示例#5
0
文件: admin.php 项目: nirix/traq
// Statuses
Router::get('admin_statuses', '/admin/statuses', "{$ans}Statuses::index");
Router::get('admin_new_status', '/admin/statuses/new', "{$ans}Statuses::new");
Router::post('admin_create_status', '/admin/statuses', "{$ans}Statuses::create");
Router::get('admin_edit_status', '/admin/statuses/{id}/edit', "{$ans}Statuses::edit");
Router::put('admin_save_status', '/admin/statuses/{id}', "{$ans}Statuses::save")->method(['PUT', 'PATCH']);
Router::delete('admin_delete_status', '/admin/statuses/{id}/delete', "{$ans}Statuses::destroy");
// -----------------------------------------------------------------------------
// Priorities
Router::get('admin_priorities', '/admin/priorities', "{$ans}Priorities::index");
Router::get('admin_new_priority', '/admin/priorities/new', "{$ans}Priorities::new");
Router::post('admin_create_priority', '/admin/priorities', "{$ans}Priorities::create");
Router::get('admin_edit_priority', '/admin/priorities/{id}/edit', "{$ans}Priorities::edit");
Router::put('admin_save_priority', '/admin/priorities/{id}', "{$ans}Priorities::save")->method(['PUT', 'PATCH']);
Router::delete('admin_delete_priority', '/admin/priorities/{id}/delete', "{$ans}Priorities::destroy");
// -----------------------------------------------------------------------------
// Severities
Router::get('admin_severities', '/admin/severities', "{$ans}Severities::index");
Router::get('admin_new_severity', '/admin/severities/new', "{$ans}Severities::new");
Router::post('admin_create_severity', '/admin/severities', "{$ans}Severities::create");
Router::get('admin_edit_severity', '/admin/severities/{id}/edit', "{$ans}Severities::edit");
Router::put('admin_save_severity', '/admin/severities/{id}', "{$ans}Severities::save")->method(['PUT', 'PATCH']);
Router::delete('admin_delete_severity', '/admin/severities/{id}/delete', "{$ans}Severities::destroy");
// -----------------------------------------------------------------------------
// Permissions
Router::get('admin_permissions', '/admin/permissions', "{$ans}Permissions::usergroups");
Router::get('admin_permissions_usergroups', '/admin/permissions/usergroups', "{$ans}Permissions::usergroups");
Router::post('admin_permissions_usergroups_save', '/admin/permissions/usergroups', "{$ans}Permissions::saveUsergroups");
Router::get('admin_permissions_roles', '/admin/permissions/roles', "{$ans}Permissions::roles");
Router::post('admin_permissions_roles_save', '/admin/permissions/roles', "{$ans}Permissions::saveRoles");
示例#6
0
文件: projects.php 项目: nirix/traq
Router::delete('timeline_delete_event', '/{pslug}/timeline/{id}', "{$ns}Timeline::deleteEvent");
// Roadmap
Router::get('roadmap', '/{pslug}/roadmap', "{$ns}Roadmap::index");
Router::get('roadmap_all', '/{pslug}/roadmap/all', "{$ns}Roadmap::index", ['filter' => 'all']);
Router::get('roadmap_completed', '/{pslug}/roadmap/completed', "{$ns}Roadmap::index", ['filter' => 'completed']);
Router::get('roadmap_cancelled', '/{pslug}/roadmap/cancelled', "{$ns}Roadmap::index", ['filter' => 'cancelled']);
Router::get('milestone', '/{pslug}/milestone/{slug}', "{$ns}Roadmap::show");
// Tickets
Router::get('tickets', '/{pslug}/tickets', "{$ns}TicketListing::index");
Router::get('ticket', '/{pslug}/tickets/{id}', "{$ns}Tickets::show");
Router::get('new_ticket', '/{pslug}/tickets/new', "{$ns}Tickets::new");
Router::post('create_ticket', '/{pslug}/tickets', "{$ns}Tickets::create");
Router::post('tickets_set_columns', '/{pslug}/tickets/set-columns', "{$ns}TicketListing::setColumns");
Router::post('tickets_set_filters', '/{pslug}/tickets/set-filters', "{$ns}TicketListing::setFilters");
Router::put('update_ticket', '/{pslug}/tickets/{id}', "{$ns}Tickets::update")->method(['PUT', 'PATCH']);
Router::get('ticket_edit_description', '/{pslug}/tickets/{id}/edit-description', "{$ns}Tickets::editDescription");
Router::post('ticket_save_description', '/{pslug}/tickets/{id}/edit-description', "{$ns}Tickets::saveDescription");
Router::get('ticket_edit_comment', '/{pslug}/tickets/history/{id}/edit', "{$ns}TicketHistory::edit");
Router::delete('ticket_delete_comment', '/{pslug}/tickets/history/{id}', "{$ns}TicketHistory::destroy");
// Wiki
Router::get('wiki', '/{pslug}/wiki', "{$ns}Wiki::show", ['slug' => 'main']);
Router::get('wiki_pages', '/{pslug}/wiki/_pages', "{$ns}Wiki::pages");
Router::get('wiki_new', '/{pslug}/wiki/_new', "{$ns}Wiki::new");
Router::post('wiki_create', '/{pslug}/wiki', "{$ns}Wiki::create");
Router::get('wiki_page', '/{pslug}/wiki/{slug}', "{$ns}Wiki::show");
Router::get('wiki_revisions', '/{pslug}/wiki/{slug}/_revisions', "{$ns}Wiki::revisions");
Router::get('wiki_revision', '/{pslug}/wiki/{slug}/_revisions/{id}', "{$ns}Wiki::revision");
Router::get('wiki_edit', '/{pslug}/wiki/{slug}/_edit', "{$ns}Wiki::edit");
Router::put('wiki_save', '/{pslug}/wiki/{slug}', "{$ns}Wiki::save")->method(['PUT', 'PATCH']);
Router::delete('wiki_delete', '/{pslug}/wiki/{slug}', "{$ns}Wiki::destroy");
示例#7
0
文件: routes.php 项目: traq/installer
 * Traq
 * Copyright (C) 2009-2016 Jack P.
 * Copyright (C) 2012-2016 Traq.io
 * https://github.com/nirix
 * https://traq.io
 *
 * This file is part of Traq.
 *
 * Traq is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; version 3 only.
 *
 * Traq is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Traq. If not, see <http://www.gnu.org/licenses/>.
 */
use Avalon\Routing\Router;
Router::root("Traq\\Installer\\Controllers\\Checks::licenseAgreement");
// Database
Router::post('database_info', '/step/1', 'Traq\\Installer\\Controllers\\Steps::databaseInformation');
// Admin account
Router::post('account_info', '/step/2', 'Traq\\Installer\\Controllers\\Steps::accountInformation');
// Confirm information
Router::post('confirm', '/confirm', 'Traq\\Installer\\Controllers\\Steps::confirmInformation');
// Install
Router::post('install', '/install', 'Traq\\Installer\\Controllers\\Install::install');
示例#8
0
文件: routes.php 项目: dasklney/traq
// Misc
Router::get('js', '/_js', "{$ns}\\Misc::js");
Router::get('api_statuses', '/statuses', "{$ns}\\Misc::statuses");
Router::get('api_priorities', '/priorities', "{$ns}\\Misc::priorities");
// -----------------------------------------------------------------------------
// User routes
// Login and out
Router::get('session_new', '/login', "{$ns}\\Sessions::new");
Router::post('session_create', '/login', "{$ns}\\Sessions::create");
Router::get('session_destroy', '/logout', "{$ns}\\Sessions::destroy");
Router::get('user', '/profile/{id}', "{$ns}\\Users::show");
// Register
Router::get('user_new', '/register', "{$ns}\\Users::new");
Router::post('user_create', '/register', "{$ns}\\Users::create");
Router::get('account_activation', '/users/activate/{activation_code}', "{$ns}\\Users::activate");
// UserCP
Router::get('usercp', '/usercp', "{$ns}\\UserCP::index");
Router::get('usercp_generate_api_key', '/usercp/create_api_key', "{$ns}\\UserCP::generateApiKey");
Router::post('usercp_save', '/usercp', "{$ns}\\UserCP::save");
Router::get('usercp_password', '/usercp/password', "{$ns}\\UserCP::password");
Router::post('usercp_password_save', '/usercp/password', "{$ns}\\UserCP::savePassword");
Router::get('usercp_subscriptions', '/usercp/subscriptions', "{$ns}\\UserCP::subscriptions");
// -----------------------------------------------------------------------------
// Admin routes
require __DIR__ . '/routes/admin.php';
// -----------------------------------------------------------------------------
// Project settings routes
require __DIR__ . '/routes/project_settings.php';
// -----------------------------------------------------------------------------
// Project routes
require __DIR__ . '/routes/projects.php';
示例#9
0
<?php

use Avalon\Routing\Router;
// Settings
Router::get('project_settings', '/{pslug}/settings', "{$ns}\\ProjectSettings\\Options::index");
Router::post('project_settings_save', '/{pslug}/settings', "{$ns}\\ProjectSettings\\Options::save");
// Milestones
Router::get('project_settings_milestones', '/{pslug}/settings/milestones', "{$ns}\\ProjectSettings\\Milestones::index");
Router::get('project_settings_new_milestone', '/{pslug}/settings/milestones/new', "{$ns}\\ProjectSettings\\Milestones::new");
Router::post('project_settings_create_milestone', '/{pslug}/settings/milestones/new', "{$ns}\\ProjectSettings\\Milestones::create");
Router::get('project_settings_edit_milestone', '/{pslug}/settings/milestones/{id}/edit', "{$ns}\\ProjectSettings\\Milestones::edit");
Router::post('project_settings_save_milestone', '/{pslug}/settings/milestones/{id}/edit', "{$ns}\\ProjectSettings\\Milestones::save");
Router::get('project_settings_delete_milestone', '/{pslug}/settings/milestones/{id}/delete', "{$ns}\\ProjectSettings\\Milestones::destroy");
// Components
Router::get('project_settings_components', '/{pslug}/settings/components', "{$ns}\\ProjectSettings\\Components::index");
Router::get('project_settings_new_component', '/{pslug}/settings/components/new', "{$ns}\\ProjectSettings\\Components::new");
Router::post('project_settings_create_component', '/{pslug}/settings/components/new', "{$ns}\\ProjectSettings\\Components::create");
Router::get('project_settings_edit_component', '/{pslug}/settings/components/{id}/edit', "{$ns}\\ProjectSettings\\Components::edit");
Router::post('project_settings_save_component', '/{pslug}/settings/components/{id}/edit', "{$ns}\\ProjectSettings\\Components::save");
Router::get('project_settings_delete_component', '/{pslug}/settings/components/{id}/delete', "{$ns}\\ProjectSettings\\Components::destroy");
// Members
Router::get('project_settings_members', '/{pslug}/settings/members', "{$ns}\\ProjectSettings\\Members::index");
Router::post('project_settings_create_member', '/{pslug}/settings/members/new', "{$ns}\\ProjectSettings\\Members::create");
Router::post('project_settings_save_members', '/{pslug}/settings/members/save', "{$ns}\\ProjectSettings\\Members::saveAll");
Router::get('project_settings_delete_member', '/{pslug}/settings/members/{id}/delete', "{$ns}\\ProjectSettings\\Members::destroy");
// Custom fields
Router::get('project_settings_custom_fields', '/{pslug}/settings/custom-fields', "{$ns}\\ProjectSettings\\CustomFields::index");
示例#10
0
文件: routes.php 项目: nirix/dreamer
<?php

use Avalon\Routing\Router;
Router::root('Dreamer\\Controllers\\Articles::index');
Router::set404('Dreamer\\Controllers\\Errors::notFound');
Router::post('login', '/login', 'Dreamer\\Controllers\\Sessions::new');
Router::post('register', '/users', 'Dreamer\\Controllers\\Users::new');
Router::delete('logout', '/logout', 'Dreamer\\Controllers\\Sessions::destroy');
Router::get('admin_current_user', '/admin/current-user', 'Dreamer\\Controllers\\Admin\\Catchall::currentUser');
Router::get('admin', '/admin.*', 'Dreamer\\Controllers\\Admin\\Catchall::index');
示例#11
0
// -----------------------------------------------------------------------------
// Milestones
Router::get("{$pn}milestones", "{$purl}/milestones", "{$pns}Milestones::index");
Router::get("{$pn}new_milestone", "{$purl}/milestones/new", "{$pns}Milestones::new");
Router::post("{$pn}create_milestone", "{$purl}/milestones", "{$pns}Milestones::create");
Router::get("{$pn}edit_milestone", "{$purl}/milestones/{id}/edit", "{$pns}Milestones::edit");
Router::put("{$pn}save_milestone", "{$purl}/milestones/{id}", "{$pns}Milestones::save")->method(['PUT', 'PATCH']);
Router::get("{$pn}delete_milestone", "{$purl}/milestones/{id}/delete", "{$pns}Milestones::delete");
// -----------------------------------------------------------------------------
// Components
Router::get("{$pn}components", "{$purl}/components", "{$pns}Components::index");
Router::get("{$pn}new_component", "{$purl}/components/new", "{$pns}Components::new");
Router::post("{$pn}create_component", "{$purl}/components", "{$pns}Components::create");
Router::get("{$pn}edit_component", "{$purl}/components/{id}/edit", "{$pns}Components::edit");
Router::put("{$pn}save_component", "{$purl}/components/{id}", "{$pns}Components::save")->method(['PUT', 'PATCH']);
Router::delete("{$pn}delete_component", "{$purl}/components/{id}/delete", "{$pns}Components::destroy");
// -----------------------------------------------------------------------------
// Members
Router::get("{$pn}members", "{$purl}/members", "{$pns}Members::index");
Router::post("{$pn}create_member", "{$purl}/members", "{$pns}Members::create");
Router::put("{$pn}save_members", "{$purl}/members", "{$pns}Members::saveAll");
Router::delete("{$pn}delete_member", "{$purl}/members/{id}", "{$pns}Members::destroy");
// -----------------------------------------------------------------------------
// Custom fields
Router::get("{$pn}custom_fields", "{$purl}/custom-fields", "{$pns}CustomFields::index");
Router::get("{$pn}new_custom_field", "{$purl}/custom-fields/new", "{$pns}CustomFields::new");
Router::post("{$pn}create_custom_field", "{$purl}/custom-fields", "{$pns}CustomFields::create");
Router::get("{$pn}edit_custom_field", "{$purl}/custom-fields/{id}/edit", "{$pns}CustomFields::edit");
Router::put("{$pn}save_custom_field", "{$purl}/custom-fields/{id}", "{$pns}CustomFields::save");
Router::delete("{$pn}delete_custom_field", "{$purl}/custom-fields/{id}", "{$pns}CustomFields::destroy");
示例#12
0
Router::get('roadmap', '/{pslug}/roadmap', "{$ns}\\Roadmap::index");
Router::get('roadmap_completed', '/{pslug}/roadmap/completed', "{$ns}\\Roadmap::index", ['filter' => 'completed']);
Router::get('roadmap_all', '/{pslug}/roadmap/all', "{$ns}\\Roadmap::index", ['filter' => 'all']);
Router::get('roadmap_cancelled', '/{pslug}/roadmap/cancelled', "{$ns}\\Roadmap::index", ['filter' => 'cancelled']);
Router::get('milestone', '/{pslug}/roadmap/{mslug}', "{$ns}\\Roadmap::show");
// Issues
Router::get('tickets', '/{pslug}/issues', "{$ns}\\TicketListing::index");
Router::get('tickets_compat', '/{pslug}/tickets', "{$ns}\\TicketListing::index");
Router::post('tickets_set_columns', '/{pslug}/issues/set-columns', "{$ns}\\TicketListing::setColumns");
Router::post('tickets_set_filters', '/{pslug}/issues/set-filters', "{$ns}\\TicketListing::setFilters");
Router::get('new_ticket', '/{pslug}/issues/new', "{$ns}\\Tickets::new");
Router::post('create_ticket', '/{pslug}/issues/new', "{$ns}\\Tickets::create");
Router::get('ticket', '/{pslug}/issues/{id}', "{$ns}\\Tickets::show");
Router::get('ticket_compat', '/{pslug}/tickets/{id}', "{$ns}\\Tickets::show");
Router::post('update_ticket', '/{pslug}/issues/{id}', "{$ns}\\Tickets::update");
Router::get('ticket_edit_description', '/{pslug}/issues/{id}/edit-description', "{$ns}\\Tickets::editDescription");
Router::post('ticket_save_description', '/{pslug}/issues/{id}/edit-description', "{$ns}\\Tickets::saveDescription");
// Changelog
Router::get('changelog', '/{pslug}/changelog', "{$ns}\\Projects::changelog");
// Wiki
Router::get('wiki', '/{pslug}/wiki', "{$ns}\\Wiki::show", ['slug' => 'main']);
Router::get('wiki_new', '/{pslug}/wiki/_new', "{$ns}\\Wiki::new");
Router::post('wiki_create', '/{pslug}/wiki/_new', "{$ns}\\Wiki::create");
Router::get('wiki_edit', '/{pslug}/wiki/{slug}/_edit', "{$ns}\\Wiki::edit");
Router::post('wiki_save', '/{pslug}/wiki/{slug}/_edit', "{$ns}\\Wiki::save");
Router::get('wiki_delete', '/{pslug}/wiki/{slug}/_delete', "{$ns}\\Wiki::destroy");
Router::get('wiki_pages', '/{pslug}/wiki/_pages', "{$ns}\\Wiki::pages");
Router::get('wiki_page', '/{pslug}/wiki/{slug}', "{$ns}\\Wiki::show");
Router::get('wiki_revisions', '/{pslug}/wiki/{slug}/_revisions', "{$ns}\\Wiki::revisions");
Router::get('wiki_revision', '/{pslug}/wiki/{slug}/_revisions/{id}', "{$ns}\\Wiki::revision");