Thinkphp5.0自动生成模块及目录的方法详解


Posted in PHP onApril 17, 2017

本文实例讲述了Thinkphp5.0自动生成模块及目录的方法。分享给大家供大家参考,具体如下:

Thinkphp5.0发布已有些时日了,据说性能方面有很大的提升,按照官方的话,ThinkPHP5.0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,并针对API开发做了大量的优化。是时候得download一份,研究一下。今天主要讲讲其自动创建模块及目录。

Thinkphp5.0自动生成模块较ThinkPHP3.2,确实有很大的变化。

再次,主要讨论Thinkphp5.0生成模块。

准备工作

首先从官方下载ThinkPHP5.0,下载后文件结构如下:

Thinkphp5.0自动生成模块及目录的方法详解

只保留thinkphp目录其他的所有目录及文件一并删除(可以先转移到其他地方,以备后续使用)

现在就开始生成项目需要目录

thinkphp3.2创建目录貌似简单,但是thinkphp5.0却更加灵活。不禁想起了良才是把复杂的事情变简单;庸才是把简单的事情变复杂;蠢材是把简单的事情变得更简单,复杂的事情变得更复杂。

1.创建入口文件index.php,虽然官方强调入口文件位置,可以随意放置,但是为了便于学习,还是放在根目录下

// 应用入口文件
define('APP_PATH', 'application/'); // 定义项目路径,和之前3.2版本没有区别
define('APP_AUTO_BUILD',true); //开启自动生成
define('APP_DEBUG', true);// 开启调试模式
define('MODULE','module');
// 加载框架引导文件
require 'thinkphp/start.php';
// 执行应用
\think\App::run();

其实我个人觉得,TP官方为啥不把,程序的执行\think\App::run(); 放置在start.php  目录呢?最后,发现原来TP5.0引入了一个define('APP_AUTO_RUN', true);常量,当在index.php页面定义了改常量,项目就会自动执行,不需要添加\think\App::run();

2.创建项目名与build.php文件

个人感觉thinkphp5.0做的不好的一点就是上面定义的项目文件夹需要自己创建,究其原因,因为里面要放置项目创建配置文件build.php。但是为啥TP官方不把build.php放置在根目录下呢?然后自动生成application文件夹呢?在这一点我觉得TP3.2做的就比5.0好。

现在来讨论一下build.php,官方默认的bulid.php内容如下,现在来讨论一下

return [
  // 生成运行时目录
  '__dir__' => ['runtime/cache', 'runtime/log', 'runtime/temp', 'runtime/template'],
  '__file__' => ['common.php'],
  // 定义index模块的自动生成
  'index'  => [
    '__file__'  => ['common.php'],
    '__dir__'  => ['behavior', 'controller', 'model', 'view'],
    'controller' => ['Index', 'Test', 'UserType'],
    'model'   => [],
    'view'    => ['index/index'],
  ],
  // 。。。 其他更多的模块定义
];

可以给每个模块定义需要自动生成的文件和目录,以及MVC类。

__dir__ 表示生成目录(支持多级目录)
__file__ 表示生成文件(不定义默认会生成 config.php 文件)
controller 表示生成controller类
model表示生成model类
view表示生成html文件(支持子目录)

自动生成以APP_PATH 为起始目录, __dir__ 和 __file__ 表示需要自动创建目录和文件,其他的则表示为模块自动生成。

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

最后直接运行index.php文件即可。

Thinkphp5.0自动生成模块及目录的方法详解

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
第九节 绑定 [9]
Oct 09 PHP
文件上传的实现
Oct 09 PHP
PHP读取MySQL数据代码
Jun 05 PHP
网页游戏开发入门教程二(游戏模式+系统)
Nov 02 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
Oct 19 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
php常用图片处理类
Mar 16 PHP
PHP中Cookie的使用详解(简单易懂)
Apr 28 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
PHP中如何使用Redis接管文件存储Session详解
Nov 28 PHP
PHP7数组的底层实现示例
Aug 25 PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 #PHP
PHP中快速生成随机密码的几种方式
Apr 17 #PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 #PHP
关于php 高并发解决的一点思路
Apr 16 #PHP
PHP无限极分类函数的实现方法详解
Apr 15 #PHP
基于ThinkPHP实现的日历功能实例详解
Apr 15 #PHP
php修改数组键名的方法示例
Apr 15 #PHP
You might like
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
JQuery小知识
2010/10/15 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
js实现文件上传表单域美化特效
2015/11/02 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
Vue实现日历小插件
2019/06/26 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
python调用windows api锁定计算机示例
2014/04/17 Python
python通过post提交数据的方法
2015/05/06 Python
Python 迭代器工具包【推荐】
2016/05/06 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
python global关键字的用法详解
2019/09/05 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
党章学习思想汇报
2014/01/14 职场文书
运动员口号
2014/06/09 职场文书
先进个人申报材料
2014/12/30 职场文书
美丽的大脚观后感
2015/06/03 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书