【问题标题】:Is there a shortcut for namespacing singleton classes是否有命名空间单例类的快捷方式
【发布时间】:2013-10-04 18:29:55
【问题描述】:

我目前的代码如下:

namespace Libraries;

class_alias('Libraries\ORM', 'ORM');

class ORM 
{
    public function __construct() {}

    static public function someMethod()
    {
        // do something
    }
}

我想我可以缩短命名空间,如您在上面看到的,所以我只需要调用ORM::someMethod(); 而不是\Libraries\ORM::someMethod();

(我在另一个命名空间中使用 ORM 类,让我们说“项目”)

这可能吗?或者什么是正确的解决方案? 我知道我可以将类存储在全局命名空间中,但是我仍然需要使用全局斜杠,例如:\ORM::someMethod();

谢谢!

【问题讨论】:

    标签: php namespaces static-methods


    【解决方案1】:

    导入时只需 alias 类名即可:

    namespace SomethingEntirelyDifferent;
    
    use Libraries\ORM as ORM;
    
    ORM::someMethod();
    

    【讨论】:

    • 是的,但是我需要在需要使用 ORM 的每个文件中包含 use Libraries\ORM as ORM; 吗?还有其他方法吗?
    • 不,您可以创建自己的自动加载器,或者如果您在项目中使用composer,您可以通过配置composer.json的composer自动加载器自动加载您的类看看:php.net/manual/en/function.spl-autoload.phpgetcomposer.org
    • 好的,谢谢,我会深入研究自动加载器的东西!感谢您的帮助,我会在几分钟内接受答案;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 2014-05-09
    • 2015-10-04
    相关资源
    最近更新 更多