上资料
composer中文文档
自己写一个composer包干货流程
如果你不想看文档,也可以看下面.
1.你只需要在你本地创建一个composer.json文件
- 然后copy一下下面的内容,修改一下下面自定义项的内容(easy),然后:composer install
{
"name": "lingyuyizhipao/http", //自定义项目名称
"description": "对guzzle的二次封装", //自定义项目描述
"type": "library",
"require": {
"php": "^7.0",
"guzzlehttp/guzzle": "^6.3"
},
"require-dev": {
"php": "^7.0"
},
"license": "MIT",
"authors": [
{
"name": "hugo", //自定义作者名称
"email": "1314***[email protected]" //自定义作者邮箱
}
],
"minimum-stability": "dev",
"autoload": {
"psr-4": {
"Lingyuyizhipao\\": "src/", //psr-4标准,它会以当前的composer.json为参照路径,Lingyuyizhipao 是命名空间名,src是更composer.json同级别路径下的src文件夹名称,这么一行代码,就给src文件夹声明了一个 Lingyuyizhipao 的命名空间,后面这个文件夹下的所有class文件,都需要你以 namespace Lingyuyizhipao ,最终的结果就是,你可以在你的业务层 \lingyuyizhipao\test::getInstance() 这样的形势去调用了,一劳永逸.
"Help\\": "common/help/"
}
}
}
分析:
在执行了composer install,composer update , composer dump-autoload 这种会重新组织composer底层关联关系的语句,它会更新 vendor\composer\autoload_psr4.php 这个文件,里面就是这样子的内容了,一看便知composer自动加载原理了,当然这是psr-4的标准(也是官方推荐的),其他标准的作用原理一样,vendor\composer\ 文件夹下为每一个便准都准备了一个autoload_.... 前缀的文件呢,打开便知(跟psr-4大同小异)
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
'Lingyuyizhipao\\' => array($baseDir . '/src'),
'Help\\' => array($baseDir . '/common/help'),
'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
);
总结:
1.上面说那么多,可是不依赖任何的,所以你可以建立一个空文件夹玩起来
2.你按照上面的标准写好的code,是可以上传到php-composer中国镜像仓库的,然后别人就可composer require 的形式来装你的包进行使用了 自己写一个composer包干货流程 这里面也有教你怎么把写好的包传到composer中国镜像里面去
常用命令
composer install
composer init
composer update
composer update vendor/easywechat //更新某一个包
composer require
compose dump-autoload //更新composer.json