你的类名前缀?

时间:2010-02-25 14:43:18

标签: php coding-style

简单的问题:您的PHP类(例如您的库类)的前缀是否与您的公司名称一致?

示例:Zend使用“Zend_”为所有内容添加前缀,但这是正常的,因为这是一个框架(因此他们希望避免冲突)。 我应该为我公司的图书馆课程做同样的事吗?我会遇到冲突吗?

我认为没有前缀(较短的名字)会更容易使用,但这是一个有前缀的好习惯吗?

5 个答案:

答案 0 :(得分:12)

PHP namespaces 。你应该使用它们而不是用名字作为前缀。

至少,当他们不必继续输入MyFrameworkName...以开始使用您的某个课程时,您的开发人员会感谢您。

答案 1 :(得分:3)

由于多种原因,我总是在我的课程前加上

  • 5.2仍将存在几年
  • 5.3命名空间完全是丑陋的,我不能使用它们而不会恶心
  • 嘿,苹果也这样做(NSString,CFXMLParser等);))

说真的,最好完全避免使用显式类名。摆脱静态并使用依赖注入而不是new - 你可以减少类命名的痛苦。

答案 2 :(得分:1)

是的,我知道。我无法切换到命名空间b / c我的大多数客户端都在运行PHP 5.3。如果我保证避免命名冲突,我不介意再输入一点。特别是当我在现有的库上使用我自己的自定义库时。

答案 3 :(得分:0)

没有。虽然我确实考虑在我的CMS中使用MCB为每个类添加前缀,即

class MCB_Admin
{
    // class contents...
}
$admin = new MCB_Admin;

然而,我很快就决定反对这一点,现在只使用标准的类名。

答案 4 :(得分:0)

我在我的类名前面加上它所在的文件夹名称是

<?php
    // filename would be "ClassName.php" in directory "directory"
    class directory_ClassName{

    }

这样可以非常轻松地使用__autoLoad

function __autoload( $class_name ){
    $file = explode( "_", $class_name );
    $file =  'app/' . implode( '/', $file ) . ".php";
    require_once( $file );
}

意味着您永远不必加载您的课程,这一切都是自动完成的