
キーテイクアウト
- Drupal 8にはいくつかの重要なSymfonyコンポーネントが含まれており、その能力を高め、Drupal開発者にSymfonyの詳細を学ぶ機会を提供します。
Drupal 8のSymfonyコンポーネントには、httpkernel、httpfoundation、eventdispatcher、classloader、yaml、ルーティング、依存関係、小枝、プロセス、シリアイザー、検証装置、翻訳が含まれます。これらの各コンポーネントは、Drupal 8にユニークな機能と機能を追加します。
Symfonyコンポーネントとは別に、Drupal 8には、Assetic、Composer、Doctrine、EasyRDF、Guzzle、Phpunit、PSR-3ロギングなどのサードパーティPHPコンポーネントも含まれています。 。
- Drupal 8のSymfonyコンポーネントとサードパーティコンポーネントの統合により、作業プロセスが簡素化され、Drupalがより堅牢で維持可能で、スケーラブルになりました。
- あなたがDrupalerである場合、Drupal 8が途中であることに注意する必要があります。わからないかもしれないことは、いくつかの重要なSymfonyコンポーネントが含まれているということです。 Drupal 8.Xと協力することで、Drupalersは大規模な学習曲線の一部になる機会を与え、Symfonyについてもっと知りたいと思うでしょう。この記事では、Drupal 8に追加されたSymfonyコンポーネントについて説明し、途中でいくつかのサードパーティライブラリをカバーしています。
実際の記事に入る前に、まずSymfonyを簡単に説明しましょう。これは、MVCアーキテクチャに続くPHPベースのWebアプリケーションフレームワークです。さらに、MITライセンスの下でリリースされたオープンソースプロジェクトです。 Symfony CMSと混同しないようにしてください。 - Symfony Framework
を詳細に調べたい場合は、Wikiページまたはそれに関する以前のSitePointの記事のいずれかを参照してください。
Drupal 8で実装されているSymfonyコンポーネントについて学びましょう。
Drupal 8.x
の
Symfonyコンポーネント
以下は、Drupal 8コアに大部分を供給するSymfonyコンポーネントです。
httpkernelおよびhttpfoundation - これらは、eventDispatcherの助けを借りて要求を応答に変換するプロセスを合理化する責任があります。 Drupal 8はSymfonyに移されました。DrupalをA
>ファーストクラスのCMS
からA
ファーストクラスに変換する動機で、
Webサービスとコンテンツコアイニシアチブ(WSCCI)
によって推進されました。
- restサーバー
ファーストクラスのCMSがその上で実行されています。このイニシアチブは、DrupalがWebサービスを使用して、複雑さを軽減したコンテンツを提供できるようにすることを目的としています。これを長期的なビジョンとして考慮すると、Drupalはより柔軟で堅牢で、簡単に保守可能なCMSです。
eventDispatcher - 特にコード継承がうまくいかない場合、シンプルで効果的な方法で調停パターン(カプセル化を使用)を実装し、アプリケーションを非常に拡張可能にします。クラス間のコミュニケーションを非常にシンプルで簡単にするため、膨大な数のクラスで構成されるプログラムを維持および/またはリファクタリングする傾向がある状況では、より効果的です。
classloader - クラスをオートロードし、その場所をキャッシュするツールを提供します。 PHPは、自動ローディングメカニズムを使用して、まだ不要または含まれていないクラスを参照する状況でクラスを定義するファイルのロードを委任します。 Symfonyには、PSR-0クラスローダーやMapClassloaderなどのオートローダーが付属しています。 ClassLoaderコンポーネントを実装すると、Module_load_includeおよびその他の依存関係の実装に関しては、Drupal Module開発者が気が進まないようになります。さらに、開発者は実行時にクラスを簡単に呼び出すことができます。
yaml - yaml文字列を解析し、phpアレイに変換し、その逆も同様です。この形式は、XMLファイルと同じように表現力豊かであり、INIファイルと同じくらい読み取り可能であると同時に、構成関連情報を保持するように特に設計されています。これは、DrupalのCMI(構成管理イニシアチブ)の不可欠なコンポーネントとして機能し、モジュールが最初にデフォルトの構成設定を定義できるようにし、後でサイトビルダーが指示と同じものをオーバーライドできるようにします。 YAMLを搭載したDrupal 8のCMIのこの概念は、環境全体に移行して展開する限り、堅牢な概念であることが証明されている機能を提供する機能の代替品です。
ルーティング - すべてのルートをロードし、これらのルートに固有のURLマッチャーまたはジェネレーターをダンプできます。これはまた、HTTP要求を一連の構成変数にマップすることを意味します。 Drupal 8以降のバージョンに関する限り、モジュールのルートをYAML構成ファイルに定義し、それぞれがモジュールのクラスで定義されている特定のアクションをトリガーするように設定します。
依存指示 - 主に、アプリケーションでオブジェクトの構築方法を標準化および集中化するために使用されます。 Symfonyの依存指示コンポーネントは、クラスを再利用してユニットテストすることができるようにコードを作成する意図で、Drupal 8に組み込まれています。
Twig - Drupal 8はTwigテンプレートエンジンを採用しています。これは、Drupalテーマに取り組んでいる限り、おそらく他の選択肢を二度と考えないでしょう。 Twigは、Symfonyプロジェクトも開発したFabien Totencier- によって開発され、Drupal 8への統合に合わせて調整されました。
プロセス - コマンドラインインターフェイスを使用してサブプロセスでコマンドを実行するのを支援します。 Drupal 8はこれを使用して、本質的にコマンドラインであるすべてのアクティビティを処理します。
Serializer - オブジェクトを特定の形式(XML、YAML、JSONなど)に変換するために使用され、その逆も同様です。それをよりよく理解するために、- serializer
コンポーネントが次のとおりであるという次のスキーマを見てみましょう。
さらに、それを使用して、構成からノードやエンティティの作成に至るまで、RESTエンドポイントで配信されるエンティティ作成に至るまで、多くのジョブを達成できます。

バリデーター - DruPALが値を検証するのを支援します。例:フォームの提出の検証、Drupal内のエンティティなどの検証など、その仕事を達成するために、doctrine Annotations
を使用します( offo-offo-boxのサードパーティコンポーネント- セクションで説明) 。
翻訳 - 翻訳ファイルをロードし、翻訳された文字列を出力として生成するツールの標準セットを提供し、生成された結果を使用します。
すぐにボックスのサードパーティのコンポーネント
- Drupal 8に含まれているSymfonyコンポーネントを通過しました。このセクションでは、Drupal 8で実装され、Symfonyに関連していないサードパーティのPHPコンポーネントについて確認します。彼らは次のとおりです:
Assetic - An
Asset Management Framework
。 Drupalの資産は、CSSファイル、JavaScriptファイル、画像、その他のメディアファイル、メタデータなどで構成されています。これらの資産には、ロードおよびダンプできるフィルター可能なコンテンツが含まれています。資産を操作するには、適切なフィルターを適用する必要があります。フィルターを理解するには、それぞれ使用できる状況で、フィルターの使用方法、ビルド、ダンプなど、Assetic GitHubページを読むことをお勧めします。
Composer - PHPで依存関係を管理し、依存関係を管理し、依存ライブラリを宣言し、プロジェクトのニーズを宣言し、それらをインストールできるように特別に設計および開発されたツール。パッケージやライブラリを扱っていますが、パッケージマネージャーではありません。作曲家はDrupalの恩恵です8
Doctrine - データベースレコードで使用するツールのバンドル。 Drupal 8は、追加のメタデータをDrupalに露出させる annotationsと呼ばれるその一部を使用します。特にカスタムエンティティタイプを定義する場合、このようなトリッキーな機能を非常に簡単で便利な方法で提示する努力がなされてきました。 Drupal 8で教義がどのように使用されるかについてさらに探求したい場合は、ドキュメントページにアクセスすることをお勧めします。
easyrdf - Drupal 8で使用されているPHPライブラリが、RDFの消費と生産を容易にします。 EasyRdfの助けを借りて、Drupal 8は、簡単で便利な方法でマークアップでメタデータを生成する機能を追加します。また、EasyRdfの公式サイトにアクセスして、詳細を確認することもできます。
Guzzle - Drupal 8がRESTベースのWebサービスコールを使用してWebリクエストを行うのに役立つPHP HTTPクライアントとフレームワークです。これにより、Drupal 8 Webポータルは、さまざまな種類のWebサービスを処理するという点でより効率的になります。 Guzzleでさらに探索するには、以前の記事を読むことをお勧めします。
phpunit - Drupal 8で使用されて、コア全体の単体テストを標準化し、開発者が最大限の品質のコードを作成するのに役立ちます。 PHPunitは、Drupal 8およびITに組み込まれているカスタムモジュールに書かれたコードが業界の基準に一致し、ライフサイクル全体で期待どおりに機能することを保証します。ここに行くことで、PhpunitのDrupal 8への組み込みの現在の状況に注意することができます。
PSR-3ロギング - PHPアプリケーション全体で共有される一般的なロギングシステム。 Drupal 7以降のバージョンは、この目的のためにWatchDog()を使用します。 drupalロギングをWatchDog()からPSR-3ロギングフレームワークに切り替えることで、Drupalは一般的なロギングの点でより堅牢でスケーラブルになりました。 Switch WatchDogのこのコンポーネントの現在のステータスをPSR-3ロギングフレームワークに追跡できます。
結論
いくつかのSymfonyコンポーネントの導入により、Drupal 8との連携が簡素化されました。さらに、いくつかの非派生コンポーネントを含むことは、その品質、スケーラビリティ、およびパフォーマンスの点でDrupal 8に付加価値があるため、さらに堅牢になります。保守可能。
SymfonyとDrupal 8
についてのよくある質問
Drupal 8でSymfonyを使用することの利点は何ですか? SymfonyはDrupal 8アーキテクチャをどのように改善しますか? Symfonyは、Drupal 8により近代的でオブジェクト指向のアプローチをもたらします。コード。これにより、コードがより保守可能でテスト可能になります。さらに、Symfonyのhttpkernelにより、Drupalは標準化された方法でリクエストと応答を処理し、他のPHPプロジェクトとの相互運用性を向上させることができます。 httpfoundation、httpkernel、ルーティングなど、いくつかのSymfonyコンポーネントeventDispatcher、依存関係、およびクラスローダー。これらのコンポーネントは、リクエスト応答サイクル、ルーティング、イベント管理、依存関係管理、クラスの自動装置のさまざまな側面をそれぞれ処理します。 > Symfonyの統合により、Drupal 8モジュールの開発はより合理化され、効率的になりました。開発者は、Symfonyのサービスコンテナを依存噴射に使用して、モジュールをよりモジュール化し、テスト可能にすることができます。また、Symfonyのルーティングシステムを使用すると、より柔軟で強力なURLルーティングが可能になります。たとえば、HTTPKernelコンポーネントにより、Drupalは標準化された方法でリクエストと応答を処理し、頭上を削減し、応答時間を改善できます。さらに、SymfonyのEventDispatcherは、効率的なイベント管理を可能にし、不必要なコード実行の量を減らします。アプリケーション用。認証、承認、データ暗号化、一般的なWebの脆弱性に対する保護などの機能を提供します。このコンポーネントを活用することにより、Drupal 8はWebアプリケーションにより安全なプラットフォームを提供できます。心。 PHP-FIG標準に従い、パッケージ管理に作曲家を使用して、幅広いPHPプロジェクトやライブラリと互換性があります。これは、SymfonyがコアにあるDrupal 8が他のテクノロジーと簡単に統合し、PHPパッケージの広大なエコシステムを利用できることを意味します。 🎜> Symfonyは、テストとデバッグに役立ついくつかのツールとコンポーネントを提供します。たとえば、デバッグコンポーネントとバルダンパーコンポーネントは、アプリケーションをデバッグするための役立つツールを提供します。また、SymfonyのbrowserkitおよびDomcrawlerコンポーネントは、Drupal 8 Webサイトの機能テストに使用できます。Symfonyは、Drupal 8の将来の防止にどのように貢献していますか? Symfonyは、Drupal開発者に馴染みのない新しい概念と実践を導入していますが、Webサイトを構築するためのより構造化され標準化された方法も提供します。これにより、実際にDrupal 8を学び、理解しやすくなります。さらに、Symfonyが利用できるリソースとチュートリアルがたくさんあります。
以上がDrupal 8のSymfony 8の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。