PHP教程之FleaPHP 开辟指南 - 4. 定名标准和目次...
最近陆续的有人问我学习php的心得,现在整理为下面,希望可以对大家有些帮助。标准|开辟指南 FleaPHP 的定名划定规矩和目次布局初看上去对照庞杂,但习气今后,你会发明这类定名划定规矩带来很多优点。因而像 Zend Framework 也是采取一样的做法。固然,FleaPHP 关于使用法式的定名划定规矩和目次布局没有强迫性请求。只不外采取分歧的定名划定规矩和目次布局,可以便利对使用法式保护。同时 FleaPHP 使用法式开辟者之间也能够更轻易的停止协作。
全局函数的定名划定规矩
全局函数的定名划定规矩是用“_”分隔全小写的单词。例如 get_cache()、echo_h()。同时,函数的名字采取“动词+宾语”的模式。例如 write(动词)_cache(宾语)。
不外有些全局函数为了和 PHP 中已有的相似函数坚持分歧,采取了分歧的定名体例(特地埋怨一下,PHP 本身的全局函数定名对照凌乱,各类模式的都有)。
类的定名划定规矩
一切 FleaPHP 自带的类,都以 FLEA_ 开首。然后依据用处定名。例如 FLEA_Controller_Action、FLEA_Helper_ImgCode。然后将类名字中的“_”交换为目次分隔符,就是这个类的界说文件地点地位。
举例:
FLEA_Controller_Action 类,保留文件为 FLEA/Controller/Action.php
FLEA_Db_TableDataGateway 类,保留文件为 FLEA/Db/TableDataGateway.php
这类定名划定规矩和目次布局的优弱点以下:
长处:
[*]防止定名抵触
[*]依据类名字就可以找到文件寄存地位
[*]使用法式中可使用 FleaPHP 的 import()、load_class() 函数便利的载入类界说文件
[*]假如利用 PHP5,可以很便利的用 __autoload() 来主动载入需求的类界说:
<?phpfunction __autoload($className) { load_class($className);}?>弱点:
[*]类名字较长,方便于输出,例如 FLEA_Com_RBAC_UsersManager
[*]或许和现有习气分歧,需求工夫来顺应
关于第一个弱点,利用 Zend Development Environment 或 Eclipse 如许的 IDE 可以减缓。这些 IDE 供应壮大的输出主动完胜利能,凡是输出类名字的开首几个字母,就会显示候选列表闪开发者选择。
变量和常量定名
在 FleaPHP 中,变量分为全局变量、一时变量和模版变量三类。
[*]全局变量和常量 全局变量和常量都利用全大写,以“_”分隔。例如 $GLOBALS['CLASS_PATH'] 和 FLEA_DIR。不外 FleaPHP 中尽可能防止了利用全局变量和常量,因而普通来讲不会和使用法式发生抵触。
[*]一时变量 函数、类办法中利用的变量都是一时变量,定名划定规矩是第一个单词小写,后续的单词第一个字母大写。例如 $requestFilters、$dispatcherClass 等。
[*]模版变量 之所以要把模版变量独自列出来,是由于分歧的模版引擎对变量名有分歧的标准。从我团体来讲,我偏向于模版变量利用全小写单词,并以“_”分隔,例如 $latest_products_list。如许在法式外面一眼就可以看出哪些变量是用于模版的。
FleaPHP 的目次布局
一个典范的 FleaPHP 使用法式具有以下的目次布局:
http://www.pushad.com/XrssFile/2006-12/7/200612723515710.png这个使用法式的目次次要分为 WebLibs 和 WebRoot。个中 WebLibs 保留法式的一切代码,而 WebRoot 目次下只保留用户可以会见的局部,例如 index.php 进口文件、图片、CSS 款式表和 JS 剧本。
WebLibs 下又分为 FLEA 和 YORK 两个目次。FLEA 目次保留 FleaPHP 的中心文件,而 YORK 目次保留使用法式的代码。之所以取名 YORK,是由于这个项目标公司名为 YORK。所以开辟者在计划目次布局时,可以参照这类体例,为保留使用法式代码的目次取一个轻易了解的名字。
WebRoot 是保留用户利用阅读器可以直接会见的内容,因而需求修正办事器或虚拟主机设置,将网站的根目次指向 WebRoot 目次。例如 www.example.com 指向 /example/WebRoot/。
这里引见的目次布局有以下长处:
长处:
[*]代码文件放置在阅读器会见不到的中央,进步了平安性
[*]法式员和设计人员可以在分歧的目次任务,下降了产生抵触的概率
[*]目次布局更明晰,轻易了解
而次要的弱点就是需求修正办事器设置,将网站根目次指向 WebRoot 目次。而有些虚拟主机不答应如许做,或需求接洽办事器办理员,对照费事。
关于这类目次布局,放置在 WebRoot 中的 index.php 进口文件应当明白挪用 import() 将 WebLibs 目次添加到类界说搜刮途径中。不然 load_class() 会找不到需求的文件。
<?phprequire('../WebLibs/FLEA/FLEA.php');import('../WebLibs/YORK/');....run();?>关于虚拟主机用户,可以将 WebLibs 目次挪动到 WebRoot 目次中。构成以下的目次布局:
http://www.pushad.com/XrssFile/2006-12/7/200612723515859.png上图中,一切文件都保留在使用法式的根目次 cdhlss 中,而代码文件保留在 libs 子目次中。个中 libs/APP 保留使用法式的代码。
响应的 index.php 需求修正为:
<?phprequire('libs/FLEA/FLEA.php');import('libs/APP/');....run();?>在实践开辟中,因为 FleaPHP 并没有强迫请求定名标准和目次布局。所以开辟者可以持续沿用本人熟习的体例来开辟使用法式。
PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 写的比较杂,因为我也是个新手,不当至于大家多多指正。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 本文当是我的笔记啦,遇到的问题随时填充 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
页:
[1]