笔记大纲:

  1. tpshop目录结构
  2. 功能模块
  3. 函数库
  4. 重要配置
  5. 助手函数
  6. 插件
  7. 模板

1、TPshop目录结构

看这个图,目录结构一目了然。

下面要讲的内容也是根据这个图展开的。

2、功能模块



前几天刚刚学习了thinkphp,如果熟悉这个php框架的同学应该知道,application目录下的子目录代表模块。

在这里,有四个模块:

admin代表后台管理模块,

home代表pc web的访问模块,

mobile代表手机端的访问模块,

common代表通用模块,目前只有工具类File,它可供其他模块调用,但是它不能调用业务模块。

home和mobile模块都有各自的base类,base类完成了一些公共的业务功能和提供公共的业务接口,各模块所有控制器都继承于这个类,就不用每个控制器都要实现一遍共同的业务逻辑,比如session的确认等。

还有一个值得学习的是因为有了pc和mobile两个不同的显示设备导致需要制作不同的视图,但是它们内部的业务逻辑是一样的,如果都在各个模块下敲一遍业务逻辑,维护非常麻烦,代码也冗余,所以TPshop在application\home\logic下写了共用逻辑层代码,home和mobile都调用这个公用逻辑部分。

3、函数库

如下两个文件是TPshop内部的函数库,它们对应的定义如下:

application\common.php 共用函数库,依赖于thinkphp框架或TPshop内部配置等;

![common.php](http://images2015.cnblogs.com/blog/1153957/201704/1153957-20170426001132694-878425102.png)
application\function.php php 基础共用函数库,不依赖其他库,有独立的实现,无关业务,即你可以将这个文件直接用于其他的非thinkphp框架的项目。
我这里列举几个函数
![function.php](http://images2015.cnblogs.com/blog/1153957/201704/1153957-20170426001207131-624764186.png)

4、重要配置

application\config.php tp官方的配置文件,TPshop在这个文件底部添加了一些自己的配置,如分页配置、订单用户端显示状态、短信使用场景、订单用户端显示按钮 、静态页面等;

application\database.php 数据库配置文件,tp官方的配置文件,注意表前缀。

5、助手函数

www\thinkphp\helper.php TP5 助手函数实现

 M() D() U() S() C() I() F()

网上有许多人吐槽这种难读的代码,我觉得TP3的出发点事这类函数用得太多,比较典型,团队内熟悉一下也比较上手,TP5应该是不建议这样用了,但是为了兼容TP3和部分人习惯,还是以助手形式保留了这类接口。

这个用不用的话,这取决于团队leader的决定了吧。

6、插件

TPshop有插件这样的概念,用官方的话说,就是像手机一样可以安装和卸载app,第三方开发了也可以使用,看来是个不错的设计理念,野心也很大。

![插件目录](http://images2015.cnblogs.com/blog/1153957/201704/1153957-20170426001246834-681125947.png)
这里主要插件类型是第三方登录支持和第三方支付方式。
你只需拿现有的例子依样画葫芦就可以定制出插件,官方视频里头以支付宝为例子讲了实现原理,建议看一下。

7、模板

ThinkPHP官方的视图文件是一般是放在各个模块之下,但是出于模板可定制和替换的需求,按照原先放在各个模块之下,管理起来非常麻烦容易出错,TPshop将视图目录迁移到根目录的template,当然,这是可改变的。

虽然更换模板操作是在web界面下点击几下按钮实现的,但是其原理非常简单,就是在模块目录下的html.php中更改模板路径即可,如:

'view_path'    => './template/pc/default/',

参考:

ThinkPhP5 项目实战(第四讲):TPshop目录结构

http://www.kancloud.cn/tpshop/thinkphp5/280417

写于2017-4-21

-end-

TPshop入门大纲的更多相关文章

  1. 超哥的 LINUX 入门大纲

    前言 “Linux?听说是一个操作系统,好用吗?” “我也不知道呀,和windows有什么区别?我能在Linux上玩LOL吗” “别提了,我用过Linux,就是黑乎乎一个屏幕,鼠标也不能用,不停地的敲 ...

  2. 【MySQL】MySQL无基础学习和入门大纲

    一.安装 1.yum安装 2.分发包安装 3.配置文件 4.初始化数据库 二.启动 1.service mysqld start默认配置启动 2.mysqld_safe方式加载配置文件启动 3.mys ...

  3. [php入门] 2、基础核心语法大纲

    1 前言 最近在学PHP,上节主要总结了PHP开发环境搭建<[php入门] 1.从安装开发环境环境到(庄B)做个炫酷的登陆应用>.本节主要总结PHP的核心基础语法,基本以粗轮廓写,可以算作 ...

  4. Linux 系统从入门到精通的学习大纲;

    以前没有接触过Linux,生产环境需要,有时候遇到问题,百度一下,问题解决了,在遇到问题,在百度,有时候问题是如何解决的,为什么会解决有点丈二的和尚摸不着头脑, 为此,想用一段时间,系统的学习下Lin ...

  5. 【OCP、OCM、高可用等】小麦苗课堂网络班招生简章(从入门到专家)--课程大纲

    [OCP.OCM.高可用等]小麦苗课堂网络班招生简章(从入门到专家)--课程大纲 小麦苗信息 我的个人信息 网名:小麦苗 QQ:646634621 QQ群:618766405 我的博客:http:// ...

  6. C++入门记-大纲

    缘来 由于某个不可告人的目标以及想趁着还有精力的年龄,开始了C++学习之路.C++ 诞生很多年了,但依然具有强大的生命力. 我们来看下2020年8月TIOBE 8 月编程语言排行榜. 可以看到C以及C ...

  7. React入门---基础知识-大纲-1

    -----------------在慕课网学习react入门笔记-------------- ---------博主边学边记录,手把手进行学习及记录---------- --------------- ...

  8. Java入门与基础算法班 - 课程大纲

    第1章 零基础转CS,如何准备? · 转专业找CS工作怎么办? · 零基础如何在最短时间内拿到offer? · 如何写好简历? · IT技术面试内容有哪些? · JAVA语言怎么入门? 第2章 数组与 ...

  9. 【C语言入门教程】目录/大纲

    第一章 C语言编程基础 1.1 基本程序结构 1.2 函数库 和 链接 1.3 C语言“32个”关键字 第二章 数据类型.运算符和表达式 2.1 数据类型(5种基本数据类型),聚合类型与修饰符 2.2 ...

随机推荐

  1. iOS全角符与半角符之间的转换

    iOS全角符与半角符之间的转换 相关资料: 函数『CFString​Transform』中文 详情: 问题 1.17-03-15,「有人在群里边问怎么把『半角』符字符串转换成『全角』字符串?」,百度的 ...

  2. 关于binary log那些事——认真码了好长一篇

    本文介绍binlog的作用以及几个重要参数的使用方法,同时通过实验来描述binlog内部记录内容:row .statement跟mixed的设置下,记录了哪些东西,最后会简单介绍下binlog ser ...

  3. Nginx网站使用CDN之后禁止用户真实IP访问的方法

    做过面向公网WEB的运维人员经常会遇见恶意扫描.拉取.注入等图谋不轨的行为,对于直接对外的WEB服务器,我们可以直接通过 iptables .Nginx 的deny指令或是程序来ban掉这些恶意请求. ...

  4. ES6 学习笔记(一)let,const和解构赋值

    let和const let和const是es6新增的两个变量声明关键字,与var的不同点在于: (1)let和const都是块级作用域,在{}内有效,这点在for循环中非常有用,只在循环体内有效.va ...

  5. SVG动画-基础篇

    参考资料: http://www.w3school.com.cn/svg/index.asp https://msdn.microsoft.com/zh-cn/library/gg193979 简介 ...

  6. JS——控制标记的样式

    1.定义一个div,宽度为100px,高度为100px,背景色为粉色. 定义一个事件,鼠标移入时背景色变为蓝色,宽度变为200px. 定义一个事件,鼠标移出时背景色变为红色. html文件: < ...

  7. IOS开发创建开发证书及发布App应用(六)——打包应用

    6.打包应用 如下图,生成之后点击下面红框的按钮,按时间排序,然后点最新的一次生成 从右侧生成日志中找到如下图红框标识的部分,找到 -output ,把下面浅蓝色选中,这是app生成的文件夹路径 点击 ...

  8. linux XAMPP安装与使用

    linux安装 下载好后考至目录, chmod +x  接安装包 在执行 ./ 接安装包 启动 XAMPP /opt/lampp/lampp start 停止 XAMPP /opt/lampp/lam ...

  9. cmd输入svn提示svn不是内部或外部命令

    已经安装了svn,但是在cmd中输入svn命令的时候提示svn不是内部或外部命令是因为没有安装svn client. 解决办法: windows安装svn的时候默认是不安装 svn comand li ...

  10. SpringBoot-SpringMvc的Interceptor拦截器配置

    Interceptor拦截器实现对每一个用户请求处理前后的业务处理,比如我们需要对用户请求进行响应时间的记录,需要记录请求从开始到结束所耗的时间,这时我们就需要用到拦截器了 下面我们以记录请求处理时间 ...