|
楼主 |
发表于 2016-6-23 10:12:29
|
显示全部楼层
类用大驼峰
方法用小驼峰
函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 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('/^[A-Za-z](\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('/^[A-Za-z](\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);
- }
- }
- }
复制代码
|
|