动态地在PHP中更改类名称空间

时间:2016-01-30 13:32:07

标签: php namespaces

是否可以动态更改PHP中的类命名空间?

这纯粹是针对开发/测试环境,我想知道是否可以覆盖mysql_query 目前安装PECL apd不是一个选择。

1 个答案:

答案 0 :(得分:0)

不可能!对于您的要求,更好的解决方案是在index.php文件中注册自动加载功能。获取单例实例后,您可以获得环境状态。 例如$environent = Env::getInstance()->environment()您的自动加载获取环境值广告依赖于该值执行自动加载。

例如,您的所有生产类都位于production/class/here/goes/namespace/MyClass1.php

所有调试类都位于debug/class/here/goes/namespace/MyClass1.php

    function __autoload($class)
    {
        $parts = explode('\\', $class); // namespace
        $dir = Env::getInstance()->environment(); //string "production" or "debug"
        require(
            $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.$dir .
            implode(DIRECTORY_SEPARATOR, $parts).
            '.php'

        );

    }

像这样的东西