Composer でホイールを作成する方法
composer は PHP の依存関係管理ツールです。この記事では、他の人が Composer を介してパッケージを簡単に使用できるように、パッケージを構築して Packagist に送信する方法を説明します。 S 次の手順を開発します:
- Composer.json ファイルを初期化する
- 名前空間とパッケージ名の機能を定義する
- Packagist にパッケージを登録する
- Composer.json を初期化するファイルComposer をインストールした後、ローカルで
composer init
を実行し、対話型コマンド ラインから Composer.json を設定できます。 - 以下では、いくつかの属性と一般的な設定を紹介します: name
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
を使用してファイルにエラーがあるかどうかを確認することです。
git init # 初始化仓库git remote set-url origin --push --add git@github.com:jayxhj/geosso.git # 添加远程追踪仓库地址git add . git commit git push origin master
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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









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

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

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

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

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

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

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

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