本例程github地址:http://www.github.com/liufee/php,composer包搜索feehi/standard安装。目前只分享了一个http request类,慢慢会把自己常用的工具全放上去,composer安装遇到任何问题欢迎联系QQ:1838889850和email:admin@feehi.com
composer自动导入类,有他自己的一套导入规则(vendor/composer目录下的源码,读里面的源码才能更好的理解composer的自动导入机制)。composer分别有较老的psr-0和最新的psr-4自动导入标准。这次,我们先使用psr-0的标准,其实psr-4跟psr-0差不多,只是psr-4更精简了目录结构以及对下划线的处理方式不同而已。
首先要有一个github/bitbucket账号,然后编写composer.json文件,告诉composer应该要怎么处理这个包,当然这个composer.json的文章大大的有,肯定必须读官方的文档>>官方说明,如:
{ "name": "feehi/standard", "type": "library", "description": "A library provided by wfee", "keywords": ["feehi","library","liufee"], "homepage": "http://blog.feehi.com", "license": "MIT", "authors": [ { "name": "liufee", "email": "job@feehi.com", "homepage": "http://blog.feehi.com", "role": "Developer" } ], "require:": { "php": ">=5.4" }, "autoload": { "psr-0": { "Feehi": "src/" } } }
name为vendor name/package name,require指明此包依赖于哪些别的包,autoload指定使用自动加载的标准是psr-0还是psr-4。这里详细一定要读文档。
然后,git push代码到github。打几个tag,composer会认为包更稳健,下图就有2个release
然后去packagelist.org注册一个账号,并向composer submit这个包
好啦,就阔以啦。成功!需要注意的是,composoer.json配置了composer对此包是如何处理的,所以一定要搞明白,其次,写的php代码命名空间要写对,要适应psr-0或者psr-4的自动导入标准,不然会造成composer自动require的时候找不到文件的正确位置。读读vendor/composer下的加载源码,以及读读psr-0和psr-4自动加载的文档是非常有必要的。当然,现在往github上push代码时,需要到pakagelist.org点击update手动更新,github已经提供了钩子,只要设置就可在每次push代码时自动update,点击github仓库中settings按钮,然后点击Webhooks & Services,然后点击add service选中packagist,填入相应配置。这样,每当往github上push代码就能自动update到packagist啦
现在,我们就可以通过composer来自动安装feehi/standard这个库啦。编写composer.json,这个composer.json是配置要安装什么包,跟提交包到composer不是一回事。比如:
"require": { "feehi/standard" : "*" }
指定要安装的宝明,*代表的版本号。当然,我们处在一个神奇的国度,真心想不明白composer哪里就危害郭嘉了!!!只有配置一下镜像,让composer去国内的镜像(这个好坑,明明在pakagelist更新了,但是国内镜像并非实时的,有缓存,,,哎)如:
{ "require": { "feehi/standard" : "*" }, "repositories": [ {"type": "composer", "url": "http://packagist.phpcomposer.com"}, {"packagist": false} ] }
然后运行composer update就能看到composer帮我们自动安装以及解决依赖和自动导入这个库了
这里面已经带了一个测试文件了,让然我们也可以自己手写一个测试文件: