用laravel框架也有一段时间了, 但是没有写过comoser包,面试的时候, 有人问写过composer包没。我说没有写过, 那东西很简单。只有懂得composer的自动加载规范就能很容易写一个包。
写composer包很简单, 去https://packagist.org注册一个账号, 然后在github上创建一个composer包项目, 然后将信息填到packagist后台, 这样别人就可以用composer来下载你的包了。
这种包都是公开的, 但是在公司开发中, 有一些包是不能公开的。composer官网提出了几种方法,下面来用satis来搭建私有composer包服务。
1.下载satis源码, 并安装
2.创建satis.json文件
{
"name": "My Repository",
"homepage": "http://satis.dev",
"repositories": [
{ "type": "vcs", "url": "https://git.oschina.net/1129103472/ceshi.git" },
{ "type": "vcs", "url": "https://git.oschina.net/1129103472/ceshi-1.git" },
{"packagist": false}
],
"require-all" : true,
"config":{"secure-http":false}
}
repositories里面每一个项, 代表一个composer包, 都是。
3. bin/satis build satis.json public
4.配置nginx
server {
listen 80 ;
server_name satis.dev;
root /Users/lixiangyang/data/satis/public;
}
访问satis.dev ,如下图
在引用似有包的时候, composer.json要注意一下几点,repositories设置, secure-http设置为false,因为composer默认https, 依赖的包如果没有release或者tag版本号设为dev-master.
{
"repositories": [ { "type": "composer", "url": "http://satis.dev/" } ],
"require": {
"sapolang/ceshi": "1.0.0",
"sapolang/ceshi-1": "dev-master"
},
"config" :{"secure-http":false}
}