目次
name
license
require
autoload
项目结构
この構成は主に PSR-4 または PSR-0 設定を使用します。PSR-4 標準を使用することをお勧めします。
ホームページ バックエンド開発 PHPチュートリアル Composer でホイールを作成する方法

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

Sep 07, 2017 am 10:06 AM
composer

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Laravelは紹介例 Laravelは紹介例 Apr 18, 2025 pm 12:45 PM

Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

ドクトリンエンティティのシリアル化効率を改善:Sidus/Doctrine-Serializer-Bundleの適用 ドクトリンエンティティのシリアル化効率を改善:Sidus/Doctrine-Serializer-Bundleの適用 Apr 18, 2025 am 11:42 AM

多数の教義エンティティを含むプロジェクトに取り組んでいるとき、私は厳しい問題を抱えていました。エンティティがシリアル化され、脱必要にされるたびに、パフォーマンスは非常に非効率的になり、システムの応答時間が大幅に増加します。複数の最適化方法を試しましたが、うまくいきません。幸いなことに、Sidus/Doctrine-Serializer-Bundleを使用することで、この問題をうまく解決し、プロジェクトのパフォーマンスを大幅に改善しました。

クラフトCMSのキャッシングの問題を解決する:Wiejeben/Craft-Laravel-Mixプラグインの使用 クラフトCMSのキャッシングの問題を解決する:Wiejeben/Craft-Laravel-Mixプラグインの使用 Apr 18, 2025 am 09:24 AM

CraftCMSを使用してWebサイトを開発する場合、特にCSSやJavaScriptファイルを頻繁に更新する場合、リソースファイルのキャッシュ問題が発生することがよくあります。古いバージョンのファイルがブラウザによってキャッシュされ、ユーザーが最新の変更を表示しないようにすることがあります。この問題は、ユーザーエクスペリエンスに影響を与えるだけでなく、開発とデバッグの難しさを高めます。最近、プロジェクトで同様のトラブルに遭遇し、いくつかの調査の後、プラグインWiejeben/Craft-Laravel-Mixが見つかりました。

Composerを使用してFecmall Advanced Projectテンプレートをすばやく構築する方法 Composerを使用してFecmall Advanced Projectテンプレートをすばやく構築する方法 Apr 18, 2025 am 11:45 AM

eコマースプラットフォームを開発する場合、適切なフレームワークとツールを選択することが重要です。最近、機能が豊富なeコマースのウェブサイトを構築しようとしていたとき、私は困難な問題に遭遇しました。スケーラブルで完全に機能的なeコマースプラットフォームをすばやく構築する方法です。複数のソリューションを試してみて、FecmallのAdvanced Projectテンプレート(Fecmall/FBBCBase-App-Advanced)を選択することになりました。 Composerを使用することにより、このプロセスは非常にシンプルで効率的になります。作曲家は次のアドレスを通して学ぶことができます:学習アドレス

作曲家を使用してJSONスキーマの検証の問題を解決する方法 作曲家を使用してJSONスキーマの検証の問題を解決する方法 Apr 18, 2025 am 11:51 AM

Symfonyベースのアプリケーションを開発する際には、JSONデータ形式を効果的に検証する方法を開発する際に、トリッキーな問題を抱えています。最初は、手動検証コードを使用しようとしましたが、これは複雑であるだけでなく、エラーが発生しやすいものでもありました。いくつかの調査の後、私はPtyhard/Json-Schema-Bundleという作曲家パッケージを発見しました。

コンポーザーを使用して依存関係注入を解きます:PSR-11コンテナインターフェイスの適用 コンポーザーを使用して依存関係注入を解きます:PSR-11コンテナインターフェイスの適用 Apr 18, 2025 am 07:39 AM

大規模なPHPプロジェクトを開発する際に、一般的ではあるが難しい問題に遭遇しました。依存関係を効果的に管理し、注入する方法です。最初は、グローバル変数と手動注入を使用しようとしましたが、これによりコードの複雑さが増加するだけでなく、簡単にエラーが発生しました。最後に、PSR-11コンテナインターフェイスを使用し、作曲家の力を使用して、この問題をうまく解決しました。

Composerを使用してLaravelアプリケーションのセキュリティを改善する方法:Wiebenieuwenhuis/Laravel-2FAライブラリのアプリケーション Composerを使用してLaravelアプリケーションのセキュリティを改善する方法:Wiebenieuwenhuis/Laravel-2FAライブラリのアプリケーション Apr 18, 2025 am 11:36 AM

Laravelアプリケーションを開発するとき、私は一般的ではあるが難しい問題に遭遇しました。ユーザーアカウントのセキュリティを改善する方法です。サイバー攻撃の複雑さの増加により、単一のパスワード保護は、ユーザーのデータのセキュリティを確保するのに十分ではなくなりました。いくつかの方法を試しましたが、結果は満足のいくものではありませんでした。最後に、コンポーザーを介してwiebenieuwenhuis/laravel-2FAライブラリをインストールし、アプリケーションに2因子認証(2FA)を大幅に追加し、セキュリティを大幅に改善しました。

Laravelのバージョン番号を表示する方法は? Laravelのバージョン番号を表示する方法 Laravelのバージョン番号を表示する方法は? Laravelのバージョン番号を表示する方法 Apr 18, 2025 pm 01:00 PM

Laravelフレームワークには、開発者のさまざまなニーズを満たすためにバージョン番号を簡単に表示するための組み込みの方法があります。この記事では、Composer Command Lineツールの使用、.ENVファイルへのアクセス、PHPコードを介したバージョン情報の取得など、これらの方法について説明します。これらの方法は、Laravelアプリケーションのバージョン化の維持と管理に不可欠です。

See all articles