某草草2017-05-16 16:48:24
Symfony 2 と Symfony 1 は 2 つの完全に異なるフレームワークであり、それらを理解する際には別々に扱う必要があります。 Symfony 2 は、Symfony コミュニティ開発の現在の焦点です。フレームワークを評価するには、その開発目標と見通しだけでなく、現在の状況も検討する必要があります。 Symfony 2 は、柔軟性 (拡張性)、機能の完全性、パフォーマンスを重視しています。
Symfony 2 は学習コストが高く、実際の開発経験がない、またはソフトウェア エンジニアリングの概念に慣れていない学習者にとって、学習プロセスは苦痛であると言えます。しかし、ある程度の経験がある開発者、または Ruby on Rails、Django、Java の重いフレームワークをすでに知っている開発者にとって、学習コストはそれほど高くありません。軽量のフレームワークが本当に必要な場合は、Symfony 2 の簡略版である Silex が適しています。ほとんどの PHP フレームワークよりも単純なアプリケーションを開発できます。
開発効率は個人の習慣によるものです。張飛は槍でプレイし、関羽は剣でプレイします。重要なのは、どのフレームワークを選択するかということです。一方、Symfony 2 の開発コミュニティは非常に活発で、GitHub の PHP カテゴリで 1 位にランクされています。これは、必要な機能が他の開発者によって実装されている可能性があることを意味します。
パフォーマンスの問題に関しては、Web アプリケーションのデプロイメントと切り離して議論すべきではありません。小規模な仮想ホストを使用すると、Symfony 2 の動作効率は確実に低くなります。ただし、技術的なアーキテクチャを重視する商用アプリケーションを開発する場合、Symfony 2 は操作のあらゆる側面でパフォーマンスの最適化をサポートし、Symfony 2 は DailyMotion や Youporn などの非常に大規模な Web サイトをサポートします。
Symfony 2 は非常に拡張性が高く、フレームワークのコアコンポーネントを置き換えることができ、各コンポーネントを独立して使用することもできます。 Drupal、phpBB、EzPublish などのよく知られた PHP オープンソース プロジェクトはすべて、次のバージョンで Symfony 2 のコア コンポーネントを使用するか、Symfony 2 に基づいて完全にリファクタリングされています。
PHP中文网2017-05-16 16:48:24
はい、いいえ。SF は、基本的な mvc モードを提供するだけでなく、Web 開発でよく使用される開発、テスト、セキュリティ、テンプレート開発、保守性などをカバーする多くのツールも提供します。あらゆる面。ただし、機能に関しては SF だけではありません。たとえば、zendframework には、Zend_Service_Amazon、Zend_Pdf など、SF にはないコンポーネントも多数提供されています。
現時点では、Symfony2 は柔軟性とコンポーネントに重点を置いており、私はこの方向性について非常に楽観的であり、同意します。 Symfony/Components を使用して自分でフレームワークを設計および作成することもできます。 @SS のクラスメートもすでにこれについて言及しています。多くのオープンソース プロジェクトでも sf コンポーネントが使用され始めています。興味があれば、「Symfony コンポーネントを使用して独自のフレームワークを作成する」シリーズを読んでください。 SF プロジェクトの創設者、ファビアン・ポテンシエ著: http://fabien.potencier.org/article/5...、英語を読むのが難しい場合は、私が翻訳した中国語版もご覧ください: http:// chrisyue.com/posts/272.%E4%BD ..彼の書いた記事は非常に読みやすく、Symfony コンポーネントの本質を段階的に理解することができるので、読む価値があります。
Symfony2 は、保守性と柔軟性を実現するために多くのオブジェクト指向の知識とスキルを使用します。これにより、Symfony の設計がより複雑になり、(コンポーネント化やオブジェクト指向にさえ慣れていない場合)、学習コストが高くなります。リクエストには多くのコードを実行する必要があるため、フレームワークの直接実行は比較的非効率的です。多くのベンチマーク結果では、Symfony2 のスコアは優れたものではありませんが、Symfony2 には時間をかける価値のある最適化メソッドが多数あります。理解した。たとえば、Symfony2 のルーティング コンポーネントはダンプ メソッドを使用して Apache 書き換えルールを生成でき、URL 解析に優れた Apache がルーティング作業を実行できるようになり、ルーティング クエリ時間が大幅に短縮されます。さらに、Symfony2 のドキュメントには、これが Http フレームワークであると記載されており、場合によっては、http および Varnish などのリバース プロキシ サーバーなどの http プロトコルをサポートする最適化ソフトウェアの知識を使用できます。 Dropped はアプリケーション全体を直接バイパスすることもできるため、http に関する知識も非常に必要です。
要するに、SF は優れたフレームワークですが、それを十分に習得したい場合は、学習に多くの時間を費やすことを覚悟する必要があります。学習コストも非常に重要な要素ですので、自分で検討する必要があります。
さらに、サービスコンテナなど、SFの一部のコンポーネントをPHPに拡張するというアイデアもあります。興味のある学生は私に連絡してください、一緒に勉強します。
怪我咯2017-05-16 16:48:24
Symfony の機能は比較的充実していますが、機能性、開発効率、パフォーマンス指標を考慮すると、突出したものではありません。
Symfony は他のフレームワークよりもオブジェクト指向に優れている、または Java に近いと思います。
フレームワークを選択する場合は、ニーズに基づいて軽量のフレームワークを選択することをお勧めします。
仅有的幸福2017-05-16 16:48:24
私は symfony2 のみを使用しており、yii (http://www.yiiframework.com/)、ci (http://codeigniter.com/) などの他のものも簡単に調べました。
Symfony2 は、基本的に組み込みの ORM (toctrine)、ビュー テンプレート (twig)、コントローラー メカニズムなどを備えています。
拡張もかなり便利です。
私の全体的な感想:
1. 完全に機能します
2. 入手が簡単
3. 美しいシステム
4. ドキュメントは非常に完成しています
唯一の欠点は、コミュニティがまだそれほど大きくないことかもしれません。
yii と ci を比較した場合、私であれば、やはり symfony を選択します。
zyngaはsymfonyを使っているようですか?