php - Cakephp 如何检查其命名约定和文件夹名称?

标签 php cakephp routes conventions

cakephp 命名约定(即 Controller 名称应为 CakesController.php,即以 Controller 结尾)和文件夹约定(即 Controller 文件来自 app/Controller 文件夹)在哪里定义即 cakephp 如何检查它。它们在哪个文件中定义。

最佳答案

大部分事情都在 Router 的帮助下在 Dispatcher 中发生。和 Inflector ,例如:

protected function _loadController($request) {
    $pluginName = $pluginPath = $controller = null;
    if (!empty($request->params['plugin'])) {
        $pluginName = $controller = Inflector::camelize($request->params['plugin']);
        $pluginPath = $pluginName . '.';
    }
    if (!empty($request->params['controller'])) {
        $controller = Inflector::camelize($request->params['controller']);
    }
    if ($pluginPath . $controller) {
        $class = $controller . 'Controller';
        App::uses('AppController', 'Controller');
        App::uses($pluginName . 'AppController', $pluginPath . 'Controller');
        App::uses($class, $pluginPath . 'Controller');
        if (class_exists($class)) {
            return $class;
        }
    }
    return false;
}

来源:https://github.com/cakephp/cakephp/blob/master/lib/Cake/Routing/Dispatcher.php#L244

另请参阅CakePHP Cookbook explaining a typical request

typical CakePHP Request Lifecycle

关于php - Cakephp 如何检查其命名约定和文件夹名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21050999/

相关文章:

mysql - 查找模仿 CakePhp 中的 LeftJoin

jquery - 如何在 typeahead 函数调用中使用 bootstrap 的 typeahead 获取文本框的属性

c# - 将特定路由与 Url.Action 结合使用

javascript - 删除在 Google map 上呈现的路线

php - Symfony2 中弃用的方法 addValidation 和类 CallbackValidator

php - 如何在 Kohana 3 框架中安装自定义模块

php - 无法定位软件包 php7.3-gd

php - 如何在所有 Silex 路线 DRY/global 中包含功能?

php - 从二维数组中获取具有合格值的行的索引

php - javascript 到 php 中不会触发,直到 file_get_contents 返回数据