自从上个月thinkphp5 beta版开放之后就一直在关注thinkphp5的官方文档,看完文档后发现thinkphp5的目录结构及一些类语法改变了,如果要将thinkphp3.2版本的项目升级到thinkphp5的话光修改目录及文件就是一项很大的工程。
在最新的thinkphp5的文档中发现支持目录及文件的自动生成机制,但具体使用文档没有发布。
自己研究了一下源码后找出了操作步骤。
1、在系统的APP_PATH目录中,也就是默认的application目录中创建一个build.php文件,编辑其内容为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php return [ // 生成运行时目录 'runtime' => [ '__dir__' => ['cache', 'log', 'temp'], ], 'admin' => [ '__file__' => [], '__dir__' => ['controller', 'view'], 'controller' => ['Addons', 'Article', 'Cate', 'Common', 'Config', 'System', 'Theme', 'User'], 'view' => ['addons/index', 'article/add', 'cate/add', 'config/index', 'public/base', 'system/index', 'tags/index', 'theme/index', 'user/index'], ], 'common'=>[ '__file__' => [], '__dir__' => ['behavior', 'controller', 'model', 'api'], 'controller' => ['Addon'], 'model' => ['Addons', 'Article', 'Cate', 'Config', 'File', 'Hooks', 'Picture', 'Tree', 'Url'], ], 'home'=>[ '__file__' => ['config.php', 'common.php'], '__dir__' => ['widget', 'controller', 'view'], 'controller' => ['Addons', 'Api', 'Error', 'Index'], 'view' => ['index/index', 'widget/archive'], 'widget' =>['Common'] ], // 。。。 其他更多的模块定义 ]; |
其中数组的第一个键为application目录中的模块名称,需要一个一个添加。然后依次是模块对应的子目录__dir__
、__file__
、controller、model、view 之类的子目录。
2、在public中的index.php入口文件里添加一个常量 APP_AUTO_BUILD
例如:
1 2 |
// 开启自动生成 define('APP_AUTO_BUILD', true); |
3、访问应用入口文件
大功告成,看一下application目录中是不是生成了你需要的文件呢。