はじめに
PHPで自作フレームワークを作成したので、この機会にPackagistに公開してComposerで取ってこれるようにしようと思いました。
初めての公開なので間違ってる部分が、あればご指摘を頂ければ幸いです。
公開するまでの流れを紹介していきます。
目次
- composer.jsonの作成
- ライセンスファイルの作成
- GitHubにpush
- Packagistに登録
- Composerで確認
- 最後に
- 参考文献
composer.jsonの作成
最初に、composer.jsonを自分が作成したプロジェクトのルートディレクトリに作成していきます。
{
"name": "fumiya5863/cherry-ti",
"type": "project",
"description": "The CherryTI Framework.",
"homepage": "https://github.com/fumiya5863/CherryTI",
"license": "MIT",
"authors": [
{
"name": "fumiya5863"
}
],
"require": {
"illuminate/database": "^7.0",
"vlucas/phpdotenv": "^5.0"
},
"config": {
"vendor-dir" : "./system/external"
}
}
上記の内容がcomposer.jsonの設定です。keyの用語の意味は下記になります。
key | 意味 |
---|---|
name | ベンダー名/プロジェクト名 |
type | パッケージのタイプ (デフォルトはlibrary、今回はproject) |
description | パッケージの簡単な説明 |
homepage | プロジェクトのウェブサイトへのURL |
authors | パッケージの作者 |
license | パッケージのライセンス |
require | このパッケージに必要なパッケージのマップ |
config | 設定オプションのセット(どこにvendorフォルダをおくか) |
今回は、composer.jsonのファイルを自分で作成して記入しましたが、対話形式からでも作成できます。
下記のコマンドを叩いてもらうと対話形式でcomposer.jsonが作成されます。
composer init
一通りの設定を記入した後に、バリデーションチェックをしましょう。
composer validate
バリデーションチェックに通った場合は、./composer.json is valid
と表示されます。
次にライセンスファイルの作成をします。
ライセンスファイルの作成
今回、GitHubでMITライセンスを設定していたのでLICENSEファイルの中身の内容は下記になります。
MIT License
Copyright (c) 2021 fumiyan
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
GitHubでのライセンス設定は、下記の記事を参考にさせて頂きました。
GitHubにpush
次に、フレームワークのバージョンを指定したいので下記のgitコマンドを叩きます。
git tag v1.0.0
バージョンの指定が出来たので、次に下記のコマンドを叩きます。
git push origin v1.0.0
これでリモート上にタグが反映されます。
次に、Packagistに登録して終了です。
Packagistに登録
Packagistに登録します。
登録が完了したら、次にフレームワークを登録します。
上記の画像のヘッダー部分にあるsubmitを押すと上記の画面が表示されます。
次に下記画像のRepository URL
に自分のリポジトリのURLを記入して下さい。
実際に検索をすると検索にヒットして表示されます。
最後に、Composerで落とせてこれるか確認しましょう。
Composerで確認
下記のコマンドを叩いて頂くと落とせてこれます。
composer create-project fumiya5863/cherry-ti
実際に、落とせることが出来ました!!
最後に
いかがだったでしょうか、自分が作成してみたライブラリやフレームワークなどを実際にあげてみることでこういった仕組みでいつも使っているライブラリやフレームワークを落とせてくるのかと分かると思います。皆さんも是非やってみて下さい。
他にも、GitHubにpushした時に、自動でPackagist側に通知を設定するとかもやっておいた方が楽になるかもしれません。
自分が作成したフレームワークも触って頂けると幸いです(笑)
参考文献
http://vdeep.net/composer-packagist
The composer.json schema
https://qiita.com/shibukk/items/67ad0a5eda5a94e5c032
https://qiita.com/soyanchu/items/72095a7c9fdb7f71b2c3