自动生成目录结构

ThinkPHP5.0 具备自动创建功能,可以用来自动生成需要的模块及目录结构和文件等,自动生成主要调用\think\Build类库。

1.定义生成目录规则

thinkPHP5默认自带了一个定义自动生成规则文件,build.php,位于根目录下

[php]  view plain  copy
  1. <?php  
  2. return [  
  3.     // 生成应用公共文件  
  4.     '__file__' => ['common.php''config.php''database.php'],  
  5.   
  6.     // 定义demo模块的自动生成 (按照实际定义的文件名生成)  
  7.     'demo'     => [  
  8.         '__file__'   => ['common.php'], //生成的文件,不定义会默认生成config.php文件  
  9.         '__dir__'    => ['behavior''controller''model''view'], //生成目录(支持多级目录)  
  10.         'controller' => ['Index''Test''UserType'],  //生成controller类  
  11.         'model'      => ['User''UserType'],  //生成model类  
  12.         'view'       => ['index/index'], //生成html文件,支持子目录  
  13.     ],  
  14.     // 其他更多的模块定义  
  15. ];  


模块的自动生成则以 APP_PATH.'模块名/' 为起始目录。

在入口文件index.php中tp5已经定义了APP_PATH,即起始目录位于applicaton文件夹下

[php]  view plain  copy
  1. define('APP_PATH', __DIR__ . '/../application/');  

并且会自动生成模块的默认的Index访问控制器文件用于显示框架的欢迎页面

2.自动生成目录操作

在入口文件index.php中可以直接调用\think\Build类的方法进行自动生成:

[php]  view plain  copy
  1. <?php  
  2.   
  3. // 定义应用目录  
  4. define('APP_PATH', __DIR__ . '/../application/');  
  5. // 加载框架引导文件  
  6. require __DIR__ . '/../thinkphp/start.php';  
  7. // 读取自动生成定义文件  
  8. $build = include './../build.php';  
  9. // 运行自动生成  
  10. \think\Build::run($build);   

保存后在浏览器地址栏输入localhost/tp5/public/运行tp5

这时在打开application文件下,会多出一个demo文件夹:

也可以直接使用默认目录生成模块

[php]  view plain  copy
  1. <?php  
  2.   
  3. // 定义应用目录  
  4. define('APP_PATH', __DIR__ . '/../application/');  
  5. // 加载框架引导文件  
  6. require __DIR__ . '/../thinkphp/start.php';  
  7. // 自动生成admin模块  
  8. \think\Build::module('admin');  

3.自定义模块的访问

根据tp5URL访问规则:http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...] 

默认访问地址http://localhost/tp5/public/访问的是index.php,index.php中定义了应用入口文件夹application,默认访问的是index模块下的Index控制器下的index类

等效于访问地址http://localhost/tp5/public/index.php/index/index/index

因此,若访问上面建立的demo模块的Index控制器的index类,访问地址应为:

http://localhost/tp5/public/index.php/demo/index/index

打开demo/controller/Index.php,修改为:

[php]  view plain  copy
  1. <?php  
  2. namespace app\demo\controller;  
  3.   
  4. class Index  
  5. {  
  6.     public function index()  
  7.     {  
  8.         return 'demo';  
  9.     }  
  10. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值