この記事では主に PHP コンポーネント、フレームワーク、および学習価値のある Composer について紹介します。興味のある友人はそれについて学ぶことができます。
コンポーネントとは
コンポーネントとは、PHP アプリケーションの特定の問題を解決するために使用される、パッケージ化されたコードのセット、関連する一連のクラス、インターフェイス、およびトレイトです。たとえば、PHP アプリケーションで HTTP リクエストを送受信する必要がある場合、guzzle/guzzle などの既製のコンポーネントを使用して実装できます。私たちは、すでに実装されている機能を再実装するためにコンポーネントを使用するのではなく、プロジェクトの長期目標を達成するためにより多くの時間を費やすために使用します。
優れた PHP コンポーネントには、次の特徴があります。
- 単一関数: 1 つの問題の解決に集中し、シンプルなインターフェイスを使用して関数をカプセル化します。
- Small: 小さくて精緻です。問題を解決するために必要な最小限のコードのみが含まれています
- 連携: PHP コンポーネントは相互にうまく連携でき、組み合わせて大規模なプロジェクトを実装できます
- 優れたテスト: テスト自体を提供します。十分なテスト カバレッジ
- 完全なドキュメント: 開発者が簡単にインストール、理解、使用できるように、完全なドキュメントを提供する必要があります
コンポーネントとフレームワーク
フレームワーク、このフレームワークのツールに投資するには多大な費用がかかります。フレームワークは通常、多くのツールを提供しますが、必要なツールが提供されない場合、痛みは私たちに伝わり、私たちは見つけて統合する必要がありますカスタム PHP ライブラリ。サードパーティのコードとフレームワークは同じインターフェイスを使用していない可能性があるため、サードパーティのコードをフレームワークに統合するのは困難な場合があります。
フレームワークを選択するとき、私たちはフレームワークの将来に焦点を当てますが、特定のフレームワークが常に特定の仕事を完了するための最良のツールであることを誰が保証できますか?長年にわたって存在する大規模なプロジェクトでは、適切なパフォーマンスを維持し、常に調整を行う必要がありますが、間違った PHP フレームワークを選択すると、それができない可能性があります。古い PHP フレームワークは、コミュニティ サポートが不足しているため、速度が遅かったり時代遅れになっている可能性があります。これらの古いフレームワークは、多くの場合、最新のオブジェクト指向コードや PHP の新機能の代わりに手続き型コードを使用して書かれています。フレームワーク、考慮すべきことがたくさんあります。
幸いなことに、Laravel はこれらの懸念点に関してうまく機能しているため、多くの PHP フレームワークの中で際立っています。ある意味では、Laravel はコンポーネントベースの開発フレームワークでもあります (コア コンポーネントは独自の Illuminate ライブラリです) 、機能の実装はサードパーティのコンポーネントに大きく依存しています) Symfony に比べて簡単に始められるため、拡張性と使いやすさを兼ね備えています。ただし、Laravel にはいくつかの欠点もあり、たとえば、Laravel 独自のコンポーネントを簡単に分離して Laravel フレームワークの外で使用することはできません (ただし、この状況は改善されると信じています。たとえば、データベース コンポーネントやキュー コンポーネントを分離できるなど)。総合すると、Laravel は依然として、強力なアプリケーションを迅速に作成するのに役立つ優れたフレームワークです。
では、コンポーネントまたはフレームワークを使用する必要がありますか?答えは、適切なツールを適切なものに使用することです。いくつかの PHP コンポーネントを使用して小規模なプロジェクトを迅速に実装できる場合は、コンポーネントを使用してください。複数のチーム メンバーが大規模なプロジェクトに取り組んでいる場合は、PHP によって提供される合意されたガイドラインと構造の恩恵を受けることができます。 (どのフレームワークを使用するか迷った場合は、Laravel を選択してください。がっかりすることはありません) フレームワークを使用すると、プロジェクトの開発を導き、加速することができます。
コンポーネントの使用
Packagist
Packagist で PHP コンポーネントを探します。この Web サイトは、PHP コンポーネントを収集するために使用されます。最適な PHP コンポーネントは Packagist で見つけることができます。
たとえば、http コンポーネントを使用して HTTP メッセージを送受信する場合、検索ボックスで http を検索すると、最初に得られる結果は Guzzle です。これを使って。
Composer
Packagist は PHP コンポーネントを見つけるためのコミュニティであり、Composer は PHP コンポーネントをインストールするためのツールです。 Composer は PHP の依存関係マネージャーです。コマンド ラインで実行されます。必要なコンポーネントを Composer に指示すると、Composer はこれらのコンポーネントをダウンロードしてプロジェクトに自動的にロードします。とても簡単です。
Composer と Packagist は密接に連携します。Composer に guzzlehttp/guzzle
コンポーネントを使用するように指示すると、Composer は Packagist から guzzlehttp/guzzle
コンポーネントを取得し、このコンポーネントを検索します。ウェアハウスのアドレス、使用するバージョンを決定し、このコンポーネントの依存関係を見つけて、guzzlehttp/guzzle
コンポーネントとその依存関係をプロジェクトにダウンロードします。
さらに、Composer はプロジェクト内のすべての PHP コンポーネントの PSR 標準に準拠するオートローダーを自動的に生成し、依存関係の管理と自動読み込みを効果的に抽象化します。したがって、Composer は PHP コミュニティにとって最も重要です。自動ロードを手動で実装するために include、require、spl_autoload_register を使用しなければならなかった苦痛な日々を思い出しても過言ではありません。
Composer のインストールと使用方法については、ここでは詳しく説明しませんので、Composer の中国語 Web サイトを参照してください。
サンプル プロジェクト
以下では、サンプル プロジェクトを使用して、Composer とコンポーネントを使用して PHP アプリケーションを開発する方法を示します。このアプリケーションの機能は、CSV ファイル内の URL をスキャンしてデッド リンクを見つけることです。アプリケーション HTTP リクエストが各 URL に送信され、返された HTTP ステータス コードが 400 以上の場合、デッド リンクが標準出力に送信されます。これはコマンドラインアプリケーションなので、開発後にこのスクリプトを実行し、csvファイルのパスを渡してデッドリンクのリストを標準出力に表示します。
コンポーネントのインストール
始める前に、既存の PHP コンポーネントを使用してどのタスクを解決できるかを見てみましょう。csv ファイルのデータを反復処理できるコンポーネントが必要です。 csv ファイルにデータを追加します。各 URL は HTTP リクエストを送信するため、HTTP リクエストを送信して HTTP レスポンスを確認できるコンポーネントも必要です。
Packagist を閲覧したところ、guzzlehttp/guzzle
と league/csv
という 2 つのコンポーネントが見つかりました。前者は HTTP メッセージの処理に使用され、後者は HTTP メッセージの処理に使用されます。 CSVデータを処理します。次に、プロジェクトの最上位で次のコマンドを実行します:
composer require guzzlehttp/guzzle composer require league/csv
Composer は依存関係をルート ディレクトリの vendor
ディレクトリにインストールします。インストールが完了したら、composer はルート ディレクトリに生成されます。.json
および composer.lock
ファイル:
##composer.lock file には、プロジェクトの PHP コンポーネントで使用されるすべてのファイルと、コンポーネントの特定のバージョン番号がリストされます。これにより、プロジェクトが特定のバージョンの PHP コンポーネントのみを使用できるように、実際にプロジェクトがロックされます。この利点は、Packagist で利用可能な最新バージョンに関係なく、composer がこのファイルにリストされている特定のバージョンをダウンロードすることです。チーム メンバーが使用できるように、
composer.lock ファイルをバージョン管理に置く必要があります。 . PHP のバージョンが同じである ローカル開発とサーバーで使用する PHP コンポーネントのバージョンが同じであれば、コンポーネントのバージョンの違いによるバグを最小限に抑えることができます。
composer.lock を更新したい場合は、
composer update コマンドを使用できます。
scan.php ファイルを作成し、その先頭で
require# を使用します。ファイル ##Composer によって作成されたオートローダーをインポートします: <pre class='brush:php;toolbar:false;'>require &#39;vendor/autoload.php&#39;;</pre>
Composer によって作成されたオートローダーは、実際には
という名前のファイルであり、vendor
に保存されます。 Composer が各 PHP コンポーネントをダウンロードするとき、各コンポーネントの composer.json
ファイルをチェックして、コンポーネントのロード方法を決定します。この情報を取得した後、Composer はコンポーネントのローカル PSR 標準を作成します。 。このようにして、プロジェクト内の任意の PHP コンポーネントをインスタンス化することができ、これらのコンポーネントはオンデマンドで自動的にロードされます。 コードの記述
以下では、正式に Guzzle および CSV コンポーネントを使用して
scan.php コードを記述します。 <pre class='brush:php;toolbar:false;'>//使用composer自动加载器
require &#39;vendor/autoload.php&#39;;
//实例Guzzle Http客户端
$client = new GuzzleHttp\Client();
//打开并迭代处理CSV
$csv = League\Csv\Reader::createFromPath($argv[1]);
foreach ($csv as $csvRow) {
try {
//发送HTTP GET请求
$httpResponse = $client->get($csvRow[0]);
//检查HTTP响应的状态码
if($httpResponse->getStatusCode() >= 400) {
throw new Exception();
}
} catch (Exception $e) {
//把死链发给标准输出
echo $csvRow[0] . PHP_EOL;
}
}</pre>
以下では、
いくつかの URL を 1 行に 1 つずつ追加します。少なくとも 1 つはデッドリンクです:
次に、ターミナルを開いて
php scan.php urls.csv
2 つのパラメータを渡しました。1 つ目はスクリプト ファイル
scan.php へのパスで、もう 1 つは CSV ファイルへのパスです。出力は次のとおりです。 関連チュートリアル: PHP ビデオ チュートリアル
以上がPHP コンポーネント、フレームワーク、および Composer についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

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