【发布时间】:2010-02-25 14:43:17
【问题描述】:
简单的问题:您是否在您的 PHP 类(例如您的库类)前加上您的公司名称?
示例:Zend 以“Zend_”为所有内容添加前缀,但这是正常的,因为这是一个框架(因此他们希望避免冲突)。 我应该为我公司的图书馆课程做同样的事情吗?我会遇到冲突吗?
我认为没有前缀(更短的名称)更容易使用,但是有前缀是一个好习惯吗?
【问题讨论】:
标签: php coding-style
简单的问题:您是否在您的 PHP 类(例如您的库类)前加上您的公司名称?
示例:Zend 以“Zend_”为所有内容添加前缀,但这是正常的,因为这是一个框架(因此他们希望避免冲突)。 我应该为我公司的图书馆课程做同样的事情吗?我会遇到冲突吗?
我认为没有前缀(更短的名称)更容易使用,但是有前缀是一个好习惯吗?
【问题讨论】:
标签: php coding-style
PHP 有 namespaces。您应该使用它们,而不是在所有内容前加上名称。
至少,当您的开发人员不必继续输入 MyFrameworkName... 即可开始使用您的某个类时,他们会感谢您。
【讨论】:
出于多种原因,我总是为我的课程添加前缀
说真的,最好完全避免使用显式的类名。摆脱静态并使用依赖注入而不是new - 这样您在类命名方面的痛苦就会少得多。
【讨论】:
是的,我愿意。我无法切换到命名空间 b/c 我的大多数客户都在运行 PHP 5.3。如果我能保证避免命名冲突,我不介意多输入一点。尤其是当我在现有库之上使用自己的自定义库时。
【讨论】:
没有。
PHP 具有命名空间,因此您可以拥有具有相同名称的类,只要它们位于不同的命名空间中。
【讨论】:
我在我的类名前面加上它所在的文件夹名称
<?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 );
}
意味着你永远不必加载你的类,这一切都是自动完成的
【讨论】: