$30 off During Our Annual Pro Sale. View Details »

自作したプログラムを Packagist に登録して 世界中の PHPer にインストールしてもらおう

MasaKu
September 25, 2022

自作したプログラムを Packagist に登録して 世界中の PHPer にインストールしてもらおう

PHP Conference Japan 2022/09/25

MasaKu

September 25, 2022
Tweet

More Decks by MasaKu

Other Decks in Programming

Transcript

  1. #phpcon2022
 自作したプログラムを Packagist に登録して
 世界中の PHPer にインストールしてもらおう
 株式会社ラクス
 久山勝生 @MasaKu_e


    PHP Conference Japan
 2022/09/25
 1

  2. #phpcon2022
 PHPで作成した便利なツールを
 ローカルで眠らせていませんか?
 2


  3. #phpcon2022
 世界中の PHPer に共有しましょう!
 3


  4. #phpcon2022
 この発表のターゲット
 • PHP でツールを開発している方
 • 作ったツールをみんなに使ってもらいたい方
 • Packagist について知りたい方


    4

  5. #phpcon2022
 自己紹介
 • 久山勝生(@MasaKu_e)
 ◦ 株式会社ラクス
 ◦ 関西出身
 ◦ 配配メール開発担当


    ◦ Web×PHP TechCafe運営
 • 好きなもの
 ◦ 緑茶
 ◦ ハイボール
 ◦ ソース味の食べ物
 5

  6. #phpcon2022
 Composer と Packagist
 6


  7. #phpcon2022
 Composer について
 • PHP アプリケーションの依存関係管理ツール
 ◦ composer.json に依存するライブラリを記述
 ◦

    コマンド一発で インストール/更新 してくれる
 7
 { "require": { "monolog/monolog": "2.0.*" } } composer.json composer update monolog が取得される
  8. #phpcon2022
 • Composer のメインリポジトリ
 ◦ composer.json に記載された情報からパッケージを検索
 ◦ パッケージの連携元(GitHubなど)からダウンロード
 Packagist

    について
 8

  9. #phpcon2022
 なんだか難しそう・・・
 9


  10. #phpcon2022
 想像より簡単ですよ!
 10


  11. #phpcon2022
 パッケージの公開方法
 1. パッケージの定義(composer.json の作成)
 2. composer.json の書式チェック
 3. GitリポジトリまたはVCSリポジトリにコミット


    4. リポジトリのURLを Packagist に紐づけ
 11
 上記で Composer コマンドで取得可能になります
  12. #phpcon2022
 パッケージの定義
 • 各種パラメータの指定
 ◦ name
 ▪ ベンダー名/パッケージ名
 ◦ description


    ▪ パッケージの説明
 ◦ require
 ▪ 依存関係のあるパッケージ記載
 ◦ licence
 ▪ ライセンス情報
 { "name": "masakuuuu/dicegame", "description": "play dicegame", "require": { "php": ">=8.1" }, "license": "MIT", } composer.json 12

  13. #phpcon2022
 composer.json の書式チェック
 • composer validate を実行
 ◦ 「composer.json is

    valid」が出力されればOK
 
 
 • リポジトリにコミット
 13

  14. #phpcon2022
 Packgist に登録
 14
 • Packagist の公式HPにアクセス
 ここにリポジトリのURLを指定する

  15. #phpcon2022
 登録完了
 15
 composer コマンドで取得可能になりました たったこれだけ!

  16. #phpcon2022
 Packagist の画面の見方
 16


  17. #phpcon2022
 17


  18. #phpcon2022
 18
 composer.json に記載した内容
 { "name": "masakuuuu/dicegame", "description": "play dicegame",

    "require": { "php": ">=8.1" }, "license": "MIT", } composer.json
  19. #phpcon2022
 19
 リポジトリのURLや スター数など リポジトリの内容
 README の内容 タグ情報

  20. #phpcon2022
 そのほかのフィールド情報
 • require-dev
 ◦ 本番運用では不要な開発用のパッケージを指定(PHPUnit など)
 ◦ composer update

    --no-dev コマンドで除外されるパッケージ
 • keywords
 ◦ Packagist の検索キーワード
 • type
 ◦ デフォルトは「library」
 20
 続きは composer の公式でチェックしてみてください🙇
  21. #phpcon2022
 Packagist に登録すると
 • Composer 経由でプログラムを取得できる
 • リポジトリ情報をGUIで確認できる
 • 丁寧な

    composer.json を書く動機付けになる
 21
 世界中の PHPer にインストールしてもらおう
  22. #phpcon2022
 Let’s Enjoy PHPer’s Life!
 22


  23. #phpcon2022
 ご清聴ありがとうございました!
 23


  24. #phpcon2022
 参考サイト
 Composer 公式HP
 https://getcomposer.org/
 Packagist 公式HP
 https://packagist.org/
 illustAC
 https://www.ac-illust.com/

    
 The composer.json schema 
 https://getcomposer.org/doc/04-schema.md 
 
 
 24