tp5.0.11学习--目录结构
来源:互联网 发布:淘宝店铺数据分析表格 编辑:程序博客网 时间:2024/06/03 02:35
tp5.0.11学习记录之目录结构
~~~www WEB部署目录(或者子目录)├─application 应用目录│ ├─common 公共模块目录(可以更改)│ ├─module_name 模块目录│ │ ├─config.php 模块配置文件│ │ ├─common.php 模块函数文件│ │ ├─controller 控制器目录│ │ ├─model 模型目录│ │ ├─view 视图目录│ │ └─ ... 更多类库目录│ ├─templates 应用模板文件│ │ └─module_name 模块目录(里面放改模块的html文件即视图)│ ├─command.php 命令行工具配置文件│ ├─common.php 公共函数文件│ ├─config.php 公共配置文件│ ├─route.php 路由配置文件│ ├─tags.php 应用行为扩展定义文件│ └─database.php 数据库配置文件│├─public WEB目录(对外访问目录)│ ├─index.php 入口文件│ ├─router.php 快速测试文件│ └─.htaccess 用于apache的重写│├─thinkphp 框架系统目录│ ├─lang 语言文件目录│ ├─library 框架类库目录│ │ ├─think Think类库包目录│ │ └─traits 系统Trait目录│ ││ ├─tpl 系统模板目录│ ├─base.php 基础定义文件│ ├─console.php 控制台入口文件│ ├─convention.php 框架惯例配置文件│ ├─helper.php 助手函数文件│ ├─phpunit.xml phpunit配置文件│ └─start.php 框架入口文件│├─extend 扩展类库目录├─runtime 应用的运行时目录(可写,可定制)├─vendor 第三方类库目录(Composer依赖库)├─build.php 自动生成定义文件(参考)├─composer.json composer 定义文件├─LICENSE.txt 授权说明文件├─README.md README 文件├─think 命令行入口文件~~~
这是tp5的目录结构(关于结构的介绍网上有很多大神的blog,本菜鸟也去膜拜了一番.在此只是对自己学习的过程坐下记录,毕竟好记性不如烂笔头!)
因为原本的结构是每个模块下都有一个view(视图)目录,虽然很容易理解,但看起来就是觉得怪怪的(大概是我有点强迫症吧!).现已将视图统一到templates目录下.其下的每个目录对应上面的模块(如:index,admin),里面就可以放自己的模板文件了,看起来顺眼了些有木有!
在这个我去改造了下thinkphp\library\think\view\driver\Think.php这个文件下的parseTemplate(自动定位模板文件)这个方法[注:当然这是取巧的做法,最好你自己在需要的地方去继承该类并重写此方法.]不废话,请看下面代码片段:
// if (0 !== strpos($template, '/')) { // $template = str_replace(['/', ':'], $depr, $template); // $controller = Loader::parseName($request->controller()); // echo $controller; // if ($controller) { // if ('' == $template) { // // 如果模板文件名为空 按照默认规则定位 // $template = str_replace('.', DS, $controller) . $depr . $request->action(); // } elseif (false === strpos($template, $depr)) { // $template = str_replace('.', DS, $controller) . $depr . $template; // } // } // } else { // $template = str_replace(['/', ':'], $depr, substr($template, 1)); // }
改为:
if (0 !== strpos($template, '/')) { $template = str_replace(['/', ':'], $depr, $template); $module = Loader::parseName($request->module()); if ($module) { if ('' == $template) { // 如果模板文件名为空 按照默认规则定位 $template = str_replace('.', DS, $module) . $depr . $request->action(); } elseif (false === strpos($template, $depr)) { $template = str_replace('.', DS, $module) . $depr . $template; } } } else { $template = str_replace(['/', ':'], $depr, substr($template, 1)); }
当然,要实现预期效果还需要去改下config.php中的view_path,这里我改成了:
// 模板路径'view_path' => ROOT_PATH.'app\templates'.DS,
最后建议学习tp5先从入口文件理一下整个框架的加载运行过程,有个整体的概念,有资源的可以找个比较好的案例学习下.本菜就抱紧TP的大腿去下了个官方5.0.11版
阅读全文
0 0
- tp5.0.11学习--目录结构
- TP5 目录结构
- TP5学习基础二:目录结构、URL路由、数据操作
- tp5学习 生成目录
- [PHP学习]TP5开篇学习-TP5中的build配置目录及自动生成使用问题
- tp5学习
- Tp5 学习
- 学习jboss目录结构
- Webkit学习目录结构
- Android结构目录学习
- Maven学习-目录结构
- 机器学习目录结构
- 机器学习目录结构
- Maven学习-目录结构
- drupal学习之-目录结构
- linux学习之目录结构
- contiki学习的目录结构
- apache学习二目录结构
- Xtend官方文档-第一部分
- 文件目录操作--cookbook读书笔记
- 信奥竞赛体会
- Mysql SQL Mode
- Shared Element效果
- tp5.0.11学习--目录结构
- css画空心圆
- Python学习记录(4)
- 源码编译安装 PHP5.6.31 和 Nginx 1.12.0
- Linux下chkconfig命令详解
- Matlab 摄像头,获取外界图像,底层代码实现按钮
- TOMCAT控制台日志输出到指定文件中
- java.lang.Exception: Test class should have exactly one public constructor
- compileSdkVersion, minSdkVersion 和 targetSdkVersion详解