|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最近陆续的有人问我学习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 使用法式具有以下的目次布局:
这个使用法式的目次次要分为 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 目次中。构成以下的目次布局:
上图中,一切文件都保留在使用法式的根目次 cdhlss 中,而代码文件保留在 libs 子目次中。个中 libs/APP 保留使用法式的代码。
响应的 index.php 需求修正为:- <?phprequire('libs/FLEA/FLEA.php');import('libs/APP/');....run();?>
复制代码 在实践开辟中,因为 FleaPHP 并没有强迫请求定名标准和目次布局。所以开辟者可以持续沿用本人熟习的体例来开辟使用法式。
PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。 |
|