thinkphp学习笔记1—目录结构和命名规则
最近开始学习thinkphp,在下不才,很多的问题看不明白所以想拿出来,恕我大胆发在首页上,希望看到的人能为我答疑解惑,这样大家有个互动,学起来快点,别无他意,所谓活到老,学到老,希望各位不要见笑啊。
我的做法很简单,先从手册开始,手册是开发thinkphp作者辛勤劳动的成果,但是有些地方是在是不懂,如果有幸各位也遇到类似的问题希望能回复。thinkphp手册地址:http://doc.thinkphp.cn/manual.html
1.框架目录
在章节1.6 目录结构,内容如下:
新版的目录结构在原来的基础上进行了调整,更加清晰。
目录/文件 说明 ThinkPHP.php 框架入口文件 Common 框架公共文件目录 Conf 框架配置文件目录 Lang 框架系统语言目录 Lib 系统核心基类库目录 Tpl 系统模板目录 Extend 框架扩展目录(关于扩展目录的详细信息请参考后面的扩展章节) 注意:如果你下载的是核心版本,有可能Extend目录是空的,因为ThinkPHP本身不依赖任何扩展。
如果我们打开主目录下的ThinkPHP目录,主要内容如上所说,截图如下图1:

图1
可以发现系统核心基类库已经不叫Lib了,这里是Library,开提到Extend这目录,说是框架扩展目录,并且还特别提示在核心版本中这个目录中是空的,可是我在ThinkPHP3.2.2核心版和ThinkPHP3.2.2完整版这两个版本中都没有找到这个Extend目录。截图如下:

图2.完整版目录

图3.核心版目录
如果我们打开的是整个目录看到的是下面的内容,如果4

图4.完整目录
这里我们可以看到其他的文件目录,还好作者在除了框架目录ThinkPHP之外的其他目录中都放了一个README.md文件来告诉我们这个目录是做什么的,
1.Application:项目目录
2.Public:资源文件目录,应该放css,js和图片
3.ThinkPHP:框架目录,这个是核心类容放在这里
4..htaccess:一个分布式配置文件,刚接触这个文件觉得很复杂,这里不具体讲这个文件的功能
5.index.phh:入口文件
6.README.md:这个自述文件
2.命名规则
1.类名以.class.php结尾,并且使用驼峰命名,这点个人很稀罕,可能因为作者是写了一段时间的java再来写这个框架,把java中的一些东西拿到这里了,所以我很稀罕,因为我写了很长时间的.net,呵呵,很讨厌以下划线分割单词来命名的方式,感觉让人来读一个以下划线分割的数组,麻不麻烦,直接读几个单词要比读一个数组简单啊,但是这个下划线命名的方式是php发明者的习惯,我们只好无奈地接受。
2.大小写,我记得php中自定义变量是区分大小写的,其他都不区分,但是为了避免我们在大小写单词之间切换,建议还是区分,我觉得能用小写尽量用小写,上学时做英文阅读理解有没有很烦出现大写的单词,有木有?
3.类名和文件名保持一致,这个也双手举赞,这样看到文件名就知道类名称了,还有.net是这样规定的。
4.函数的命名使用小写字母加下划线的方式如:get_client_ip,这点为什么没有使用驼峰或者pascal命名方式呢,这样不是更加符合阅读习惯么。
5.常量,语言参数,配置参数都是大写字母加下划线,一样的不习惯,读起来费脑子。
thinkphp学习笔记1—目录结构和命名规则的更多相关文章
- thinkphp学习笔记10—看不懂的路由规则
原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INF ...
- Solr6.7 学习笔记(01) -- 目录结构
Solr解压后的目录结构 --contrib: Solr的一些扩展 --analysis-extras: 包含一些文本分析组件及其依赖 --clustering: 包含一个用于集群搜索结果的引擎 -- ...
- python学习笔记:目录结构
"项目目录结构"其实也是属于"可读性和可维护性"的范畴. 目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构.在Sta ...
- Linux Shell 学习笔记 一 目录结构
以Red Hat Enterprise Linux 各版本为例,RHEL中目录具体作用如下, /bin 存放普通用户使用的命令 /sbin 存放管理员可以执行的命令 /home ...
- Angular5学习笔记 - 项目目录结构(二)
一.项目总体目录 README.md:项目的说明和一些常用指令说明,建议看看. e2e:看不懂暂时空着??? node_modules/:存放npm下载的组件(npm install 后自动产生,不需 ...
- thinkphp学习笔记7—多层MVC
原文:thinkphp学习笔记7-多层MVC ThinkPHP支持多层设计. 1.模型层Model 使用多层目录结构和命名规范来设计多层的model,例如在项目设计中如果需要区分数据层,逻辑层,服务层 ...
- thinkphp学习笔记8—命名空间
原文:thinkphp学习笔记8-命名空间 新版本(3.2)中采用命名空间的方式定义和加载类库文件,解决多个模块之间的冲突问题,并实现了更加高效的自动加载机制. 需要给类库定义所在的命名空间,命名空间 ...
- thinkphp学习笔记5—模块化设计
原文:thinkphp学习笔记5-模块化设计 1.模块结构 完整的ThinkPHP用用围绕模块/控制器/操作设计,并支持多个入口文件盒多级控制.ThinkPHP默认PATHINFO模式,如下: htt ...
- thinkphp学习笔记4—眼花缭乱的配置
原文:thinkphp学习笔记4-眼花缭乱的配置 1.配置类别 ThinkPHP提供了灵活的全局配置功能,ThinkPHP会依次加载管理配置>项目配置>调试配置>分组配置>扩展 ...
随机推荐
- 利用ffmpeg将H264解码为RGB
因为公司买到了一个不提供解码器的设备,我不得已还要做解码的工作.在网上找了一圈,H264解码比較方便的也就是ffmpeg一系列的函数库了,原本设备中也是用这套函数库解码,但厂家不给提供,没办法,仅仅得 ...
- Gradle构建多模块项目(转)
废话不多说,直接进入主题. 1. 创建项目 首先创建项目,名称为 test: mkdir test && cd test gradle init 这时候的项目结构如下: ➜ test ...
- HDU 5050 Divided Land(进制转换)
题意 给你两个二进制数m,n 求他们的最大公约数 用二进制表示 0<m,n<2^1000 先把二进制转换为十进制 求出最大公约数 再把结果转换为二进制 数比較大要用到大数 ...
- 房费制 之 登录BUG
声明:以下内容只有当你登录到一个username同时,学生不能申请多次登录. 说是BUG,事实上这也不是一个BUG,仅仅是想出一个办法,解决一个大家好多人都没有解决的问题.以下就给大家 ...
- OFTP说明
OFTP (TheOdette File Transfer Protocol,RFC 2204)作为两个商业伙伴中建立EDI连接的一种协议.它由Odette-Organization于1986年创建. ...
- 从Java到C++——从union到VARIANT与CComVariant的深层剖析
我第一次用VARIANT和CComVariant的时候全然不明确它是怎么回事,为它什么数据类型都能够存放.什么数据都能够被能够初始化?里面究竟是怎么实现的?感觉又奇妙又迷惑!我们在上一节中讲了unio ...
- Android在ListView滑动数据混乱
我相信做过Android应用程序开发或多或少都遇到了这个问题.或者是在ListView数据损坏幻灯片事件.要么GridView数据损坏幻灯片事件. 让我们来看看一个网友写的文章,个人感觉还不错的文章: ...
- HDU 2203 亲串(kmp)
Problem Description 随着人们年龄的增长更大,更聪明还是越大越愚蠢,这是一个值,相同的问题Eddy也一直在思考,由于他在非常小的时候就知道亲和串怎样推断了,可是发现,如今长大了却不知 ...
- poj3624Charm Bracelet
Charm Bracelet Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 23025 Accepted: 103 ...
- Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...