Symfony-components
symfony-コンポーネント
前述のように、SymfonyコンポーネントはスタンドアロンのPHPライブラリであり、特定の機能を提供します。これは、任意のPHPアプリケーションで使用できます。 Symfonyのすべてのリリースで、有用な新しいコンポーネントが導入されています。 現在、Symfonyフレームワークには30以上の高品質コンポーネントがあります。 この章では、Symfonyコンポーネントの使用法について学びましょう。
Symfonyコンポーネントのインストール
symfonyコンポーネントはcomposerコマンドを使用して簡単にインストールできます。 次の汎用コマンドを使用して、Symfonyコンポーネントをインストールできます。
簡単なphpアプリケーションを作成して、 Filesystem コンポーネントをインストールしてみましょう。
ステップ1 *-アプリケーションのフォルダー、 *filesystem-example を作成します
- ステップ2 *-次のコマンドを使用して、ファイルシステムコンポーネントをインストールします。
ステップ3 *-ファイル *main.php を作成し、次のコードを入力します。
最初の行は非常に重要で、Composerコマンドを使用してインストールされたすべてのコンポーネントから必要なすべてのクラスをロードします。 次の行では、Filesystemクラスを使用します。
ステップ4 *-次のコマンドを使用してアプリケーションを実行すると、新しいフォルダー *sample-dir とその下にファイル test.txt が作成されます。
Symfonyコンポーネントの詳細
symfonyは、単純な機能(ファイルシステムなど)から高度な機能(イベント、コンテナーテクノロジー、依存性注入など)までのコンポーネントを提供します。 すべてのコンポーネントについて、次のセクションで1つずつお知らせください。
ファイルシステム
ファイルシステムコンポーネントは、ファイルの作成、フォルダーの作成、ファイルの存在など、ファイルとディレクトリに関連する基本的なシステムコマンドを提供します。 ファイルシステムコンポーネントは、次のコマンドを使用してインストールできます。
ファインダ
Finderコンポーネントは、指定されたパスでファイルとディレクトリを見つけるための流れるようなクラスを提供します。 パス内のファイルを反復処理する簡単な方法を提供します。 Finderコンポーネントは、次のコマンドを使用してインストールできます。
コンソール
コンソールコンポーネントは、ターミナルで実行できるコマンドを簡単に作成するためのさまざまなオプションを提供します。 symfonyは Command コンポーネントを広範囲に使用して、新しいアプリケーションの作成、バンドルの作成などのさまざまな機能を提供します。 WebサーバーのPHPビルドでさえ、インストールセクションにあるように、Symfonyコマンド php bin/console server:run を使用して呼び出すことができます。 Console コンポーネントは、次のコマンドを使用してインストールできます。
単純なアプリケーションを作成し、 Console コンポーネントを使用してコマンド HelloCommand を作成し、呼び出します。
- ステップ1 *-次のコマンドを使用してプロジェクトを作成します。
ステップ2 *-ファイル *main.php を作成し、次のコードを含めます。
ステップ3 *-アプリケーション *php main.php を実行すると、次の結果が生成されます。
ステップ4 *- *main.php 自体に Command クラスを拡張する HelloCommand というクラスを作成します。
アプリケーションは、 Command コンポーネントで使用可能な次の4つのクラスを使用します。
- コマンド-新しいコマンドを作成するために使用
- InputInterface -ユーザー入力の設定に使用
- InputArgument -ユーザー入力を取得するために使用
- OutputInterface -コンソールに出力を印刷するために使用
ステップ5 *-関数 configure()*を作成し、名前、説明、およびヘルプテキストを設定します。
ステップ6 *-コマンドの入力引数 *user を作成し、必須として設定します。
ステップ7 *-2つの引数 *InputArgument および OutputArgument を使用して関数* execute()*を作成します。
ステップ8 *- *InputArgument を使用して、ユーザーが入力したユーザーの詳細を取得し、 OutputArgument を使用してコンソールに出力します。
ステップ9 *- *Application クラスの add メソッドを使用して、 HelloCommand をアプリケーションに登録します。
完全なアプリケーションは次のとおりです。
- ステップ10 *-さて、次のコマンドを使用してアプリケーションを実行すると、結果は予想どおりHello、Jonになります。
Symfonyには、アプリケーションでコマンドを呼び出すために使用できるSymfony Webアプリケーションのbinディレクトリに console と呼ばれるビルド済みのバイナリが付属しています。
プロセス
プロセスコンポーネントは、サブプロセスでシステムコマンドを安全かつ効率的な方法で実行するオプションを提供します。 プロセスコンポーネントは、次のコマンドを使用してインストールできます。
ClassLoader
ClassLoaderコンポーネントは、 PSR-0 および PSR-4 クラスローダー標準の両方の実装を提供します。 クラスの自動ロードに使用できます。 近い将来に減価償却されます。 Composerベースのクラスローダーは、このコンポーネントよりも優先されます。 ClassLoaderコンポーネントは、次のコマンドを使用してインストールできます。
PropertyAccess
PropertyAccessコンポーネントは、文字列表記を使用してオブジェクトと配列の詳細を読み書きするためのさまざまなオプションを提供します。 たとえば、キー price を持つ配列 Product は、 [price] 文字列を使用して動的にアクセスできます。
PropertyAccessコンポーネントは、次のコマンドを使用してインストールできます。
PropertyInfo
PropertyInfoコンポーネントはPropertyAccessコンポーネントに似ていますが、PHPオブジェクトでのみ機能し、より多くの機能を提供します。
PropertyInfoコンポーネントは、次のコマンドを使用してインストールできます。
EventDispatcher
EventDispatcherコンポーネントは、PHPでイベントベースのプログラミングを提供します。 イベントをディスパッチしてそれらをリッスンすることにより、オブジェクトが互いに通信できるようにします。 イベントとイベントリスナの章で、イベントの作成方法とリスニング方法を学習します。
EventDispatcherコンポーネントは、次のコマンドを使用してインストールできます。
DependencyInjection
DependencyInjectionコンポーネントは、依存関係を持つオブジェクトを作成するための簡単で効率的なメカニズムを提供します。 プロジェクトが大きくなると、深い依存関係を持つ多くのクラスが機能するため、正しく処理する必要があります。 そうしないと、プロジェクトは失敗します。 DependencyInjectionは、依存関係を処理するためのシンプルで堅牢なコンテナーを提供します。 コンテナと依存関係注入の概念については、サービスコンテナの章で学習します。
DependencyInjectionコンポーネントは、次のコマンドを使用してインストールできます。
シリアライザー
シリアライザーコンポーネントは、PHPオブジェクトをXML、JSON、バイナリなどの特定の形式に変換するオプションを提供し、データを失うことなく元のオブジェクトに戻すことができます。
シリアライザーコンポーネントは、次のコマンドを使用してインストールできます。
設定
構成コンポーネントは、XML、YAML、PHP、およびiniタイプの構成をロード、解析、読み取り、および検証するオプションを提供します。 データベースから構成の詳細をロードするためのさまざまなオプションも提供します。 これは、Webアプリケーションを明確かつ簡潔に構成するのに役立つ重要なコンポーネントの1つです。 構成コンポーネントは、次のコマンドを使用してインストールできます。
ExpressionLanguage
ExpessionLanguageコンポーネントは、本格的な式エンジンを提供します。 式は、値を返すことを目的とした1行のライナーです。 式エンジンを使用すると、式から値を簡単にコンパイル、解析、取得できます。 システム管理者など、PHP以外のプログラマーが1つ以上の式を構成環境(ファイル)で使用できるようにします。 ExpressionLanguageコンポーネントは、次のコマンドを使用してインストールできます。
OptionsResolver
OptionsResolverコンポーネントは、システムで使用されるオプションシステムを検証する方法を提供します。 たとえば、データベース設定は配列に配置され、dboptionはホスト、ユーザー名、パスワードなどをキーとして使用します。 データベースに接続するために使用する前に、エントリを検証する必要があります。 OptionsResolverは、単純なクラスOptionsResolverとデータベース設定を解決するメソッドリゾルバを提供することでこのタスクを簡素化し、検証の問題があればそれを報告します。
OptionsResolverコンポーネントは、次のコマンドを使用してインストールできます。
ドテンフ
Dotenvコンポーネントは、。envファイルおよび *getenv()、$ _ ENV 、または $ _ SERVER を介してアクセスできるように定義された変数を解析するためのさまざまなオプションを提供します。 Dotenvコンポーネントは、次のコマンドを使用してインストールできます。
キャッシュ
キャッシュコンポーネントは、拡張 PSR-6 実装を提供します。 Webアプリケーションにキャッシュ機能を追加するために使用できます。 PSR-6 に準拠しているため、簡単に開始でき、別のPSR-6ベースのキャッシュコンポーネントの代わりに簡単に使用できます。 キャッシュコンポーネントは、次のコマンドを使用してインストールできます。
Intl
Intlコンポーネントは、C Intl拡張機能の代替ライブラリです。 Intlコンポーネントは、次のコマンドを使用してインストールできます。
翻訳
翻訳コンポーネントは、アプリケーションを国際化するためのさまざまなオプションを提供します。 通常、異なる言語の翻訳の詳細は、言語ごとに1つのファイルに保存され、アプリケーションの実行時に動的にロードされます。 翻訳ファイルを作成するには、さまざまな形式があります。 翻訳コンポーネントは、プレーンPHPファイル、CSV、ini、Json、Yaml、ICUリソースファイルなど、あらゆるタイプの形式をロードするためのさまざまなオプションを提供します。 翻訳コンポーネントは、次のコマンドを使用してインストールできます。
ワークフロー
ワークフローコンポーネントは、有限状態マシンを処理するための高度なツールを提供します。 この機能をシンプルでオブジェクト指向の方法で提供することにより、Workflowコンポーネントは比較的簡単にPHPで高度なプログラミングを可能にします。 詳細については、高度なコンセプトの章で説明します。
ワークフローコンポーネントは、次のコマンドを使用してインストールできます。
Yaml
Yamlコンポーネントには、YAMLファイル形式を解析してPHP配列に変換するオプションがあります。 また、プレーンなphp配列からYAMLファイルを書き込むこともできます。 Yamlコンポーネントは、次のコマンドを使用してインストールできます。
Ldap
Ldapコンポーネントは、LDAPまたはActive Directoryサーバーに接続し、それに対してユーザーを認証するためのPHPクラスを提供します。 Windowsドメインコントローラーに接続するオプションを提供します。 Ldapコンポーネントは、次のコマンドを使用してインストールできます。
デバッグ
デバッグコンポーネントは、PHP環境でデバッグを有効にするためのさまざまなオプションを提供します。 通常、PHPコードのデバッグは困難ですが、デバッグコンポーネントは単純なクラスを提供して、デバッグプロセスを容易にし、クリーンで構造化しています。 デバッグコンポーネントは、次のコマンドを使用してインストールできます。
ストップウォッチ
Stopwatchコンポーネントは、PHPコードのプロファイルを作成するStopwatchクラスを提供します。 簡単な使用法は次のとおりです。
ストップウォッチコンポーネントは、次のコマンドを使用してインストールできます。
VarDumper
VarDumperコンポーネントは、優れた* dump()*機能を提供します。 VarDumperコンポーネントを組み込み、ダンプ機能を使用して機能を向上させてください。 VarDumperコンポーネントは、次のコマンドを使用してインストールできます。
BrowserKit
BrowserKitコンポーネントは、抽象的なブラウザークライアントインターフェイスを提供します。 Webアプリケーションをプログラムでテストするために使用できます。 たとえば、フォームを要求し、サンプルデータを入力して送信し、プログラムでフォーム内の問題を見つけることができます。 BrowserKitコンポーネントは、次のコマンドを使用してインストールできます。
PHPUnit Bridge
PHPUnit Bridgeコンポーネントは、PHPUnitテスト環境を改善するための多くのオプションを提供します。 PHPUnit Bridgeコンポーネントは、次のコマンドを使用してインストールできます。
資産
資産コンポーネントは、Webアプリケーションでの一般的な資産処理を提供します。 CSS、HTML、JavaScriptなどのアセットのURLを生成し、バージョンメンテナンスも実行します。 アセットコンポーネントの詳細は、View Engineの章で確認します。 資産コンポーネントは、次のコマンドを使用してインストールできます。
CssSelector
CssSelectorコンポーネントは、CSSベースのセレクターをXPath式に変換するオプションを提供します。 Web開発者はXPath式よりもCSSベースのセレクター式を知っていますが、HTMLおよびXMLドキュメントで要素を見つけるための最も効率的な式は* XPath式*です。
CssSelectorを使用すると、開発者は_CSS Selectors_に式を記述できますが、コンポーネントは実行前にXPath式に変換します。 したがって、開発者には、CSSセレクターの単純さとXPath式の効率という利点があります。
CssSelectorコンポーネントは、次のコマンドを使用してインストールできます。
DomCrawler
DomCrawlerコンポーネントは、DOMコンセプトを使用してHTMLおよびXMLドキュメントで要素を検索するためのさまざまなオプションを提供します。 また、XPath式を使用して要素を検索するオプションも提供します。 DosCrawlerコンポーネントをCssSelectorコンポーネントとともに使用して、XPath式の代わりにCSSセレクターを使用できます。 DomCrawlerコンポーネントは、次のコマンドを使用してインストールできます。
Form
フォームコンポーネントを使用すると、Webアプリケーションでフォームを簡単に作成できます。 フォームのプログラミングの詳細については、フォームの章で説明します。 フォームコンポーネントは、次のコマンドを使用してインストールできます。
HttpFoundation
HttpFoundationコンポーネントは、HTTP仕様にオブジェクト指向レイヤーを提供します。 デフォルトでは、PHPはHTTPリクエストおよびレスポンスの詳細を $ _ GET、$ _ POST、$ _ FILES、$ _ SESSION などの配列ベースのオブジェクトとして提供します。 Cookieの設定などのHTTPベースの機能は、単純で単純な古い関数* setCookie()*を使用して実行できます。 HttpFoundationは、Request、Response、RedirectResponseなどのクラスの小さなセットですべてのHTTP関連機能を提供します。これらのクラスについては後の章で学習します。
HttpFoundationコンポーネントは、次のコマンドを使用してインストールできます。
HttpKernel
HttpKernelコンポーネントは、Symfony Webセットアップのコアコンポーネントです。 Request オブジェクトの受信から Response オブジェクトの返送まで、Webアプリケーションに必要なすべての機能を提供します。 Symfony Webアプリケーションの完全なアーキテクチャは、Symfony Webフレームワークのアーキテクチャで説明されているように、HttpKernelによって提供されます。
HttpKernelコンポーネントは、次のコマンドを使用してインストールできます。
ルーティング
ルーティングコンポーネントは、HTTP要求を事前定義された構成変数のセットにマップします。 ルーティングは、アプリケーションのどの部分でリクエストを処理するかを決定します。 ルーティングの章でルーティングの詳細を学びます。
ルーティングコンポーネントは、次のコマンドを使用してインストールできます。
テンプレート
テンプレートコンポーネントは、効率的なテンプレートシステムを構築するために必要なインフラストラクチャを提供します。 Symfonyは、Viewエンジンの実装にテンプレートコンポーネントを使用します。 テンプレートの詳細については、Viewエンジンの章で説明します。
テンプレートコンポーネントは、次のコマンドを使用してインストールできます。
バリデーター
Validatorコンポーネントは、 JSR-303 Bean Validation Specification の実装を提供します。 Web環境でフォームを検証するために使用できます。 Validatorの詳細については、検証の章で説明します。
検証コンポーネントは、次のコマンドを使用してインストールできます。
セキュリティ
セキュリティコンポーネントは、HTTP基本認証、HTTPダイジェスト認証、インタラクティブフォームベース認証、X.509証明書ログインなど、Webアプリケーションに完全なセキュリティシステムを提供します。 また、組み込みのACLシステムを介して、ユーザーロールに基づいた承認メカニズムも提供します。 詳細については、高度なコンセプトの章で説明します。
セキュリティコンポーネントは、次のコマンドを使用してインストールできます。