PHP Composer包含定义为“的文件”;使用名称空间作为";语句,附加到每个文件
我知道您可以使用Composer的PHP Composer包含定义为“的文件”;使用名称空间作为";语句,附加到每个文件,php,namespaces,include,composer-php,autoloader,Php,Namespaces,Include,Composer Php,Autoloader,我知道您可以使用Composer的文件方案自动在中包含函数或定义 我想更进一步,不再需要在单个文件中手动编写use classname as语句。这是我的理想设置: /composer.json: { "require": { "slim/slim": "2.*" } "autoload": { "files": ["init.php"] } } /init.php: use Slim\Slim as Slim; use Slim
文件
方案自动在中包含函数或定义
我想更进一步,不再需要在单个文件中手动编写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");
require '/vendor/autoload.php';
echo RYAN; // ✔ outputs "BRODIE"
new Slim(); // × Fatal error: Class 'Slim' not found
/example.php
:
use Slim\Slim as Slim;
use Slim\Route as Route;
define("RYAN","BRODIE");
require '/vendor/autoload.php';
echo RYAN; // ✔ outputs "BRODIE"
new Slim(); // × Fatal error: Class 'Slim' not found
这样,每当我向现有名称空间添加新名称空间或类时,我都可以将其添加到
init.php
,然后在整个存储库中使用它。除非修改php运行时,否则这是不可能的<代码>命名空间和使用
声明仅在它们出现的物理文件中有效。这些声明不跨include
s。如果他们这样做了,那么管理名称空间和别名将是一场噩梦
在每个文件的顶部声明这些文件只是你不得不忍受的事情。大多数具有类似于PHP名称空间特性的语言都具有相同的特性
.我同意不能跨文件设置
名称空间,这是显而易见的逻辑,但是用作语句
?该错误可能与在一个文件中设置同一别名两次相同。当你链接到文档(我在发布QS:D之前找不到)时,你的标记会正确,这并不是说我不相信你。在不同的名称空间中有相同名称的类真的很常见。事实上,这正是名称空间设计的目的。如果你给它们加上别名,并且别名跨越多个文件,那么在避免命名冲突方面,你又回到了原点,只是这次称为“别名冲突”。我理解名称空间的意义,或者我显然不会实现它们。我并不是说上述方法不适用于所有人,但对某些人有效。我是说,它在很大程度上否定了名称空间的重要性,因此它不起作用。:)这是你的文件,顺便说一句:为我的无礼道歉