技术 > 全局命名服务
目录
No. 1
  全局命名服务(globalnamingservices)
  命名服务类似于电话薄和网上的用户服务目录。全局命名服务可以跟踪企业计算系统或跨跃全球的网上用户和服务。internet标准委员会正在研究把开放系统互连(osi)的x.500全局命名服务,作为一种方法为每一个连到网上的用户提供查询服务。
No. 2
  全局命名服务(globalnamingservices)
  命名服务类似于电话薄和网上的用户服务目录。全局命名服务可以跟踪企业计算系统或跨跃全球的网上用户和服务。internet标准委员会正在研究把开放系统互连(osi)的x.500全局命名服务,作为一种方法为每一个连到网上的用户提供查询服务。
  命名规范和目录结构 posted on 星期三 9 一月 2008
  2007-10-15 17:00
  fleaphp 的命名规则和目录结构初看上去比较复杂,但习惯以后,你会发现这种命名规则带来许多好处。因此像 zend framework 也是采用同样的做法。
  当然,fleaphp 对于应用程序的命名规则和目录结构没有强制性要求。只不过采用一致的命名规则和目录结构,可以方便对应用程序维护。同时 fleaphp 应用程序开发者之间也可以更容易的进行协作。
  --------------------------------------------------------------------------------
  全局函数的命名规则
  全局函数的命名规则是用“_”分隔全小写的单词。例如 get_cache()。同时,函数的名字采用“动词+宾语”的形式。例如 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 的 flea::import()、flea::loadclass() 方法方便的载入类定义文件
  如果使用 php5,可以很方便的用 __autoload() 来自动载入需要的类定义:
  >?php
  function __autoload($classname) {
  flea::loadclass($classname, true);
  }
  缺点:
  类名字较长,不便于输入,例如 flea_rbac_usersmanager
  也许和现有习惯不同,需要时间来适应
  对于第一个缺点,使用 zend development environment 或者 eclipse 这样的 ide 可以缓解。这些 ide 提供强大的输入自动完成功能,通常输入类名字的开头几个字母,就会显示候选列表让开发者选择。
  --------------------------------------------------------------------------------
  变量和常量命名
  在 fleaphp 中,变量分为全局变量、临时变量和模版变量三类。
  全局变量和常量
  全局变量和常量都使用全大写,以“_”分隔。例如 $globals[’class_path’] 和 flea_dir。不过 fleaphp 中尽量避免了使用全局变量和常量,因此一般来说不会和应用程序产生冲突。
  临时变量
  函数、类方法中使用的变量都是临时变量,命名规则是第一个单词小写,后续的单词第一个字母大写。例如 $requestfilters、$dispatcherclass 等。
  模版变量
  之所以要把模版变量单独列出来,是因为不同的模版引擎对变量名有不同的规范。从我个人来说,我倾向于模版变量使用全小写单词,并以“_”分隔,例如 $latest_products_list。这样在程序里面一眼就能看出哪些变量是用于模版的。
  --------------------------------------------------------------------------------
  fleaphp 的目录结构
  一个典型的 fleaphp 应用程序具有如下的目录结构:
  这个应用程序的目录主要分为 libs 和 webroot。其中 libs 保存程序的所有代码,而 webroot 目录下只保存用户可以访问的部分,例如 index.php 入口文件、图片、css 样式表和 js 脚本。
  libs 下又分为 flea、shared、admin、front 等目录。flea 目录保存 fleaphp 的核心文件,而 shared 目录保存应用程序前后台共享的文件、admin 目录保存应用程序后台专有的代码、front 目录保存前台程序专有的代码。开发者在规划目录结构时,可以参照这种方式。
  webroot 是保存用户使用浏览器可以直接访问的内容,因此需要修改服务器或虚拟主机设置,将网站的根目录指向 webroot 目录。例如 www.example.com 指向 /example/webroot/。
  这里介绍的目录结构有如下优点:
  优点:
  代码文件放置在浏览器访问不到的地方,提高了安全性
  程序员和设计人员可以在不同的目录工作,降低了发生冲突的几率
  目录结构更清晰,容易理解
  而主要的缺点就是需要修改服务器设置,将网站根目录指向 webroot 目录。而有些虚拟主机不允许这样做,或者需要联系服务器管理员,比较麻烦。
  对于这种目录结构,放置在 webroot 中的 index.php 入口文件应该明确调用 flea::import() 将 libs 目录添加到类定义搜索路径中。否则 flea::loadclass() 会找不到需要的文件。
  >?php
  require(‘../libs/flea/flea.php’);
  flea::import(‘../libs/shared/’);
  ….
  flea::runmvc();
  对于虚拟主机用户,可以将 libs 目录移动到 webroot 目录中。形成如下的目录结构:
  上图中,所有文件都保存在应用程序的根目录 cdhlss 中,而代码文件保存在 libs 子目录中。
  相应的 index.php 需要修改为:
  >?php
  require(‘libs/flea/flea.php’);
  flea::import(‘libs/app/’);
  ….
  flea::runmvc();
  在实际开发中,由于 fleaphp 并没有强制要求命名规范和目录结构。所以开发者可以继续沿用自己熟悉的方式来开发应用程序。