如何设置FleaPHP来开发应用程序?
来源:http://fleaphp521.zhan.cn.yahoo.com
解决方法
类的命名规则
所有 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/。
这里介绍的目录结构有如下优点:
优点:
代码文件放置在浏览器访问不到的地方,提高了安全性
程序员和设计人员可以在不同的目录工作,降低了发生冲突的几率