編寫一個 自己的 composer 私有包

編寫一個 自己的 composer 私有包

在 gitlab 上 創建一個項目 clone到本地

git clone http://git.pandamonk.com/pandamonk/test.git
cd test

目錄結構

.
src
SayHello.php

SayHello.php 的文件內容

<?php
/**
* this is a test for composer package.
* Date: 2017/11/3
* Time: 16:51
*/
namespace Hello;
class SayHello {
    public static function world () {
        return 'Hello World!';
    }
}

生成 composer.json 文件

// 切換到包的根目錄下, 執行
composer init
// 根據相應的提示 來生成 項目的 composer.json文件
Welcome to the Composer config generator
This command will guide you through creating your composer.json config.
Package name (<vendor>/<name>) [root/composer-car]: pandamonk/hello
Description []: This a demo for build composer packagist .
Author [pandamonk <[email protected]>, n to skip]:
Minimum Stability []: dev
Package Type (e.g. library, project, metapackage, composer-plugin) []: library
License []: MIT
Define your dependencies.
Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no
{
"name": "pandamonk/hello",
"description": "This a demo for build composer packagist.",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "pandamonk ",
"email": "[email protected]"
}
],
"minimum-stability": "dev",
"require": {}
}
Do you confirm generation [yes]? yes
Would you like the vendor directory added to your .gitignore [yes]? yes
// 再次 目錄結構
.
composer.json
src
SayHello.php

需要手動編輯一下 composer.json文件

{
    "name": "pandamonk/hello",
    "description": "This a demo for build composer packagist.",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "pandamonk ",
            "email": "[email protected]"
        }
    ],
    "minimum-stability": "dev",
    "require": {},
    "autoload": {
        "psr-4": {
            "Hello\\": "src/"
        }
    }
}

現在 手動測試一下 剛寫好的 composer 包

// 切換到包的根目錄
composer install
// 目錄結構
.
composer.json
composer.lock
src
SayHello.php
vendor
autoload.php
composer
// 在包的根目錄下 新建一個測試文件 test.php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Hello\SayHello;
echo SayHello::world();
在項目根目錄下執行命令 php test.php

將寫好的 包 發送到 gitlab 上

首先在 項目根目錄下 的 .gitignore 文件中 將
verdor/*
composer.lock
加入其中
git add .
git commit -m 'some commit'
git push
// 最好打上 tag 也推送過去
git tag 1.0.1 -a -m 'v1.0.1 release'
git push --tags
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章