PHP Composer包含文件;使用名称空间作为“;语句,附加到每个文件


PHP Composer include file with defined "use namespace as" statements, append to each file

我知道您可以使用Composer的files方案在每个文件中自动包含函数或定义。

我想更进一步,永远不必在单独的文件中手动编写use classname as语句。这是我理想的设置:

/composer.json:

{
    "require": {
        "slim/slim": "2.*"
    }
    "autoload": {
        "files": ["init.php"]
    }
}

/init.php:

use Slim'Slim as Slim;
use Slim'Route as Route;
define("RYAN","BRODIE");

/example.php:

require '/vendor/autoload.php';
echo RYAN; //  ✔ outputs "BRODIE"
new Slim(); //  × Fatal error: Class 'Slim' not found

这样,每当我向现有的命名空间添加新的命名空间或类时,我都可以将其添加到init.php中,然后在整个存储库中随心所欲地使用它。

除非修改PHP运行时,否则这是不可能的。namespaceuse声明仅在它们出现的物理文件中有效。这些声明不会跨越include s。如果它们跨越了,那么管理命名空间和别名将是一场噩梦。

在每个文件的顶部声明这些只是你必须接受的事情。大多数具有与PHP名称空间类似功能的语言都是这样做的。

指向文档的链接。