平方X 发表于 2016-6-23 10:07:19

TP5.0-基础

http://www.kancloud.cn/manual/thinkphp5/118007

平方X 发表于 2016-6-23 10:08:37

目录和文件命名
小写小划线
类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致(包括大小写);
类名和类文件名保持一致,并统一采用驼峰法命名(首字母大写)

平方X 发表于 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('/^(\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);
                }
            }
      }

平方X 发表于 2016-6-23 14:39:59

php think build --module demo

平方X 发表于 2016-6-23 16:26:59

index的移动,同时移动index.php,.htaccess,router.php
然后修改下index.php里面的路径就好了。
页: [1]
查看完整版本: TP5.0-基础