jigui/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这套流程,则可以按照以下步骤操作:

  1. 在项目B的vender文件夹下创建一个Ford文件夹。
  2. 将本项目的src文件夹复制到其他项目B的vender/Ford文件夹下。
  3. 在项目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"
  1. 需要注意的是,此时项目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里...