あなたの最初の作曲家パッケージを出版すること.


作曲家は何ですか。🎼


A composer is a musician who is an author of music in any form, including vocal music, instrumental music, electronic music, and music which combines multiple forms. - Wikipedia.


冗談はない.Composer PHPの依存関係マネージャは、NPMや糸を考えますが、PHPでは現在、V 1にしています.V 2はまだアルファステージにある.
もしあなたが作曲家にパッケージを追加して、自分のウェブサイトに行ったことがあるなら、パッケージを追加する方法についてはあまり情報がないかもしれません.それは、作曲家があなたの依存関係を扱う間、パッケージはどこか他のところに住んでいるからです.

紹介.🐘


Packagist is the main Composer repository. It aggregates public PHP packages installable with Composer. - Packagist


Aah、それはそれのようです、ここで、作曲家がこのケースで音楽またはパッケージを見つけるところです.あなたが作曲家からの依存を必要とするとき、他のリポジトリがcomposer.json ファイル、これは作曲家があなたの依存関係を見つけるところです.

パッケージを追加するための必須条件です。📋


それで、作曲家とパッケリストが邪魔になっているという簡単な説明で、パッケージをパッケージ化するために右に飛び込んでください.😎
我々のパッケージを加える前に、私たちは2つのもの、パッケージのアカウントとVCSへのアクセス、またはバージョン管理システムが必要です.
だから、私はなぜあなたをしない待つregister あなたのアカウントと私に戻ってくる.👍
私はまた、2つのファクタ認証を有効にすることをお勧めします、それはあなたのアカウントにセキュリティの余分な層を与えます、そして、あなたが私のようなGiTubを使用しているならば、両方のアカウントが同じメールを使っているならば、あなたはあなたのPackagist口座をセッティングを通して接続することができます.

パッケージの設定🛠


私たちのアカウントを作成し、選択の私たちのVCSへのアクセスを私たちのプロジェクトにいくつかの構造を追加を開始する時間がある今、私は最初にこれを取得したいので、私は後でそれを行う必要はありません.
私がする最初のことは、私たちのパッケージのソースが住んでいる私の新しいレポを作成し、その中で、私が作成する最初のファイルは私たちです.gitignore , 私たちは無視/vendor フォルダは、フォルダが私たちの依存関係を配置するフォルダなので、もしあなたのパッケージがあれば私たちのリポジトリに追加されません.
/vendor/
次に、私たちを作成しましょうsrc フォルダ、これは私たちのパッケージコードのベースディレクトリになります.
mkdir src
次へtouch 我々composer.json ファイルは、私たちのリポジトリのルートに住んでいます.
あなたのリポジトリはこのようになります.

我々の作曲家を満たすこと。JSON✏️


我々のセットアップが完了した今、我々の記入をする時間ですcomposer.json 必要な情報をファイルします.
それでは、空のJSONオブジェクトを作成して、いくつかの情報を書き込もうcomposer init を作成し、対話的なコマンドラインの経験を1つを作成します.
パッケージ名から始めましょう[vendor] and [project] 名前、結合/ .
あなたのベンダー名は、あなたのベンダーがその名前の下でユーザーが出版を妨げるのを防ぐために出版されたものです.彼らがあなたのベンダーの中の少なくとも1つのパッケージの上のメンテナであるならば、彼らはあなたのベンダーに公表することができます.
次に、定義しますtype 私たちのパッケージの型であるフィールドは、この例では、インストールロジックに使用されます.いくつかのパッケージには、それらが何であるかによって異なるタイプがありますwordpress-plugin or symfony-bundle , この場合、デフォルトのlibrary - どのようなタイプが利用可能であるかについては、types .
ちょっとものを速めましょうdescription , homepage , license , and authors .
次の2つのフィールドは、私たちの要求とautoloadです.我々の中でrequire 私たちのパッケージが持っているすべての要件を定義することができますetx-[extension] またはPHPのバージョンを使用してもphp .
では、PHP要件を7.2以降に設定しましょう.
"require": {
  "php": ">=7.2"
}
また、require-dev フィールド.
我々の最後のフィールドは、我々のパッケージがどのように使われるかについてですautoload ここでは、PSR - 4とオートローディングの詳細についてはdocumentation on PSR-4 .
我々composer.json 今このように見えるはずです.

コードの時間💻


我々が我々をいっぱいにした今composer.json 私たちは私たちのコードを追加することができますが、これはチュートリアルですので、私は特別な何かを作成することはありませんので、単に与えられた文を繰り返すクラスを作成したり、文章が与えられていないUTを指示しましょう.
namespace Thinkverse;

class Repeat
{
    /**
     * Repeat the given sentence.
     *
     * @param string|null $sentence
     * @return string
     */
    public static function sentence(?string $sentence = null): string
    {
        return $sentence ?? 'No sentence given.';
    }
}
今我々のコードを行うと、我々は我々のライセンスとReadMeを追加することができますし、Githubに我々のコードをプッシュします.

パッケージを提出します。📨


我々のコードを押すとcomposer.json 私たちの次のステップは、私たちのパッケージを提出することですpackagist.org/packages/submit そして、我々の倉庫URLを提出して、チェックをクリックしてください.
そして、あなたが行く、あなたのパッケージが公開されています.

バージョンのリリース🔥


あなたのパッケージバージョンが現在設定されていることに気づいたかもしれませんdev-master , 新しいバージョンをリリースするには1.0.0 , あなたはリリースをタグ付けする必要がありますので、リポジトリに旅行してリリースを作成する必要があります、あなたのタグでは、あなたのリリースバージョンを埋めるでしょう、Packagistは、それ以外の意味のVersioningとして知られているsemverのオフに動作します.マイナー.パッチは、私たちのため、我々は我々の最初のメジャーバージョンをリリースしているので、私のタグを追加している1.0.0 .
あなたのPackagistアカウントがあなたのGithubと同期されているならば、あなたは新しいバージョンが作成されたことに気づくべきです.

祝辞🎉


おめでとうございます、あなたが続けたならば、あなたはあなたの最初のパッケージをリリースしなければなりませんでしたthinkverse/package-tutorial , またはそれをテスト我々自身を使用して
composer require thinkverse/package-tutorial
ソースも私のgithub ステップバイステップの場合は、あなたに合った歴史をコミットします.🙂
読んでいただきありがとうございます、あなたが作成するパッケージを見るのを待つことができません.👋