ホームページ >バックエンド開発 >PHPチュートリアル >Composer でホイールを作成する方法

Composer でホイールを作成する方法

一个新手
一个新手オリジナル
2017-09-07 10:06:291864ブラウズ

composer は PHP の依存関係管理ツールです。この記事では、他の人が Composer を介してパッケージを簡単に使用できるように、パッケージを構築して Packagist に送信する方法を説明します。 S 次の手順を開発します:

    Composer.json ファイルを初期化する
  1. 名前空間とパッケージ名の機能を定義する
  2. Packagist にパッケージを登録する

  3. Composer.json を初期化するファイル

    Composer をインストールした後、ローカルで composer init を実行し、対話型コマンド ラインから Composer.json を設定できます。
  4. 以下では、いくつかの属性と一般的な設定を紹介します:

    name
この属性は、/ で区切られたパッケージ名を定義します。最初はサプライヤー名、最後はパッケージ名です。サプライヤーは Packagist を表します。 パッケージを整理し、名前の競合を防ぐために、Web サイトが開発者に提供する一意の名前。したがって、送信するときは、https://packagist.org/packages/yourvendorname にアクセスし、URL 内の yourvendorname を希望の名前に置き換えることをお勧めします。ページに 404 がない場合は、登録されていることを意味します。

ライセンス

composer init 通过交互式命令行设置 composer.json 。

下面介绍其中的几个属性,以及常规的设置:

name

此属性定义包名,以 / 隔开,前面的为供应商名字,后面为包名,供应商代表 Packagist 网站为开发者提供的唯一的名字,用来组织包以及防止命名冲突。所以提交时最好先访问 https://packagist.org/packages/yourvendorname 将 url 中的 yourvendorname 替换为你想要取的名字,如果页面没有 404 ,说明已经被注册了。

license

许可证。关于许可证,建议看两篇文章,开源项目 license 介绍 、 如何选择 license

require

安装当前包所需的依赖。只有所有依赖被安装当前包才会被安装。

autoload

此配置下主要是 PSR-4 或者 PSR-0 设置,更推荐使用 PSR-4 标准。

http://json-schema.org/ 上介绍了 JSON Schema 的定义以及各个语言对其各种功能的实现,有 validator 的实现,其中 JSON Schema Validator 是在线的验证服务。其实最简单的就是使用 composer validate composer.json 来验证文件是否是有错误。

项目结构

项目结构是典型的 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 目录代表请求响应,之下的 Controllers 表示合法请求的控制器,Middleware 代表请求的第一道关卡,通过中间件去拦截请求,Requests 去获取前端请求并对请求过滤。

Contracts 代表接口定义。ParamsBean 代表应用层与底层服务沟通时的参数封装,通过 Bean 去获取各个参数,而不是传递 array 使得调用一致,并且强制接口调用时做类型检测,可以很大程度上统一各层之间的参数传递。

Providers 代表 Laravel 的服务容器,通过服务容器,可以注册路由与配置,加载助手类,绑定接口与其实现。

Support 就是一些助手类,对常用的与逻辑无关的功能的封装,config 代表应用自己的配置,通过 config 可以方便地将配置设置并使用全局函数 config()ライセンス。ライセンスについては、オープンソース プロジェクト ライセンスの概要とライセンスの選択方法の 2 つの記事を読むことをお勧めします

require

現在のパッケージをインストールするために必要な依存関係。現在のパッケージは、すべての依存関係がインストールされている場合にのみインストールされます。

autoload

この構成は主に PSR-4 または PSR-0 設定を使用します。PSR-4 標準を使用することをお勧めします。

http://json-schema.org/ では、JSON スキーマの定義と、バリデーターの実装を含むさまざまな言語でのさまざまな機能の実装が紹介されており、そのうちの JSON Schema Validator はオンライン検証サービスです。実際、最も簡単な方法は、composer validate combos.json を使用してファイルにエラーがあるかどうかを確認することです。

プロジェクト構造🎜🎜 プロジェクト構造は典型的な MVC 構造です。🎜
git init # 初始化仓库git remote set-url origin --push --add git@github.com:jayxhj/geosso.git # 添加远程追踪仓库地址git add .
git commit
git push origin master
🎜LICENSE、README.md、composer.json は、tree -d の実行後に手動で追加されます。 🎜🎜プロジェクトのルート ディレクトリは src で定義され、composer.json でも定義されているため、composer がこのパッケージをロードするときに、名前空間を介してファイル パスを解決する方法がわかります。 🎜🎜HTTP ディレクトリはリクエストの応答を表し、以下のコントローラーは正当なリクエストのコントローラーを表し、ミドルウェアはリクエストの第 1 レベルを表し、ミドルウェアを通じてリクエストを傍受し、リクエストはフロントエンドのリクエストを取得してリクエストをフィルターします。 🎜🎜Contracts はインターフェース定義を表します。 ParamsBean は、アプリケーション層が基礎となるサービスと通信するときに、配列を渡す代わりに Bean を使用して各パラメーターを取得し、インターフェイスを呼び出すときに型検出を強制するため、パラメーターを大幅に統合できます。レイヤー間の転送。 🎜🎜プロバイダーはLaravelのサービスコンテナを表し、サービスコンテナを通じて、ルートと構成を登録し、ヘルパークラスをロードし、インターフェイスとその実装をバインドできます。 🎜🎜サポートは、ロジックとは関係のない一般的に使用される関数をカプセル化するいくつかのヘルパー クラスです。config は、グローバル関数 config() を使用して、アプリケーション自体の構成を簡単に設定および呼び出すことができます。コード>。 🎜🎜GitHub に送信🎜🎜 前の手順に従って、パッケージに基本的なスケルトンが作成されます。次のステップでは、それを GitHub にアップロードし、プロジェクトを構成し、継続的インテグレーション サービスを統合し、オープン ソース プロジェクト ライセンスを発行します。 🎜🎜 GitHub がプロジェクトを初期化するとき、.gitignore ファイルの生成、ライセンスの選択、README.md ファイルの初期化、ローカル プロジェクト ディレクトリへの切り替え、および以下の手順に従ってディレクトリを GitHub にアップロードすることを選択できます。 🎜Packagist に送信🎜🎜 Packagist は、Composer がパッケージのメタデータ情報を取得した後、GitHub からコードを取得するためのデフォルトのアドレスです。したがって、開発したパッケージを GitHub にアップロードした後、世界中の人々が Composer を通じてコードをプルできるように、パッケージを Packagist に登録する必要があります。 🎜🎜

以上がComposer でホイールを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。