为 PHP5.2- 框架提供 PHP5.3+ 命名空间的类名别名
Posted
技术标签:
【中文标题】为 PHP5.2- 框架提供 PHP5.3+ 命名空间的类名别名【英文标题】:Providing PHP5.3+ namespaced classname aliasses for PHP5.2- framework 【发布时间】:2014-02-04 01:28:42 【问题描述】:我有一些 php5.2- 框架使用像这样的长类名:
class Product_Sub_SomeClass
...
我希望能够为 PHP5.3+ 用户提供一种使用命名空间和短类名的方法,同时保持框架的 PHP5.2 兼容性。
上面的示例类在 PHP5.3 开发者的代码中应该是可用的:
use Product\Sub;
$someclass = new SomeClass();
但是完全相同的类(相同的源代码)也应该对 PHP5.2 用户可用:
$someclass = new Product_Sub_SomeClass();
我可以只提供一个处理所有别名的附加文件,还是有其他或更好的机制可用?
向 PHP5.2- 框架的 PHP5.3+ 用户提供命名空间和类别名的最佳做法是什么?
【问题讨论】:
【参考方案1】:找到了我自己对这个问题的答案:
class Product_Sub_SomeClass
...
// Alternative PHP 5.3+ namespace\class
if (function_exists('class_alias'))
class_alias('Product_Sub_SomeClass', 'Product\Sub\SomeClass');
【讨论】:
以上是关于为 PHP5.2- 框架提供 PHP5.3+ 命名空间的类名别名的主要内容,如果未能解决你的问题,请参考以下文章