加载类映射后作曲家自动加载文件
composer autoload file after classmaps are loaded
我有
"autoload": {
"psr-4": {
"ACME": "src/",
},
"classmap": ["src/"],
"files": ["mapper.php"],
"exclude-from-classmap": ["mapper.php"]
},
在 mapper.php
中,我正在尝试为一些遗留内容提供不同的命名空间。
<?php
class_alias(Some_Class::class, 'Cool\NameSpaced\Class');
我认为构建失败是因为 mapper.php
在 src/
中使用了 类 并且它们还没有被 composer 加载。有办法吗?
我运行的命令是composer install --optimize-autoloader --no-dev
我试过你的例子,效果很好。
可能与您使用的composer命令有关。 改用这个:
composer dump-autoload
这将刷新 autoload
部分的所有内容。
这是按文件分类的安装文件:
composer.json
{
"autoload": {
"classmap": ["src/"],
"files": ["mapper.php"]
}
}
mapper.php
<?php
class_alias(Some_Class::class, 'Cool\NameSpaced\Class');
index.php
<?php
require __DIR__ . '/vendor/autoload.php';
var_dump(class_exists(Some_Class::class));
var_dump(class_exists('Cool\NameSpaced\Class'));
在 CLI 中测试
$ composer dump-autoload
$ php index.php
bool(true);
bool(true);
如何找出别名作品?
commposer.json
{
"autoload": {
"classmap": ["src/"]
}
}
在 CLI 中测试
$ composer dump-autoload
$ php index.php
bool(true);
bool(false);
我有
"autoload": {
"psr-4": {
"ACME": "src/",
},
"classmap": ["src/"],
"files": ["mapper.php"],
"exclude-from-classmap": ["mapper.php"]
},
在 mapper.php
中,我正在尝试为一些遗留内容提供不同的命名空间。
<?php
class_alias(Some_Class::class, 'Cool\NameSpaced\Class');
我认为构建失败是因为 mapper.php
在 src/
中使用了 类 并且它们还没有被 composer 加载。有办法吗?
我运行的命令是composer install --optimize-autoloader --no-dev
我试过你的例子,效果很好。
可能与您使用的composer命令有关。 改用这个:
composer dump-autoload
这将刷新 autoload
部分的所有内容。
这是按文件分类的安装文件:
composer.json
{
"autoload": {
"classmap": ["src/"],
"files": ["mapper.php"]
}
}
mapper.php
<?php
class_alias(Some_Class::class, 'Cool\NameSpaced\Class');
index.php
<?php
require __DIR__ . '/vendor/autoload.php';
var_dump(class_exists(Some_Class::class));
var_dump(class_exists('Cool\NameSpaced\Class'));
在 CLI 中测试
$ composer dump-autoload
$ php index.php
bool(true);
bool(true);
如何找出别名作品?
commposer.json
{
"autoload": {
"classmap": ["src/"]
}
}
在 CLI 中测试
$ composer dump-autoload
$ php index.php
bool(true);
bool(false);