SymfonyがDrupalに採用されている理由
![DrupalにSymfonyが採用されている理由](/sites/default/files/styles/wide/public/2024-01/symfony_black_02_0.png?itok=yn1x-2Oq)
この記事は以下のサイトを、 DeepL版プロの翻訳家 テンプレートを使用して翻訳して引用しています。AI翻訳のため一部訳がおかしい箇所がありましたらご容赦ください。
Drupalアソシエーションによる 2021年3月23日
このブログはDrupal AssociationのサポートパートナーであるCode Enigmaから寄稿されました。
このブログでは、私たちCode EnigmaがなぜSymfonyを使うのか、Symfonyとはどのようなフレームワークなのか、そして私たちがDrupalエージェンシーとしてSymfonyが優れた選択だと考える理由を説明します。
Web 開発は時計の仕組みに似ています。アプリケーションの各部分は、ユーザーが望むことに応えるために正しく機能し、完璧に統合する必要があります。時計の機構が完璧に動くことで、秒針が絶えず正確に文字盤を横切ることができるのと同じです。
それでは、symfony を使ってどのように実現するのかについて話しましょう。
すべてのWebサイトの78.8%はPHPを使って作成されています (W3techs、2020年6月)。
WebサイトもしくはWebアプリは、純粋にPHP、もしくは少なくともそのフレームワークの1つだけで構築できます。そして、これはアプリがどれだけ複雑か、または開発期間に依存します。また、開発者の経験値など、その他の要因も関係してきます。
symfony は利用可能なもっとも人気のあるフレームワークの1つです。Code Enigma では、私たちは毎日 symfony に触れています。実際、私たちのクライアントダッシュボードは symfony で書かれ、私たちのプロジェクトの重要な部分でもあります。
フレームワークとは?
もしあなたが技術的でないなら、心配しないでください。symfony が優れている理由を説明する前に、フレームワークが何であるかを簡単に説明します。
フレームワークは本質的に普遍的で再利用可能なプログラムのコレクションです。これらはソフトウェアアプリケーションの開発に貢献する特定のタスクをこなします。
別の比喩を使いましょう。
symfony が Web サイトもしくは Web アプリケーションになるための白紙のキャンバスだと想像してください。あなたは作品を作るために絵の具を使う必要があり、開発者はモジュールと機能を配置するフレームワークを必要とします。symfony はキャンバスであり、モジュールと機能は絵の具です。
フレームワークは必須ではありません。しかし、プロセスがよりシンプルでスムーズになるので、よいアイディアです。そうでなければ、あなたの手は絵の具だらけになってしまいます。
ここでは、フレームワークを使うことでどのように生活が楽になるかを紹介する:
開発のスピードアップ - 既成のコンポーネントを再利用することで、最大3日分の開発時間を取り戻すことができる。この時間は、MVPではない機能に活用できる。
より少ない問題 - 正確で実績のあるコーディングでフレームワークを使用することで、エラーの数を減らす。
より安全 - フレームワークのコンポーネントは、定期的なセキュリティアップデートの対象となる。
効率的なメンテナンス - フレームワークを採用することで、従うべき基本ルールが構造化される。新しい開発者が参加し、すでにキックオフされたプロジェクトで何から始めればいいのかすぐにわかる。
symfony は最高のフレームワークか?
最高だと断言するつもりはありません。しかし、もっとも信頼性が高く、成熟したPHPフレームワークの1つとして確かな評判を得ています。私たちは symfony がすべてにおいてベストだと言っているわけではありません。私たちは最初にビジネスとプロジェクトの目的を理解するために、顧客とそのチームと協力することを固く信じています。そうすることで、私たちが知っているツールを使って、そこから最良のソリューションを作ることができます。
現実的には、どのようなフレームワークであっても、それを使用する開発者次第で優れたものになります。つまり、エキスパートの開発者がいれば、そのソリューションは信頼できるということです。
symfony は機能が豊富で柔軟性が高いです。私たちが symfony を選ぶ理由はここにあります:
コンポーネント
コンポーネントはルーチンワークを減らす汎用的な機能で、開発者はより具体的なビジネス機能に集中できます。結果として、30個の symfony コンポーネントが開発プロセスの触媒となります。コンポーネントを独立して使うことができ、アーキテクチャに問題を起こすことなくカスタムモジュールを追加できます。symfony のいくつかのコンポーネントはほかのフレームワークもしくは素の PHP ソリューションでスタンドアロンで使われます。
バンドル
基本的に、バンドルはプラグインのようなものです。これらはファイル (JavaScript、画像、スタイルシートと PHP ファイル) でいっぱいの小包です。バンドルは非連結です。様々なアプリケーションで再利用するために再構成することができ、全体的な開発コストを削減します。
コンポーネントもバンドルもコンポーザブルなので、開発者は機能をボルトでつなぎ合わせることができます。必要なものだけで構成されたアプリケーションを持つことの利点は、途中で何かを壊すことなく変更を加えることが容易になることだ。つまり、ユーザーシナリオや特定の要件に合わせてソリューションを調整できるため、柔軟なアプリケーションを持つことができます。
商用サポート
symfony は商業的にサポートされている数少ないフレームワークの1つです。認定資格を取得し、カンファレンスに参加し、公式チュートリアルを受けることができます。symfony の意図はとても真剣で、信頼性がにじみ出ています。結果として、私たちが symfony を使う理由は難しいことではありません。
信頼性
このフレームワークは、ほかのフレームワークが人気を落とすのを見たとき、それ自身を証明してきました。symfony の長寿は Drupal と Laravel を含むほかのシステムとフレームワークが symfony を採用し、その上に構築するという事実によって保証されます。
テストのしやすさ
symfony は2,000人以上の貢献者を誇ります。これは印象的な数の多様で知識豊富な人々で、symfony をベースにすることを選択した場合、あなたの次のプロジェクトを動かすコードに取り組んでいます。書かれたコードのすべての新しい行はアプリケーションで使うために安定していることを保証するためにテストされるべきです。バンドルと必要なコンポーネントだけを再利用すること (すべては受け入れられるプラクティスと確立されたデザインパターンに基づいて構築される) は symfony のなかでよりよいメンテナンス性とテストのために組み合わされます。
長期的なサポート
symfony を使うもう1つの理由は定期的なアップデートがある安定したよくテストされたフレームワークであることです。最新のバージョンは長期にわたってサポートされ、新しいリリースとの互換性が保たれます: いくつかのバージョンでは最大3年間です。
協力的なコミュニティ精神
私たちがDrupalについて大好きなのは、オープンソーステクノロジーに付随するコミュニティです。同様に、このシーンは symfony の世界にも存在します。フレームワークを存続させるためのもっとも影響力のある要素の1つはそれを推進するコミュニティです。symfony は2,000人以上の貢献者を誇ります。これは印象的な数の多様で知識豊富な人々で、symfony をベースにすることを選択した場合、あなたの次のプロジェクトを動かすコードに取り組んでいます。
しかし、なぜそれが重要なのか疑問に思うかもしれません。コア開発者と同様に PHP の専門家もフレームワークの最適化に取り組みます。共同の専門知識のおかげでコードは改善されます。新しいコンポーネントが作られ、問題が解決され、人々はメンターとなって学び、すべての人を前進させます。
優れたドキュメント
多くのテクノロジーは古いもしくは不完全なドキュメントを保有する罪を犯しています。代替の PHP フレームワークと比較して、symfony のドキュメントは最高レベルです。
symfony の技術ドキュメントは明確な構造でよく書かれています。これは例を持ち、すべての新しいバージョンで更新されます。開発プロセス全体でさえ、すべてのコンポーネントの詳細な説明を見つけることができます。
symfony と Drupal
symfony は Drupal 開発者に多くの利益をもたらします:
問題を解決するために使われる時間、もしくはすでにほかのユーザーによって書かれテストされたコードを書いて維持する時間を節約できます。
新しいプロジェクトを始めるたびに車輪を再発明する必要はありません。symfony は多くのプロジェクトで繰り返される多くの一般的なタスクのためのツールへのアクセスを提供します。
ある程度は、私たちDrupalistが他の場所から支持され、テストされ、メンテナンスされたコードを使うことを奨励しています。つまり、私たちはDrupalバブルの外に出て、プロジェクトに付加価値を与える新しいことを学ぶのです。そのため、symfonyのソリューションを支持して、あまり理想的でないDrupalのソリューションから離れることができるかもしれません。
これはコードの分離を促進します。
また、ベストプラクティスの標準化を招きます。
おわりに
フレームワークとは何か、そしてなぜ私たちが Drupal のベースフレームワークとして symfony を使うのかについて、少しは明らかになったかと思います。
この記事に関するご質問やご意見などございましたらお問い合わせフォームからお気軽にご連絡ください。