Skip to content

System Routes

Mohamed Labib edited this page May 23, 2016 · 18 revisions
Module Name Route Value Controller Action
SlmQueueDoctrine --start SlmQueueDoctrine\Controller\DoctrineWorkerControllerController process
SlmQueueDoctrine [--executionTime=] SlmQueueDoctrine\Controller\DoctrineWorkerControllerController recover
DoctrineORMModule /ocra_service_manager_yuml DoctrineORMModule\Yuml\YumlControllerController index
DefaultModule / DefaultModule\Controller\IndexController index
DefaultModule /sign[/:action] DefaultModule\Controller\SignController N/A
DefaultModule /contact-us DefaultModule\Controller\ContactUsController index
DefaultModule /noaccess DefaultModule\Controller\ErrorController noaccess
DefaultModule /noagreement/:id/:role DefaultModule\Controller\ErrorController noAgreement
DefaultModule /resource_not_found[/:message] DefaultModule\Controller\ErrorController resourceNotFound
DefaultModule /general-resources DefaultModule\Controller\IndexController generalResources
DefaultModule /general-resources/download[/:filename] DefaultModule\Controller\IndexController download
DefaultModule /no-organization-users DefaultModule\Controller\ErrorController noOrganizationUsers
DefaultModule /test DefaultModule\Controller\IndexController test
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/page/activate/:id CMS\Controller\PageController activate
CMS /cms/page/upload CMS\Controller\PageController imgUpload
CMS /cms/page/browse CMS\Controller\PageController browse
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
CMS /cms/menuitem/activate/:id CMS\Controller\MenuItemController activate
CMS /cms/press-release[/:status/:unsubscribeFlag[/:failureMessage]] CMS\Controller\PressReleaseController index
CMS /cms/press-release/subscribe CMS\Controller\PressReleaseController subscribe
CMS /cms/press-release/unsubscribe[/:userId/:token] CMS\Controller\PressReleaseController unsubscribe
CMS /press[/:id] CMS\Controller\PressController details
CMS /pdf[/:newsId] CMS\Controller\PressController pdf
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 /users/activate/:id Users\Controller\IndexController activate
Users /users/instructors Users\Controller\IndexController instructors
Users /users/more/:id Users\Controller\IndexController more
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
[a-z]{2}(_[A-Z]{2})?Controller [/:lang] [a-z]{2}(_[A-Z]{2})?Controller LosI18n\Controller
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/:organizationId Organizations\Controller\OrganizationUsersController edit
Organizations /organization-users/delete/:organizationId Organizations\Controller\OrganizationUsersController delete
Organizations /organizations Organizations\Controller\OrganizationsController index
Organizations /organizations/pending/:id Organizations\Controller\OrganizationsController pending
Organizations /organizations/approve/:id Organizations\Controller\OrganizationsController approve
Organizations /organizations/disapprove/:id Organizations\Controller\OrganizationsController disapprove
Organizations /organizations/download/:id/:type[/:notApproved] Organizations\Controller\OrganizationsController download
Organizations /organizations/type Organizations\Controller\OrganizationsController type
Organizations /organizations/atps Organizations\Controller\OrganizationsController atps
Organizations /organizations/atcs Organizations\Controller\OrganizationsController atcs
Organizations /organizations/distributors Organizations\Controller\OrganizationsController distributors
Organizations /organizations/resellers Organizations\Controller\OrganizationsController resellers
Organizations /organizations/more[/:id] Organizations\Controller\OrganizationsController more
Organizations /organizations/new[/:v1[/:v2[/:v3[/:v4]]]] Organizations\Controller\OrganizationsController new
Organizations /organizations/edit[/:id] Organizations\Controller\OrganizationsController edit
Organizations /organizations/delete[/:id] Organizations\Controller\OrganizationsController delete
Organizations /organizations/savestate Organizations\Controller\OrganizationsController saveState
Organizations /organizations/myorganizations Organizations\Controller\OrganizationsController myOrganizations
Organizations /organizations/renew[/:organizationId[/:metaId]] Organizations\Controller\OrganizationsController renew
Courses /quote Courses\Controller\QuoteController index
Courses /quote/training/:type Courses\Controller\QuoteController training
Courses /quote/process/:type/:id Courses\Controller\QuoteController process
Courses /quote/delete/:type/:id Courses\Controller\QuoteController delete
Courses /quote/download/:type/:id Courses\Controller\QuoteController download
Courses /course-events[/:courseId] Courses\Controller\CourseEventController index
Courses /course-events/new[/:courseId] Courses\Controller\CourseEventController new
Courses /course-events/edit/:id[/:courseId] Courses\Controller\CourseEventController edit
Courses /course-events/delete/:id[/:courseId] Courses\Controller\CourseEventController delete
Courses /course-events/add-calendar Courses\Controller\CourseEventController addCalendarEvent
Courses /course-event-subscription/alert-subscribe/:id Courses\Controller\CourseEventSubscriptionController alertSubscribe
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 /courses/resources/edit/:courseId Courses\Controller\ResourceController edit
Courses /resources/edit/:id/:courseId Courses\Controller\ResourceController editRecource
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[/:token] Courses\Controller\CourseController calendar
Courses /courses/pending/:id Courses\Controller\CourseController pending
Courses /courses/approve/:id Courses\Controller\CourseController approve
Courses /courses/disapprove/:id Courses\Controller\CourseController disapprove
Courses /courses/instructor-calendar Courses\Controller\CourseController instructorCalendar
Courses /courses/instructor-training[/:token] Courses\Controller\CourseController instructorTraining
Courses /courses/more/:id[/:courseEventId] 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/proctors/:id Courses\Controller\ExamController proctors
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/:courseEventId Courses\Controller\CourseController vote
Courses /courses/outlines[/:courseId] Courses\Controller\OutlineController index
Courses /courses/mycourses Courses\Controller\CourseController myCourses
Courses /courses/outlines/generate-pdf/:id Courses\Controller\OutlineController generatePdf
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
IssueTracker /issues IssueTracker\Controller\IssueTrackerController index
IssueTracker /issues/new IssueTracker\Controller\IssueTrackerController new
IssueTracker /issues/view[/:issueId] IssueTracker\Controller\IssueTrackerController view
IssueTracker /issues/close[/:issueId] IssueTracker\Controller\IssueTrackerController close
IssueTracker /issues/reopen[/:issueId] IssueTracker\Controller\IssueTrackerController reopen
IssueTracker /issues/delete[/:issueId] IssueTracker\Controller\IssueTrackerController delete
IssueTracker /issues/categories IssueTracker\Controller\IssueController categories
IssueTracker /issues/categories/new IssueTracker\Controller\IssueController newCategory
IssueTracker /issues/categories/edit[/:issueId] IssueTracker\Controller\IssueController editCategory
IssueTracker /issues/categories/remove[/:issueId] IssueTracker\Controller\IssueController removeCategory
IssueTracker /issues/comments/edit[/:issueId[/:commentId]] IssueTracker\Controller\CommentController edit
IssueTracker /issues/comments/remove[/:issueId[/:commentId]] IssueTracker\Controller\CommentController remove
Translation /trans/index Translation\Controller\IndexController index
Translation /trans/setlocale/:locale Translation\Controller\IndexController setLocale
Chat /chat Chat\Controller\ChatController startChat
Chat /chat/minimize Chat\Controller\ChatController minimizeChat
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);

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

foreach($routesArray as $routeString){
    if(substr_count( $routeString, PHP_EOL ) < 4){
        continue;
    }
    $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;
}