TP5.0-基础
http://www.kancloud.cn/manual/thinkphp5/118007 目录和文件命名小写小划线
类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致(包括大小写);
类名和类文件名保持一致,并统一采用驼峰法命名(首字母大写) 类用大驼峰
方法用小驼峰
函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip;
简而言之,尽量小写,
在类和类的文件名处,用大驼峰
方法用小驼峰
②这里要注意的是,控制器如果用了大驼峰命名,访问时要转为下划线。
而方法用的小驼峰,访问里却要用小驼峰。
我想自己修改,
发现
Loader.php中用parseName("",1)将名字转为java风格
定位到APP.php
在catch中加一层
try{
// 执行操作方法2
$action2=lcfirst(Loader::parseName($action,1));
$call = [$instance, $action2];
Hook::listen('action_begin', $call);
$data = self::invokeMethod($call);
}于是原来的
try {
$instance = Loader::controller($controller, $config['url_controller_layer'], $config['controller_suffix'], $config['empty_controller']);
// 获取当前操作名
$action = $actionName . $config['action_suffix'];
if (!preg_match('/^(\w)*$/', $action)) {
// 非法操作
throw new \ReflectionException('illegal action name:' . $actionName);
}
// 执行操作方法
$call = [$instance, $action];
Hook::listen('action_begin', $call);
$data = self::invokeMethod($call);
} catch (\ReflectionException $e) {
// 操作不存在
if (method_exists($instance, '_empty')) {
$method = new \ReflectionMethod($instance, '_empty');
$data = $method->invokeArgs($instance, [$action, '']);
self::$debug && Log::record('[ RUN ] ' . $method->getFileName(), 'info');
} else {
throw new HttpException(404, 'method not exists:' . (new \ReflectionClass($instance))->getName() . '->' . $action);
}
}
变为
try {
$instance = Loader::controller($controller, $config['url_controller_layer'], $config['controller_suffix'], $config['empty_controller']);
// 获取当前操作名
$action = $actionName . $config['action_suffix'];
if (!preg_match('/^(\w)*$/', $action)) {
// 非法操作
throw new \ReflectionException('illegal action name:' . $actionName);
}
// 执行操作方法
$call = [$instance, $action];
Hook::listen('action_begin', $call);
$data = self::invokeMethod($call);
} catch (\ReflectionException $e) {
// 操作不存在
try{
// 执行操作方法2
$action2=lcfirst(Loader::parseName($action,1));
$call = [$instance, $action2];
Hook::listen('action_begin', $call);
$data = self::invokeMethod($call);
}catch(\ReflectionException $e){
if (method_exists($instance, '_empty')) {
$method = new \ReflectionMethod($instance, '_empty');
$data = $method->invokeArgs($instance, [$action, '']);
self::$debug && Log::record('[ RUN ] ' . $method->getFileName(), 'info');
} else {
throw new HttpException(404, 'method not exists:' . (new \ReflectionClass($instance))->getName() . '->' . $action);
}
}
}
php think build --module demo index的移动,同时移动index.php,.htaccess,router.php
然后修改下index.php里面的路径就好了。
页:
[1]