first-composer
第一次嘗試寫(xiě)自己的composer
1.在GitHub上創(chuàng)建一個(gè)自己的項(xiàng)目建椰,然后拉取到本地
git clone https://github.com/XianglinLiu/first-composer.git
2.在對(duì)應(yīng)的項(xiàng)目目錄里面執(zhí)行composer init
cd first-composer
composer init #一路回車(chē)就可
然后可看到生成了文件composer.json
{
"name": "xianglin/first-composer",
"description": "this is a test composer",
"authors": [
{
"name": "xianglin",
"email": "793101759@qq.com"
}
],
"require": {}
}
3.在根目錄新建文件夾src
mkdir src
4.新建測(cè)試文件.TestComposer.php
并聲明命名空間
<?php
/**
* Created by YupaoWang
* User:liubo
* Date:2020/5/26
* Time:20:14
*/
namespace firstComposer;
class TestComposer
{
public function showTime()
{
echo '當(dāng)時(shí)北京時(shí)間: ' . date('Y-m-d H:i:s');
}
}
5.修改composer.json
新增autoload
{
"name": "xianglin/first-composer",
"description": "this is a test framework",
"license": "MIT",
"authors": [
{
"name": "xianglin",
"email": "793101759@qq.com"
}
],
"autoload": {
"psr-4": {
"firstComposer\\": "src/"
}
},
"require": {}
}
6.執(zhí)行tree
命令可以看到當(dāng)前目錄結(jié)構(gòu)
.
├── README.md
├── composer.json
└── src
└── TestComposer.php
7.執(zhí)行composer install
,然后執(zhí)行tree
查看當(dāng)前目錄文件
.
├── README.md
├── composer.json
├── src
│ └── TestComposer.php
└── vendor
├── autoload.php
└── composer
├── ClassLoader.php
├── LICENSE
├── autoload_classmap.php
├── autoload_namespaces.php
├── autoload_psr4.php
├── autoload_real.php
├── autoload_static.php
└── installed.json
8.進(jìn)行測(cè)試岛马,新建測(cè)試文件夾exp
新建測(cè)試文件index.php
<?php
require_once(__DIR__ . '../../vendor/autoload.php');
use firstComposer\TestComposer;
(new TestComposer())->showTime();
php exp/index.php
輸出:當(dāng)時(shí)北京時(shí)間: 2020-05-26 12:27:43%
9.編輯文件.gitignore
vim .gitignore
#寫(xiě)入以下數(shù)據(jù)
/vendor/
10.提交代碼到GitHub
git add .
git commit -m ':rocket: 這個(gè)第一次自己寫(xiě)composer 組件'
git pull && git push
11.檢測(cè)compser包 packagist.org
12.檢測(cè)正常棉姐,點(diǎn)擊提交即可,提交成功將會(huì)跳轉(zhuǎn)到已發(fā)布包的地址
13.打包命令,我是直接在GitHub上打包的。
git tag 1.0
git push origin --tags
14.測(cè)試一下 ,隨便建一個(gè)文件夾執(zhí)行命令
composer require xianglin/first-composer
15.寫(xiě)一個(gè)測(cè)試文件index.php
<?php
require_once('autoload.php');
use firstComposer\TestComposer;
(new TestComposer())->showTime();
php vendor/index.php
時(shí)北京時(shí)間: 2020-05-26 12:47:24%