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