使用 SVN 搭建 Composer 私有仓库
背景
在食用本博文前,可以先去熟悉 composer 文档中的 [2.5. composer.json 完全解析],然后再把 2.6. 扩展包源仓库看完,这样下面的内容你将轻易理解为何这样做,不看也没事,后面再补上,我懂有时候只需要马上能搞一个跑的通的环境!(本文注重操作,没有任何原理解释)
准备工作
- SVN 可用的仓库,(可以下载一个 VISUALSVN SERVER,先在本地练手)
- 安装 TortoiseSVN
- 安装 Composer
开始
第一步:创建仓库
第二步:使用 TortoiseSVN 拉取仓库,并添加一个可用的包。
- 在根目录添加一个 composer.json 文件,最后目录如下:
composer.json配置如下:{ "name": "bigbug/tt", "description": "local code", "type": "library", "license": "MIT", "authors": [ { "name": "Big Bug", "email": "bigbug.site@gmail.com" } ], "minimum-stability": "dev", "require": {} }
-
到 trunk 目录,创建一个 src 文件夹 和 添加 composer.json
composer.json配置如下
{ "name": "bigbug/gang", "description": "test", "license": "MIT", "authors": [ { "name": "cg", "email": "cg@gmail.com" } ], "autoload": { "psr-4": { "Gang\\" : "src" } } }
-
到 src 目录,添加一下可以运行的代码。
偷懒的话,可以直接用我的这个:Other.php
<?php namespace Gang; class Other { public static function put():void { for ($i = 1; $i <= 9; $i++) { for ($q = 1; $q <= $i ; $q++) { echo "$q X $i = ".($i*$q)."\t"; } echo "\n"; } } }
我的src目录
-
回到 trunk 目录,然后运行
composer update
,会自动生成 vendor目录,最终目录如下:
其中 index.php 是我自己添加的测试文件,不用管它,把这些全部提交到 SVN
以上创建完毕一个包,下面将是如何使用这个包
第三步:使用
随便创建一个文件夹,然后再里面创建一个 composer.json 文件,配置如下:
{ "name": "administrator/testpkg", "description": "test tt", "type": "project", "license": "MIT", "minimum-stability": "dev", "repositories": [ { "type": "vcs", "url": "https://zt14693/svn/tt" } ], "require": { "bigbug/gang":"*" } }
执行
composer update
将会拉取刚刚的包:新建一个 index.php 验证是否成功导入包:
<?php require __DIR__.'../../vendor/autoload.php'; echo Gang\Other::put();
运行如下:(看来是OK了)
以上已经满足 本博文 标题内容,下面内容作为结尾
第四步:打标签
然后我们修改我们的 composer.json
{
.....其他代码....
"require": {
"bigbug/gang":"1.0.0"
}
.....其他代码.....
}
执行composer update
成功使用了 tag! 完美收尾
说明
- 原创不易,转载请注明出处。
- 以上步骤,我没有做过多解释其中配置项,需要你自己去看文档。
- 不同环境,会出不同问题,但基本逻辑差不多,我希望遇到问题的你,能够多看 composer 文档。
本作品采用《CC 协议》,转载必须注明作者和本文链接