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 相关文章推荐
PHP 中的批处理的实现
Jun 14 PHP
php引用计数器进行垃圾收集机制介绍
Sep 19 PHP
php打造智能化的柱状图程序,用于报表等
Jun 19 PHP
php根据生日计算年龄的方法
Jul 13 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
Sep 20 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
Nov 19 PHP
PHP脚本自动识别验证码查询汽车违章
Dec 20 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
Feb 03 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
Mar 13 PHP
Laravel框架学习笔记之批量更新数据功能
May 30 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
Oct 03 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
php中memcache 基本操作实例
2015/05/17 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
2015/11/10 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
JQuery从头学起第一讲
2010/07/04 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
Python自动登录126邮箱的方法
2015/07/10 Python
Django实现自定义404,500页面教程
2017/03/26 Python
Python之os操作方法(详解)
2017/06/15 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
Python decimal模块使用方法详解
2020/06/08 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
大学生入党群众意见书
2015/06/02 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书
学习雷锋主题班会
2015/08/14 职场文书
《静夜思》教学反思
2016/02/17 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python