`
happmaoo
  • 浏览: 4508114 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

FleaPHP 开发指南 - 4. 命名规范和目录结构

阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog01.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>

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() 来自动载入需要的类定义:
<?php </span>function __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() 会找不到需要的文件。

<?php </span>require('../WebLibs/FLEA/FLEA.php');import('../WebLibs/YORK/');....run();?>

对于虚拟主机用户,可以将 WebLibs 目录移动到 WebRoot 目录中。形成如下的目录结构:

上图中,所有文件都保存在应用程序的根目录 cdhlss 中,而代码文件保存在 libs 子目录中。其中 libs/APP 保存应用程序的代码。

相应的 index.php 需要修改为:

<?php </span>require('libs/FLEA/FLEA.php');import('libs/APP/');....run();?>

在实际开发中,由于 FleaPHP 并没有强制要求命名规范和目录结构。所以开发者可以继续沿用自己熟悉的方式来开发应用程序。

<!-- generated by Texy! -->

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1349951


分享到:
评论

相关推荐

    大道PHP 第44章 应用FleaPHP开发论坛社区系统.doc

    在文件夹组织结构上,FleaPHP工程目录遵循一定的规则,主要文件夹包括控制器、模型、视图等,这有利于代码的管理和维护。同时,数据表设计是系统的基础,这里涉及到用户表(forum_user)、帖子表(forum_topic)、...

    fleaphp-full-beta(开发框架).

    Fleaphp的核心理念是简洁、易用和灵活,旨在提高开发者的开发效率,同时保持代码的清晰性和可扩展性。 在Fleaphp框架中,路由系统是其核心组件之一,它负责将HTTP请求映射到相应的控制器和方法。通过简单的配置,...

    Fleaphp框架使用规范收集.pdf

    路由管理允许开发者定义如何处理不同的URL请求,Fleaphp框架通过控制器和动作(Action)的映射来实现路由管理,这使得URL结构可以更加清晰和模块化。 11. 部署(Deployment): 在部署Fleaphp应用时,框架提供了...

    FleaPHP 框架学习教程.pdf

    - 命名规范和目录结构介绍。 - 应用程序设置详解。 - 数据库访问方法。 2. **MVC模式篇** - MVC模式基础理论。 - FleaPHP的MVC模式特色分析。 - 构建基本的MVC应用程序步骤。 3. **数据库操作篇** - ...

    FleaPHP 开发指南

    - 文章未提供具体细节,但通常FleaPHP会有明确的命名规范和目录结构以支持MVC架构。 - **可能包括**: - 控制器、模型、视图的命名规则。 - 目录结构如`controllers/`, `models/`, `views/`等。 #### 五、应用程序...

    FleaPHP+开发指南

    ### FleaPHP开发指南知识点详解 #### 一、FleaPHP概述 - **设计初衷**:FleaPHP框架旨在简化Web应用开发流程,减少开发者负担,提升开发效率。 - **定位与特点**:相较于Zend Framework、CakePHP和Symfony等成熟...

    fleaphp1.7.1524

    1. **轻量级框架**:Fleaphp设计的核心理念是简洁和高效,它拥有较小的体积,适合快速开发小型到中型的Web应用。这种框架的优点在于它易于学习,且不会对服务器资源造成过大的负担。 2. **MVC架构**:Fleaphp遵循...

    Fleaphp开发指南

    《Fleaphp开发指南》是一本专为初学者设计的PHP框架学习手册,特别针对FleaPHP这一轻量级框架进行了深入浅出的讲解。FleaPHP是一款基于PHP5的MVC(Model-View-Controller)架构的开源框架,旨在简化Web应用的开发...

    php.mysql.FLEAPHP.Smarty.正则手册汇总

    `FLEAPHP手册1.chm`为开发者提供了框架的使用指南,包括路由设定、模型构建、视图渲染、控制器操作等,有助于快速理解和应用这个框架。 【Smarty】:Smarty是一个PHP模板引擎,将业务逻辑和显示模板分离,提高代码...

    PHP一键快速安装环境

    PHP一键安装环,简单,方便,实用。此环境包括[APACHE2+PHP5+MYSQL5] 安装完成后在D盘自动生成apmxe文件夹,双击文件夹中的run-fleaphp.exe自动运行PHP环境。

    fleaphp框架

    FleaPHP框架是一款轻量级的PHP开发框架,旨在提高开发效率并降低项目的维护成本。...如果你正准备使用FleaPHP进行开发,建议先熟悉其基本概念和核心组件,再结合官方文档和社区资源进行实践,以充分发挥框架的优势。

    php框架fleaphp

    安装后,设置项目目录结构,包括公共文件、应用程序目录、配置文件等。 - **配置**:根据项目需求修改配置文件,如数据库连接、路由设置、错误处理等。 - **创建控制器**:编写控制器类,继承自Fleaphp的基础控制...

    FleaPHP 框架学习教程.zip

    FleaPHP是一个轻量级的PHP框架,设计用于快速开发高效、可维护的Web应用程序。...通过学习这个教程,您将掌握如何利用FleaPHP的特性来优化开发流程,提高开发效率,并为您的项目带来更高效的代码组织和更好的用户体验。

    fleaphp中文手册详细版

    Fleaphp基于MVC(Model-View-Controller)设计模式,这是一个广泛用于Web开发的架构模式,它将业务逻辑、数据处理和用户界面分离,使得代码更易于维护和扩展。Fleaphp的轻量级特性使其在小型项目中表现出色,同时,...

    fleaphp 框架实例以及详细使用方法说明

    Fleaphp框架是一款专为提高开发效率设计的轻量级PHP框架,它以其简洁的代码结构、良好的可扩展性和易学性深受开发者喜爱。在本文中,我们将深入探讨Fleaphp框架的核心特性,常见问题及解决方案,以及如何有效地使用...

    fleaphp核心完整代码

    总之,Fleaphp作为一款优秀的PHP框架,以其简洁的结构、强大的功能和良好的社区支持,为开发者提供了高效的开发工具,帮助企业快速构建高质量的Web应用。通过对核心代码的深入理解和实践,开发者可以充分利用Fleaphp...

Global site tag (gtag.js) - Google Analytics