平方X

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3303|回复: 4

[php] TP5.0-基础

[复制链接]

414

主题

709

帖子

3602

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3602
QQ
发表于 2016-6-23 10:07:19 | 显示全部楼层 |阅读模式
我是平方X~
回复

使用道具 举报

414

主题

709

帖子

3602

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3602
QQ
 楼主| 发表于 2016-6-23 10:08:37 | 显示全部楼层
目录和文件命名
小写小划线
类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致(包括大小写);
类名和类文件名保持一致,并统一采用驼峰法命名(首字母大写)
我是平方X~
回复 支持 反对

使用道具 举报

414

主题

709

帖子

3602

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3602
QQ
 楼主| 发表于 2016-6-23 10:12:29 | 显示全部楼层
类用大驼峰
方法用小驼峰
函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip;
简而言之,尽量小写,
在类和类的文件名处,用大驼峰
方法用小驼峰
②这里要注意的是,控制器如果用了大驼峰命名,访问时要转为下划线。
而方法用的小驼峰,访问里却要用小驼峰。


我想自己修改,
发现
Loader.php中用parseName("",1)将名字转为java风格
定位到APP.php
在catch中加一层
  1. try{
  2.     // 执行操作方法2
  3.     $action2=lcfirst(Loader::parseName($action,1));
  4.     $call = [$instance, $action2];
  5.     Hook::listen('action_begin', $call);
  6.     $data = self::invokeMethod($call);
  7. }
复制代码
于是原来的

  1.         try {
  2.             $instance = Loader::controller($controller, $config['url_controller_layer'], $config['controller_suffix'], $config['empty_controller']);

  3.             // 获取当前操作名
  4.             $action = $actionName . $config['action_suffix'];
  5.             if (!preg_match('/^[A-Za-z](\w)*$/', $action)) {
  6.                 // 非法操作
  7.                 throw new \ReflectionException('illegal action name:' . $actionName);
  8.             }

  9.             // 执行操作方法
  10.             $call = [$instance, $action];
  11.             Hook::listen('action_begin', $call);

  12.             $data = self::invokeMethod($call);
  13.         } catch (\ReflectionException $e) {
  14.             // 操作不存在
  15.             if (method_exists($instance, '_empty')) {
  16.                 $method = new \ReflectionMethod($instance, '_empty');
  17.                 $data   = $method->invokeArgs($instance, [$action, '']);
  18.                 self::$debug && Log::record('[ RUN ] ' . $method->getFileName(), 'info');
  19.             } else {
  20.                 throw new HttpException(404, 'method not exists:' . (new \ReflectionClass($instance))->getName() . '->' . $action);
  21.             }
  22.         }
复制代码

变为

  1.         try {
  2.             $instance = Loader::controller($controller, $config['url_controller_layer'], $config['controller_suffix'], $config['empty_controller']);

  3.             // 获取当前操作名
  4.             $action = $actionName . $config['action_suffix'];
  5.             if (!preg_match('/^[A-Za-z](\w)*$/', $action)) {
  6.                 // 非法操作
  7.                 throw new \ReflectionException('illegal action name:' . $actionName);
  8.             }

  9.             // 执行操作方法
  10.             $call = [$instance, $action];
  11.             Hook::listen('action_begin', $call);

  12.             $data = self::invokeMethod($call);
  13.         } catch (\ReflectionException $e) {
  14.             // 操作不存在
  15.             try{
  16.                 // 执行操作方法2
  17.                 $action2=lcfirst(Loader::parseName($action,1));
  18.                 $call = [$instance, $action2];
  19.                 Hook::listen('action_begin', $call);
  20.                 $data = self::invokeMethod($call);
  21.             }catch(\ReflectionException $e){
  22.                 if (method_exists($instance, '_empty')) {
  23.                     $method = new \ReflectionMethod($instance, '_empty');
  24.                     $data   = $method->invokeArgs($instance, [$action, '']);
  25.                     self::$debug && Log::record('[ RUN ] ' . $method->getFileName(), 'info');
  26.                 } else {
  27.                     throw new HttpException(404, 'method not exists:' . (new \ReflectionClass($instance))->getName() . '->' . $action);
  28.                 }
  29.             }
  30.         }
复制代码


我是平方X~
回复 支持 反对

使用道具 举报

414

主题

709

帖子

3602

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3602
QQ
 楼主| 发表于 2016-6-23 14:39:59 | 显示全部楼层
php think build --module demo
我是平方X~
回复 支持 反对

使用道具 举报

414

主题

709

帖子

3602

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3602
QQ
 楼主| 发表于 2016-6-23 16:26:59 | 显示全部楼层
index的移动,同时移动index.php,.htaccess,router.php
然后修改下index.php里面的路径就好了。
我是平方X~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|平方X ( 冀ICP备14018164号 )

GMT+8, 2024-4-26 01:54 , Processed in 0.130549 second(s), 21 queries .

技术支持:Powered by Discuz!X3.4  © 2001-2013 Comsenz Inc.

版权所有:Copyright © 2014-2018 平方X www.pingfangx.com All rights reserved.

快速回复 返回顶部 返回列表