jigui / he_test
he_test
v1.0.2
2016-05-24 11:19 UTC
This package is not auto-updated.
Last update: 2024-09-14 19:36:39 UTC
README
packagist 流程安装
composer require "jigui/he_test:*" -vvv
手动流程安装
如果只想在其他composer项目B中使用这个类库的资源,并且不想走packagist这套流程,则可以按照以下步骤操作:
- 在项目B的vender文件夹下创建一个Ford文件夹。
- 将本项目的src文件夹复制到其他项目B的vender/Ford文件夹下。
- 在项目B的composer的autoload_psr4.php中手动添加以下行,
'Ford\\' => array($vendorDir . '/Ford/src/Ford'),
使用时按namespace规则如下:
use Ford;
public function getTest() {
Ford\Escape\Escape2013::info();
Ford\Fiesta\Fiesta2013::info();
Ford\Focus\Focus2013::info();
var_dump('adfaf');
}
正常会输出:
This is Ford Escape2013!
This is Ford Fiesta2013!
This is Ford Focus2013!
string(5) "adfaf"
- 需要注意的是,此时项目B的composer无法高效加载,并且每次引入新包都需要手动添加。
如果在项目B中执行
composer dumpautoload -o -vvv
正常执行后,不知为何会将刚才手动添加的map记录清除掉,郁闷啊。即使将当前项目的composer.json也复制过去,也是不行。composer.phar内部的逻辑,还真没去细看。
查看composer require xxxx -vvv的日志,发现好像是1下载xxxx,2读取vendor/composer/installed.json,3生成autoload文件,4php artisan optimize。我尝试手动在installed.json和composer.lock文件中添加对应的pack段后,尝试dumpautoload发现依然不能加载,不明白啊。
所以,如果此时项目B要引入其他包时,每次composer install/update/requirer成功后,都会自动的dump-autoload -o一下,就会把手动添加的清除掉,导致的结果就是不能自动加载了。
如果是手动的现有的包里加了一个文件,此时dumpautoload -o时则会把新增的文件补充到classmap里...