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 directoriesLICENSE、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🎜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 サイトの他の関連記事を参照してください。

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

ホットトピック









