最初のコンポーザー パッケージの開発を開始する
Composer は PHP の依存関係管理ツールです。この記事では、他の人が Composer を通じてパッケージを簡単に使用できるように、パッケージを構築して Packagist に送信する方法を説明します。
コンポーザー パッケージを開発するには、いくつかの手順があります。
composer.json ファイルを初期化する
定義名前空間とパッケージ名
パッケージに実装する必要がある機能
GitHub に送信
- Packagist の
パッケージを登録します
composer.json ファイルを初期化します
composer をインストールした後、composer init をローカルで実行し、対話型コマンドを使用して Composer.json を設定できますライン。
次に、いくつかの属性と一般的な設定を紹介します。
name この属性は、/ で区切られたパッケージ名を定義します。前にある属性は、サプライヤー名、パッケージ名に続いて、ベンダーは、パッケージを整理し、名前の競合を防ぐために、Packagist Web サイトによって開発者に提供される一意の名前を表します。したがって、送信するときは、https://packagist.org/packages/yourvendorname にアクセスし、URL 内の yourvendorname を希望の名前に置き換えることをお勧めします。ページに 404 がない場合は、登録されていることを意味します。
ライセンス ライセンス。ライセンスについては、オープンソース プロジェクト ライセンスの概要とライセンスの選択方法
の 2 つの記事を読むことをお勧めします。現在のパッケージをインストールするために必要な依存関係が必要です。現在のパッケージは、すべての依存関係がインストールされている場合にのみインストールされます。
autoload この構成では、主な設定は PSR-4 または PSR-0 です。PSR- を使用することをお勧めします。 4標準。
http://json-schema.org/ では、JSON スキーマの定義とそのさまざまな機能のさまざまな言語での実装が紹介されており、その中には JSON スキーマが含まれます。 Validator はオンライン検証サービスです。実際、最も簡単な方法は、composer validate combos.json を使用して、ファイルにエラーがあるかどうかを確認することです。
これは、composer.json のセットアップ方法を説明するビデオです
プロジェクトの構造
例として、私が開発したシングル サインオン SDK を取り上げます。 Laravel に基づいてサイトを実装します。 シングル サインオン システムに簡単にアクセスするには、アプリケーションをサーバーに登録し、SSO にアクセスするための指定されたインターフェイスを実装するだけで済みます。
プロジェクト構造は典型的な MVC 構造です。
.└── geo └── geosso ├── LICENSE ├── README.md ├── composer.json └── src ├── Contracts ├── Http │ ├── Controllers │ ├── Middleware │ └── Requests ├── ParamsBean ├── Providers ├── Support └── config12 directories
LICENSE、README.md、composer.json は、tree -d の実行後に手動で追加されます。
プロジェクトのルート ディレクトリは src で定義され、composer.json でも定義されているため、composer はこのパッケージを読み込むときに、名前空間を介してファイル パスを解決する方法を認識します。
HTTP ディレクトリはリクエストの応答を表し、以下のコントローラは正当なリクエストのコントローラを表し、ミドルウェアはリクエストの第 1 レベルを表し、ミドルウェアを通じてリクエストを傍受し、フロントエンドのリクエストとフィルタを取得するリクエストを表します。リクエスト。
コントラクトはインターフェース定義を表します。 ParamsBean は、アプリケーション層が基礎となるサービスと通信するときに、配列を渡す代わりに Bean を使用して各パラメーターを取得し、インターフェイスを呼び出すときに型検出を強制するため、パラメーターを大幅に統合できます。レイヤー間の転送。
プロバイダーは Laravel のサービス コンテナーを表し、サービス コンテナーを通じて、ルートと構成を登録し、ヘルパー クラスをロードし、インターフェイスとその実装をバインドできます。
サポートは、ロジックとは関係のない一般的に使用される関数をカプセル化するいくつかのヘルパー クラスです。config を通じて、グローバル関数 config() を使用して構成を簡単に設定および呼び出すことができます。
GitHub に送信
前の手順に従って、パッケージに基本的なスケルトンが作成されます。次の手順では、パッケージを GitHub にアップロードし、プロジェクトを構成し、継続的統合サービスを統合して、オープンソースプロジェクトのライセンス。
GitHub がプロジェクトを初期化するとき、.gitignore ファイルの生成、ライセンスの選択、README.md ファイルの初期化、ローカル プロジェクト ディレクトリへの切り替え、次の手順に従ってディレクトリをアップロードすることを選択できます。 GitHub:
>git init # 初始化仓库>git remote set-url origin --push --add git@github.com:jayxhj/geosso.git # 添加远程追踪仓库地址> git add .> git commit> git push origin master
Submit to Packagist
Packagist は、composer がパッケージのメタデータ情報を取得した後、GitHub からコードをプルします。したがって、開発したパッケージを GitHub にアップロードした後、世界中の人々が Composer を通じてコードをプルできるように、パッケージを Packagist に登録する必要があります。
わずか 3 つのステップで Packagist に送信できます:
https://packagist.org/ でアカウントを登録します
Packages/submit開発パッケージを送信します
送信されたパッケージが更新後に時間内に Packagist に同期できるように Webhook を設定します
それ以降、基本パッケージ 開発は終了しました。 Composer を使用して PHP の依存関係を管理し、コンポーザー パッケージを作成して独自のクラス ライブラリを拡張し、他のクラス ライブラリを導入して独自の関数を補完できるため、車輪を再発明する必要がありません。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
