原文: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—目录结构和命名规则的更多相关文章

  1. thinkphp学习笔记10—看不懂的路由规则

    原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INF ...

  2. Solr6.7 学习笔记(01) -- 目录结构

    Solr解压后的目录结构 --contrib: Solr的一些扩展 --analysis-extras: 包含一些文本分析组件及其依赖 --clustering: 包含一个用于集群搜索结果的引擎 -- ...

  3. python学习笔记:目录结构

    "项目目录结构"其实也是属于"可读性和可维护性"的范畴. 目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构.在Sta ...

  4. Linux Shell 学习笔记 一 目录结构

    以Red Hat Enterprise Linux 各版本为例,RHEL中目录具体作用如下, /bin       存放普通用户使用的命令 /sbin     存放管理员可以执行的命令 /home   ...

  5. Angular5学习笔记 - 项目目录结构(二)

    一.项目总体目录 README.md:项目的说明和一些常用指令说明,建议看看. e2e:看不懂暂时空着??? node_modules/:存放npm下载的组件(npm install 后自动产生,不需 ...

  6. thinkphp学习笔记7—多层MVC

    原文:thinkphp学习笔记7-多层MVC ThinkPHP支持多层设计. 1.模型层Model 使用多层目录结构和命名规范来设计多层的model,例如在项目设计中如果需要区分数据层,逻辑层,服务层 ...

  7. thinkphp学习笔记8—命名空间

    原文:thinkphp学习笔记8-命名空间 新版本(3.2)中采用命名空间的方式定义和加载类库文件,解决多个模块之间的冲突问题,并实现了更加高效的自动加载机制. 需要给类库定义所在的命名空间,命名空间 ...

  8. thinkphp学习笔记5—模块化设计

    原文:thinkphp学习笔记5-模块化设计 1.模块结构 完整的ThinkPHP用用围绕模块/控制器/操作设计,并支持多个入口文件盒多级控制.ThinkPHP默认PATHINFO模式,如下: htt ...

  9. thinkphp学习笔记4—眼花缭乱的配置

    原文:thinkphp学习笔记4-眼花缭乱的配置 1.配置类别 ThinkPHP提供了灵活的全局配置功能,ThinkPHP会依次加载管理配置>项目配置>调试配置>分组配置>扩展 ...

随机推荐

  1. Python 清理HTML标签相似PHP的strip_tags函数功能(二)

    没有发现Python 有现成的类似功能模块,所以昨天写了个简单的 strip_tags 但还有些问题,今天应用到採集上时进行了部分功能的完好, 1. 对自闭和标签处理 2. 以及对标签參数的过滤 fr ...

  2. udacity android 学习笔记: lesson 4 part b

    udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...

  3. ZOJ 3734 LIKE vs CANDLE

    题目意思:(13年长沙站的一道水DP,本人也去了,当时太水笔) 说俩个人竞争选票,每个人可以随机选择支持谁.每个人带有权重不同. 现在已经结束了投票阶段,你一个骇客 支持LIKE  你写了一个软件可以 ...

  4. jvm调音

    jvm性能调优的目地:1)控制jvm的堆栈大小.比方当你的程序年轻代对象在某个时间段产生的比較多的时候,就须要控制年轻代的堆大小. 同一时候还要控制总的JVM大小避免内存溢出 2)控制GC的行为. G ...

  5. schedule vs scheduleAtFixedRate

    最好的方法是在两者之间区分 timer灵感时间设定过去时间T,scheduleAtFixedRate将从T现在所有的任务中运行,schedule而该任务将只运行从现在开始计时. public clas ...

  6. Hibernate 映射字段问题[ImprovedNamingStrategy]

    Hibernate 使用JPA 对于映射有3种规则能够配置:DefaultNamingStrategy,ImprovedNamingStrategy,EJB3NamingStrategy 这里仅仅说I ...

  7. 在前端一定要了解的HTML,CSS知识

    盒子模型 每个盒子都有4个属性:内容(content).填充(padding).边框(border).边界(margin) 每个属性都有四个部分:上.右.下.左 块级元素 内联元素 块级元素(bloc ...

  8. 开源Math.NET基础数学类库使用(04)C#解析Matrix Marke数据格式

    原文:[原创]开源Math.NET基础数学类库使用(04)C#解析Matrix Marke数据格式 开源Math.NET基础数学类库使用系列文章总目录:   1.开源.NET基础数学计算组件Math. ...

  9. 百度云盘建svnserver步骤

    安装tortoisesvn(略) 安装visualsvn(主server您可以使用)(略步骤)例如下面的安装文件夹后,: 注冊百度账号.进入百度云盘页面,建立目录,如mysvn. 下载百度云盘clie ...

  10. NYOJ 372 巧克力的

    巧克力 时间限制:4000 ms  |  内存限制:65535 KB 难度:2 描写叙述 布欧能够把人变成巧克力吃了来添加他的能量,也有可能降低. 如今布欧变了n*m个巧克力,并把巧克力排成一个n*m ...