Skip to content

System Routes

Mohamed Labib edited this page Feb 1, 2016 · 18 revisions
Module Name Route Value Controller Action
SlmQueueDoctrine [--executionTime=] SlmQueueDoctrine\Controller\DoctrineWorkerControllerController recover
DefaultModule / DefaultModule\Controller\IndexController index
DefaultModule /sign[/:action] DefaultModule\Controller\SignController N/A
DefaultModule /noaccess DefaultModule\Controller\ErrorController noaccess
DefaultModule /resource_not_found DefaultModule\Controller\ErrorController resourceNotFound
CMS /cms/page[/:action] CMS\Controller\PageController N/A
CMS /cms/page/history/:id CMS\Controller\PageController history
CMS /cms/page/edit/:id CMS\Controller\PageController edit
CMS /cms/page/delete/:id CMS\Controller\PageController delete
CMS /cms/menu[/:action] CMS\Controller\MenuController N/A
CMS /cms/menu/edit/:id CMS\Controller\MenuController edit
CMS /cms/menu/delete/:id CMS\Controller\MenuController delete
CMS /cms/menuitem[/:action] CMS\Controller\MenuItemController N/A
CMS /cms/menuitem/edit/:id CMS\Controller\MenuItemController edit
CMS /cms/menuitem/delete/:id CMS\Controller\MenuItemController delete
Users /users[/:action] Users\Controller\IndexController N/A
Users /users/edit/:id Users\Controller\IndexController edit
Users /users/new Users\Controller\IndexController new
Users /users/delete/:id Users\Controller\IndexController delete
Users /roles[/:action] Users\Controller\RolesController N/A
Users /roles/edit/:id Users\Controller\RolesController edit
Users /roles/delete/:id Users\Controller\RolesController delete
Users /roles/privileges/:id Users\Controller\RolesController privileges
Organizations /organization-users[/:action] Organizations\Controller\OrganizationUsersController N/A
Organizations /organization-users/:organizationId Organizations\Controller\OrganizationUsersController index
Organizations /organization-users/new/:organizationId Organizations\Controller\OrganizationUsersController new
Organizations /organization-users/edit/:id Organizations\Controller\OrganizationUsersController edit
Organizations /organization-users/delete/:id Organizations\Controller\OrganizationUsersController delete
Organizations /organizations Organizations\Controller\OrganizationsController index
Organizations /organizations/type Organizations\Controller\OrganizationsController type
Organizations /organizations/atps Organizations\Controller\OrganizationsController atps
Organizations /organizations/atcs Organizations\Controller\OrganizationsController atcs
Organizations /organizations/more[/:id] Organizations\Controller\OrganizationsController more
Organizations /organizations/new Organizations\Controller\OrganizationsController new
Organizations /organizations/edit[/:id] Organizations\Controller\OrganizationsController edit
Organizations /organizations/delete[/:id] Organizations\Controller\OrganizationsController delete
Courses /resources[/:action] Courses\Controller\ResourceController N/A
Courses /resources[/:processResult] Courses\Controller\ResourceController index
Courses /resources/:courseId[/:processResult] Courses\Controller\ResourceController index
Courses /resources/new/:courseId Courses\Controller\ResourceController new
Courses /resources/edit/:id Courses\Controller\ResourceController edit
Courses /resources/edit/:id/:courseId Courses\Controller\ResourceController edit
Courses /resources/delete/:id Courses\Controller\ResourceController delete
Courses /resources/delete/:id/:courseId Courses\Controller\ResourceController delete
Courses /resources/download/:id Courses\Controller\ResourceController download
Courses /courses[/:action] Courses\Controller\CourseController N/A
Courses /courses/calendar Courses\Controller\CourseController calendar
Courses /courses/instructor-calendar Courses\Controller\CourseController instructorCalendar
Courses /courses/instructor-training Courses\Controller\CourseController instructorTraining
Courses /courses/more/:id Courses\Controller\CourseController more
Courses /courses/enroll/:id Courses\Controller\CourseController enroll
Courses /courses/leave/:id Courses\Controller\CourseController leave
Courses /courses/edit/:id Courses\Controller\CourseController edit
Courses /courses/delete/:id Courses\Controller\CourseController delete
Courses /courses/ev-templates Courses\Controller\CourseController evTemplates
Courses /courses/ev-templates/new Courses\Controller\CourseController newEvTemplate
Courses /courses/ev-templates/edit[/:id] Courses\Controller\CourseController editEvTemplate
Courses /courses/evaluation[/:courseId] Courses\Controller\CourseController evaluation
Courses /courses/evaluation/new[/:courseId] Courses\Controller\CourseController newEvaluation
Courses /courses/evaluation/edit[/:courseId] Courses\Controller\CourseController editEvaluation
Courses /courses/exam/book Courses\Controller\ExamController book
Courses /courses/exam/requests Courses\Controller\ExamController requests
Courses /courses/exam/request/accept[/:id] Courses\Controller\ExamController accept
Courses /courses/exam/request/decline[/:id] Courses\Controller\ExamController decline
Courses /courses/exam/tvtc/accept[/:id] Courses\Controller\ExamController tvtcAccept
Courses /courses/exam/tvtc/decline[/:id] Courses\Controller\ExamController tvtcDecline
Courses /courses/vote[/:courseId] Courses\Controller\CourseController vote
Versioning /version[/:action] Versioning\Controller\VersionController N/A
Versioning /version/restore/:redirect/:id Versioning\Controller\VersionController restore
Versioning /version/delete/:redirect/:id Versioning\Controller\VersionController delete
System /system/settings[/:action] System\Controller\SettingsController N/A
System /system/settings/edit/:id System\Controller\SettingsController edit
System /system/settings/delete/:id System\Controller\SettingsController delete
Question2Answer /q2a N/A N/A

Notes:

What does "[/:foo]" means ?

  • It means optionally the url can be appended with extra "/dummyText" and that dummyText would be accessible in controller action via a parameter in request called "foo".

What if "foo" in "[/:foo]" is replaced with "[/:action]" ?

  • It means that the value passed corresponding to the parameter named "action" is the controller action name, like "/new" means calling "newAction" method.

How optional actions can be discovered ?

  • By checking the Controller class, every action method is a possible value for the action parameter;

For Example:

  • "/sign[/:action]" corresponds to "/sign/in" and "/sign/out"
  • In CRUDs like Page "/cms/page[/:action]" corresponds to "/cms/page", "/cms/page/new", ..etc

Code used to generate the table above:

<?php

$routes = shell_exec("php vendor/bin/zf.php config list | grep routes");
$routesArray =  explode(/*$delimiter =*/ ".type = ", $routes);

// remove system urls
unset($routesArray[0]);
unset($routesArray[1]);
unset($routesArray[2]);

$routesMDString = "| Module Name  | Route Value | Controller | Action |
| ------------- | ------------- | ------------- | ------------- |".PHP_EOL;

foreach($routesArray as $routeString){
    $routeInfoArray = explode(PHP_EOL, $routeString);
    $routeValueArray = explode(" ", $routeInfoArray[1]);
    $routeValue = trim(end($routeValueArray),'"');
    $routeControllerArray = explode(" ", $routeInfoArray[2]);
    $routeController = trim(end($routeControllerArray),'"')."Controller";
    if(strpos($routeValue, ":action") !== false){
        $routeAction = "N/A";
    }else{
        $routeActionArray = explode(" ", $routeInfoArray[3]);
        $routeAction = trim(end($routeActionArray),'"');
    }
    $moduleNameArray = explode("\\", $routeController);
    $moduleName = trim(reset($moduleNameArray),'"');
    
    $routesMDString .= "| $moduleName | $routeValue | $routeController | $routeAction |".PHP_EOL;
}