先輩から symfony2 の使用経験を教えていただけますか? symfony2 を学んだばかりで、ショートカットをしたいのですが、2 つの質問があります。 1. symfony2 を学習する際に学ばなければならないこともあれば、あまり役に立たないこともありますので、先輩方の使用経験を聞きたいです。 2. symfony2 をインストールした後、通常どのバンドルをインストールして使用しますか? ありがとうございます
光阴似箭催人老,日月如移越少年。
したがって、必要なものは何でも使用することをお勧めします。
さらに、Symfony 2 は以下の基準を満たす個人またはチームにのみ推奨されます:
1. symfony2 ほどのフレームワークにショートカットがあるのはなぜでしょうか?疎結合で拡張しやすいという位置付けですが、これは簡単なことではありません。 sf2 は、バンドル配布を実現するために構成システム (さまざまなセマンティックな YML 構成を配列に変換できる) とサービス コンテナーの概念に依存しているため、その柔軟で強力な拡張アーキテクチャは思ったほど単純ではなく、使用するには障壁があります。さまざまな依存関係に対する特別なインジェクションを実装するには、コンパイラ パスを使用する必要があります。これが、他の PHP フレームワークが SF2 を超えることが難しい主な理由です。
symfony2 では、理論と実践が同等に重要です。一般的に、1 年以内に始めるのは難しく、始めるのに 2 ~ 3 年かかります。そして英語は必須であり、登山も必須です。
現在の symfony2 は、パフォーマンスが優れているため、zend Framework3 を再パッケージして再起動する必要がありました。したがって、最新の PHP 開発をしっかりと理解したい場合は、sf2 コンポーネントのカーネル/httpkernel が最下層、つまり http、リクエスト、およびレスポンスの観点からどのように機能するかを理解する必要があります。次に、他のコンポーネントと機能が続きます。その中でも「event」コンポーネントは非常に重要であり、event_dispatcherはsf2の魂でもあります。すべての公式 2.6 バージョンの PDF をダウンロードしてください。それぞれ 400 ページあり、約 30 のコンポーネントが含まれており、そのどれも無視することはできません。さらに、教義が 400 ページ、小枝が 160 ページあります。 1 ページの印刷所を見つけてすべて印刷し、いつでも参照できるように製本するのが最善です。
ただし、バージョン 2.7 は過去と次の間のリンクであり、3.0 に直接接続されているため、大きな変更があります。それでも、完全にマスターするには 2.6 が必要です。 2.7/2.8 は下位互換性があり、長期間維持されますが、それ以降のバージョンとの互換性はありません。
symfony2 を使用して開発できるようになれば、あなたのプロジェクトは自然に最高のものになります。少なくとも、他の Web 開発言語フレームワークを羨むことはなくなりますし、羨む必要もありません。 Symfony2 は非常に迅速に生成し、ページ自体をカスタマイズしたり拡張したりできます。フォームリンクであっても、メンバーシップリンク (つまり、開発上避けられないセキュリティ検証/ロール認可) であっても、どちらも自動化することができます。これは非常にシンプルであり、あまり注意を払う必要はありません (もちろん原則です)。 sf2-form と sf2-security は、はい、変換や投票など、習得する必要がある多くの概念があります) である必要があります。 ORM を使用する多くのことが従来の Web 開発とは実際に異なる場合、たとえば、Django の Admin は、信じられないほど強力な symfony2 でより完璧なソリューションを提供します。
2. すべてをインストールする場合は、knpbundles.com の最初のページにある最初の 10 個の項目が使用されます。 symfony の哲学では単に車輪を発明することはできないため、他にもたくさんあります。たとえば、Guzzle、Geshi、Geocoder などのサードパーティ パッケージは、善意の人々によってバンドルにパッケージ化される必要はなく、任意のライブラリ (または Zend2 のお気に入りのライブラリでも) をそのまま Vender に放り込んで使用できます。 symfony2 によって提供される自動読み込み機能をすぐに使用してください。 Google マップ、fckeditor、markdown などの一般的なツールについては、すでにバンドルにパッケージ化されており、composer から直接ダウンロードできます。
コンポーザーと言えば、symfony2 の厳格な必要性がコンポーザーの誕生につながったことを誰もが理解するはずです。ただし、sf2 自体のインストールではコンポーザーは使用されなくなり、バンドルのみがコンポーザーを使用します。 Composer.phar のコアは symfony2 のコンソールコンポーネントです。
上記の点を補足するための一言: 私の理解によれば、SF2 は 2 つの方法でプレイできます。1 つは少数のエリートが大規模な Web サイトを作成する方法、もう 1 つは大規模なチームが素晴らしい Web サイトを作成する方法です。ウェブ製品。 sf2 が強い理由は、Web サイト以外の「ハイエンドのインターネット製品」を開発できるためです (これは非常に幅広く、sitepoint に行って symfony2 を検索したり、公式 Web サイトに行って成功事例を調べることができます。laravel は単なるものです)そのうちの 1 つ)、SF2 では Web サイトの作成にそれほど多くの人員は必要ありません。その根底にあるカプセル化とフレームワークの利便性、そして前例のない拡張機能とカスタマイズ機能を備えたセカンド パーティ (symfony プロジェクトの多くの魂が独自の機能を持っています)。 FOS、KNP、stof、JMS、sonata およびその他の専門家などのバンドル)およびサードパーティ バンドル(世界クラスの PHP プログラマー)により、プロジェクトの品質を保証できます。
難しいのは、フレームワークを理解して運用する能力があるかどうかです。 sf2 (主に DIC、EVENT、FORM、SECURITY) を知っていれば、これら 4 つに習熟している必要があり、開発プロセス中にアノテーションを使用してコードの総量を減らし、コントローラーなどの PHP ファイルからの切り替えの数を減らすことができます。 thinkphp3 を振り返ると、前世代と比較して tp3 の進歩に感心するでしょう。また、think の基礎となるコードを見ると、「実にシンプルだ」と感じるでしょう。 sf2 を開始できない場合でも、ハイエンドのものを追求するのではなくプロジェクトを完了したいため、tp3 を使用できます。
したがって、必要なものは何でも使用することをお勧めします。
さらに、Symfony 2 は以下の基準を満たす個人またはチームにのみ推奨されます:
1. symfony2 ほどのフレームワークにショートカットがあるのはなぜでしょうか?疎結合で拡張しやすいという位置付けですが、これは簡単なことではありません。 sf2 は、バンドル配布を実現するために構成システム (さまざまなセマンティックな YML 構成を配列に変換できる) とサービス コンテナーの概念に依存しているため、その柔軟で強力な拡張アーキテクチャは思ったほど単純ではなく、使用するには障壁があります。さまざまな依存関係に対する特別なインジェクションを実装するには、コンパイラ パスを使用する必要があります。これが、他の PHP フレームワークが SF2 を超えることが難しい主な理由です。
symfony2 では、理論と実践が同等に重要です。一般的に、1 年以内に始めるのは難しく、始めるのに 2 ~ 3 年かかります。そして英語は必須であり、登山も必須です。
現在の symfony2 は、パフォーマンスが優れているため、zend Framework3 を再パッケージして再起動する必要がありました。したがって、最新の PHP 開発をしっかりと理解したい場合は、sf2 コンポーネントのカーネル/httpkernel が最下層、つまり http、リクエスト、およびレスポンスの観点からどのように機能するかを理解する必要があります。次に、他のコンポーネントと機能が続きます。その中でも「event」コンポーネントは非常に重要であり、event_dispatcherはsf2の魂でもあります。すべての公式 2.6 バージョンの PDF をダウンロードしてください。それぞれ 400 ページあり、約 30 のコンポーネントが含まれており、そのどれも無視することはできません。さらに、教義が 400 ページ、小枝が 160 ページあります。 1 ページの印刷所を見つけてすべて印刷し、いつでも参照できるように製本するのが最善です。
ただし、バージョン 2.7 は過去と次の間のリンクであり、3.0 に直接接続されているため、大きな変更があります。それでも、完全にマスターするには 2.6 が必要です。 2.7/2.8 は下位互換性があり、長期間維持されますが、それ以降のバージョンとの互換性はありません。
symfony2 を使用して開発できるようになれば、あなたのプロジェクトは自然に最高のものになります。少なくとも、他の Web 開発言語フレームワークを羨むことはなくなりますし、羨む必要もありません。 Symfony2 は非常に迅速に生成し、ページ自体をカスタマイズしたり拡張したりできます。フォームリンクであっても、メンバーシップリンク (つまり、開発上避けられないセキュリティ検証/ロール認可) であっても、どちらも自動化することができます。これは非常にシンプルであり、あまり注意を払う必要はありません (もちろん原則です)。 sf2-form と sf2-security は、はい、変換や投票など、習得する必要がある多くの概念があります) である必要があります。 ORM を使用する多くのことが従来の Web 開発とは実際に異なる場合、たとえば、Django の Admin は、信じられないほど強力な symfony2 でより完璧なソリューションを提供します。
2. すべてをインストールする場合は、knpbundles.com の最初のページにある最初の 10 個の項目が使用されます。 symfony の哲学では単に車輪を発明することはできないため、他にもたくさんあります。たとえば、Guzzle、Geshi、Geocoder などのサードパーティ パッケージは、善意の人々によってバンドルにパッケージ化される必要はなく、任意のライブラリ (または Zend2 のお気に入りのライブラリでも) をそのまま Vender に放り込んで使用できます。 symfony2 によって提供される自動読み込み機能をすぐに使用してください。 Google マップ、fckeditor、markdown などの一般的なツールについては、すでにバンドルにパッケージ化されており、composer から直接ダウンロードできます。
コンポーザーと言えば、symfony2 の厳格な必要性がコンポーザーの誕生につながったことを誰もが理解するはずです。ただし、sf2 自体のインストールではコンポーザーは使用されなくなり、バンドルのみがコンポーザーを使用します。 Composer.phar のコアは symfony2 のコンソールコンポーネントです。
上記の点を補足するための一言: 私の理解によれば、SF2 は 2 つの方法でプレイできます。1 つは少数のエリートが大規模な Web サイトを作成する方法、もう 1 つは大規模なチームが素晴らしい Web サイトを作成する方法です。ウェブ製品。 sf2 が強い理由は、Web サイト以外の「ハイエンドのインターネット製品」を開発できるためです (これは非常に幅広く、sitepoint に行って symfony2 を検索したり、公式 Web サイトに行って成功事例を調べることができます。laravel は単なるものです)そのうちの 1 つ)、SF2 では Web サイトの作成にそれほど多くの人員は必要ありません。その根底にあるカプセル化とフレームワークの利便性、そして前例のない拡張機能とカスタマイズ機能を備えたセカンド パーティ (symfony プロジェクトの多くの魂が独自の機能を持っています)。 FOS、KNP、stof、JMS、sonata およびその他の専門家などのバンドル)およびサードパーティ バンドル(世界クラスの PHP プログラマー)により、プロジェクトの品質を保証できます。
難しいのは、フレームワークを理解して運用する能力があるかどうかです。 sf2 (主に DIC、EVENT、FORM、SECURITY) を知っていれば、これら 4 つに習熟している必要があり、開発プロセス中にアノテーションを使用してコードの総量を減らし、コントローラーなどの PHP ファイルからの切り替えの数を減らすことができます。 thinkphp3 を振り返ると、前世代と比較して tp3 の進歩に感心するでしょう。また、think の基礎となるコードを見ると、「実にシンプルだ」と感じるでしょう。 sf2 を開始できない場合でも、ハイエンドのものを追求するのではなくプロジェクトを完了したいため、tp3 を使用できます。