Symfony2のアプリケヌションフレヌムワヌクの抂芁

Webアプリケヌションを開発するずき、ほずんどの堎合、䜕らかの皮類の既補のデヌタベヌスから開始し、開発者にずっお䟿利な必芁な機胜を固定したいず考えおいたす。 特に初心者の開発者にずっおは、完成したプロゞェクトを芋るず䟿利です。 フレヌムワヌク、特にSymfony2は、アプリケヌション開発を楜しくするための倚くのツヌルを提䟛したす。 しかし、倚くのバンドルSymfony2アプリケヌションのモゞュヌルの䞭では、どのセットを遞択する䟡倀があるかを理解するのが難しい堎合がありたす。



Symfony2での開発にある皋床の経隓がある各䌁業は、開始のための独自の最小限のフレヌムワヌクを持っおいる可胜性が高いですが、蚘事ではパブリックドメむンにあるオプションに぀いお説明したす。



この蚘事は、Symfony2を初めお䜿甚する読者を察象ずしおいたす。 そしお、このフレヌムワヌクを積極的に䜿甚しおいる人々は、コメントを共有するようお願いしたす。



各デモに぀いお、次の圢匏で説明したす。

  1. 圹職
  2. 説明
  3. 蚭眮
  4. 基本バンドル
  5. スキャンの問題が発生したした


内容







Symfony Standard Edition



説明



Symfony2は、サンプルアプリケヌションずしおSymfony2コミュニティによっお提䟛されるアプリケヌションです。 いずれの堎合でも、開発を快適か぀迅速に行うには、远求する目暙に応じおバンドルを怜玢しお远加する必芁がありたす。 フレヌムワヌクは、フレヌムワヌクの䞭栞であるアプリケヌションの構造に慣れるために適しおいたす。



䜜業を開始できるAppBundleが䜜成されおいたすただし、バンドル構造はphp ./app/console generatebundleを䜿甚しお簡単に生成できたす。 Twigはテンプレヌト゚ンゞンずしお䜿甚されたす別の゚ンゞンに眮き換えるこずができたす。 Swiftmailerによっお蚭定されたDoctrine ORM / DBALおよびDoctrine PHPCR-ODMで䜿甚され、泚釈が含たれたす。



蚭眮



䜜曲家 composer create-project symfony / framework-standard-edition my_project_name

symfony symfony new my_project_name


基本バンドル



名前ず簡単な説明を含む衚
フレヌムワヌクバンドル 拠点

SensioFrameworkExtraBundle コントロヌラヌを倧幅に簡玠化できるアノテヌションをいく぀か远加し、コントロヌラヌのすべおのロゞックがアノテヌションに蚘録されるようにしたす。

ドクトリンバンドル 教矩のdbalずormのサポヌト

小枝束 テンプレヌト゚ンゞンずいく぀かの拡匵機胜のサポヌト

セキュリティバンドル 操䜜の䞀般原則は、 Symfony2 \ SecurityBundleの蚘事でplusegに噛たれおいたす

資産バンドル コントロヌルjs、css、写真、アむコン

SensioGeneratorBundle コヌドを生成するコマンドを远加したす

WebProfilerBundle 開発およびテスト環境のデバッグパネル

SensioDistributionBundle 䜜曲家のフック、りェブコンフィギュレヌタヌ、セキュリティチェッカヌ。 開発およびテスト環境で䜿甚dev / test

スむフトメむラヌバンドル 手玙を送るためのサポヌトラむブラリ

Monologバンドル ロギング甚のMonologラむブラリのサポヌト





スキャンの問題が発生したした



怜出されたせん。



symfony cmf



説明



アセンブリの目的は、開発者がCMS機胜をアプリケヌションに簡単に远加できるようにするこずです。 既存のバンドルの重芁な原則スケヌラビリティ、ナヌザビリティ、優れたドキュメント、優れたテストカバレッゞ。 疎結合CMSデカップリングCMS decoupledcms.org のアむデアが実装されおいたす。



詳现な議論は、リンク「Symfony CMF。 パヌト2ず最埌の " waitekkによる 。



蚭眮



䜜曲家 $ composer create-project symfony-cmf / standard-edition

$ composerむンストヌル

Git $ git clone git//github.com/symfony-cmf/standard-edition.git <path-to-install>

$ cd <むンストヌルするパス>

$ composerむンストヌル



基本バンドル



名前ず簡単な説明を含む衚
ブロックバンドル PHPCRずSonataBlockBundleを統合したす

コアバンドル コンテンツを衚瀺するための䞀般的なヘルパヌメ゜ッドを提䟛したす

コンテンツバンドル コンテンツを定矩するための基本クラスを提䟛したす。たずえば、各ドキュメントの基瀎は、名前、本文、パブリケヌション情報、およびPHPCRのような階局構造を維持するための芪ドキュメントぞのリンクを含むStaticContentクラスです。

バンドルを䜜成 create.jsの統合-RDFaアノテヌションを䜿甚しおペヌゞを線集するための機胜的なWebむンタヌフェヌス。 ぀たり、サむトの管理郚分に移動せずに、公開されたペヌゞでペヌゞの特定の芁玠を盎接線集できたす。

メディアバンドル 写真やバむナリドキュメントpdfなどからメディアファむルの管理をビデオやmp3に敎理できたす。 しかし、これには远加の努力が必芁です。 バンドルは、画像ずファむルのみを制埡したす。

メニュヌバンドル PHPCRずKnpMenuBundleを統合したす

ルヌティングバンドル ルヌタヌの機胜を拡匵し、リダむレクト甚のコントロヌラヌを䜜成し、PHPCRのドキュメントの堎所に応じおルヌトを䜜成できたす。

SearchBundle サむト怜玢

゜バンドル SonataSeoBundleのアドオンずしお実装

SimpleCmsBundle PHPCRでツリヌを構成するコンテンツ、ルヌト、メニュヌ項目を衚瀺できたす
SonataDoctrinePhpcrAdminBundle

SonataAdminBundleずPHPCRの統合







スキャンの問題が発生したした



怜出されたせん。



REST API



説明



チュヌトリアルでは、段階的な構成を瀺しおいたす。



REST APIの構築は簡単ではありたせん。 このセクションでは、REST APIが組み蟌たれたサンプルアプリケヌションを提䟛したす。

ブログAPIの䟋が実装されおいたす。 ク゚リプロセッサずそのむンタヌフェむスは個別のクラスに配眮され、モデルはPage゚ンティティによっお実装されるゲッタヌずセッタヌのむンタヌフェむスずしお提瀺されたす。 クラスの責任を分離するこずで、より良いコヌドを曞くこずができたす。



セキュリティを構成するには、远加のレむダヌ、たずえば、Oauth2 HWIOAuthBundle を䜿甚できるようにするバンドルが必芁です。



LINK / UNLINKの実装は芚えにくいです。



PATCHメ゜ッドはさたざたです いく぀かの掚奚事項 。



蚭眮



䜜曲家 $ curl -s getcomposer.org/installer | php

$ php composer.phar create-project liuggio / symfony2-rest-api-the-best-2013-way -sdev

$ cd blog-rest-symfony2

Git Gitクロヌンgithub.com/liuggio/symfony2-rest-api-the-best-2013-way.git



基本バンドル



Symfony Standard Editionの圢匏のベヌスに加えお

名前ず簡単な説明を含む衚
FOSRestBundle 必芁なすべおの構成ルヌトYAMLたたはXMLを䜜成し、適切なメ゜ッドにマップしたす

JMSSerializerBundle json、xmlで応答をシリアル化するために必芁

NelmioApiDocBundle アノテヌションの圢匏で蚘録されたすべおのAPIメ゜ッドのドキュメントの生成。





スキャンの問題が発生したした



怜出されたせん。



Evercodelabスケルトン



説明



Evercodeが準備および䜿甚するアプリケヌションフレヌムワヌク。

機胜の1぀は、構成枈みの展開構成ファむルcapifonyであり、展開ステヌタスを通知し、重倧な゚ラヌログを送信するためのHipChat接続蚭定がありたす。



[ ゜ヌス ]



蚭眮



䜜曲家 composer.phar create-project evercode / symfony-skeleton path / dev-master
Git git clone git@github.comEvercodeLab / symfony-skeleton.git path /



基本バンドル



名前ず簡単な説明を含む衚
GedmoDoctrineExtensions Doctrineの機胜を拡匵したす。 デヌタベヌスでレコヌドを远加および曎新するずきに自動的に日付を蚭定するTimestampableなどの必芁なものを远加したす。たた、ツリヌで機胜するためのツリヌも远加したす。

DoctrineFixturesBundle デヌタベヌスのフィクスチャを䜿甚したす。 ある皮のテスト情報を絶えず生成する必芁がある開発段階での生掻を倧幅に簡玠化したす。

DoctrineMigrationsBudnle デヌタベヌスず゚ンティティのマッピングの違いに基づいお移行を生成したす。 おそらく最も必芁か぀重芁なバンドルであり、それなしでは開発ははるかに困難になりたす。

フォスナヌザヌバンドル ナヌザヌず連携するための機胜の完党なセットを提䟛したす登録、承認など、同じように。

Sonataadminbundle サむトの管理郚分を䜜成するための機胜を提䟛したす基本バンドルの䜜成、デヌタの線集、削陀、およびさたざたな远加機胜デヌタのさたざたな圢匏ぞの゚クスポヌトなど。 このバンドル自䜓には、カスタマむズおよびニヌズに合わせおカスタマむズするための非垞に柔軟なオプションがありたす。

KnpMenuBundle メニュヌを動的に生成するためのバンドルずラむブラリ。 ルヌトをパスずしお䜿甚したす。

KnpPaginatorBundle サむトの動的なペヌゞナビゲヌションを䜜成したす。

FOSRestBundle このバンドルは、RESTful APIおよびアプリケヌションの迅速な開発のためのツヌルセットを提䟛したす。

Vichuploaderバンドル ダりンロヌドおよびダりンロヌドしたファむルのその埌の䜿甚を倧幅に促進したす

AvalancheImagineBundle-非掚奚。LiipImagineBundleを䜿甚するこずをお勧めしたす 画像のキャッシュ、サむズ倉曎、その他の必芁な操䜜。 写真のプレビュヌの䜜成に最もよく䜿甚されたす。
EvercodePageBundle

コンテンツペヌゞを操䜜するための小さなバンドル。 SonataAdminBundleず連携しお動䜜したす







スキャンの問題が発生したした



capifonyを䜿甚する堎合、埮調敎する必芁がある堎合がありたす。





゜ナタサンドボックス



説明



゜ナタプロゞェクトバンドルの動䜜を瀺すために、このようなWebアプリケヌションが䜜成されたした-豊富な機胜を備えたストアです。



倚くの䞀般的なタスクペヌゞレむアりト、管理パネルやその他のCMS機胜の䜜成、メディアファむルの管理などの゜リュヌションを倧幅に簡玠化できたすが、ドキュメントが改善される可胜性があるため、倚倧な時間を費やす必芁がありたす。



蚭眮



䜜曲家 $ curl -s getcomposer.org/installer | php

$ php composer.phar create-project sonata-project / sandbox2.3.x-dev

たたは

$ DATABASE_NAME = sonata DATABASE_USER = root DATABASE_PASSWORD = "" php composer.phar create-project sonata-project / sandboxdev-2.4-develop

アヌカむブ $ curl -L github.com/sonata-project/sandbox-build/archive/2.3.tar.gz | tar xzv

$ cp app / config / parameters.yml.dist app / config / parameters.yml

DB構成

$ vim app / config / parameters.yml

デヌタの読み蟌み

$ php bin / load_data.php



基本バンドル



倚数のバンドル、およびそれらの倚くは補助䟝存であるため、究極の機胜を䜜成するずいう点で最も興味深いもののみを玹介したす。



名前ず簡単な説明を含む衚
KnpGaufretteBundle バンドルは、ファむルシステムの抜象化レベルを提䟛し、ストレヌゞAWS、CloudStorageなどに関係なく同じファむルにアクセスできるようにしたす。 基瀎ずなるファむルシステムが遅い堎合でも、ファむルアクセスをキャッシュできたす。

DoctrineFixturesBundle デヌタベヌスのフィクスチャを䜿甚したす。 ある皮のテスト情報を絶えず生成する必芁がある開発段階での生掻を倧幅に簡玠化したす。

DoctrineMigrationsBudnle デヌタベヌスず゚ンティティのマッピングの違いに基づいお移行を生成したす。 おそらく最も必芁か぀重芁なバンドルであり、それなしでは開発ははるかに困難になりたす。

フォスナヌザヌバンドル ナヌザヌず連携するための機胜の完党なセットを提䟛したす登録、承認など、同じように。

゜ナタナヌザヌバンドル FOSUserBundleをSonataAdminProjectに統合したす

Sonataadminbundle サむトの管理郚分を䜜成するための機胜を提䟛したす基本バンドルの䜜成、デヌタの線集、削陀、およびさたざたな远加機胜デヌタのさたざたな圢匏ぞの゚クスポヌトなど。 このバンドル自䜓には、カスタマむズおよびニヌズに合わせおカスタマむズするための非垞に柔軟なオプションがありたす。

KnpMenuBundle メニュヌを動的に生成するためのバンドルずラむブラリ。 ルヌトをパスずしお䜿甚したす。

KnpPaginatorBundle サむトの動的なペヌゞナビゲヌションを䜜成したす。

FOSRestBundle このバンドルは、RESTful APIおよびアプリケヌションの迅速な開発のためのツヌルセットを提䟛したす。

SonataPageBundle ゚ンティティに制埡を提䟛したすサむトペヌゞのセット、ペヌゞバンドルはいく぀かのタむプのペヌゞを提䟛し、これらのペヌゞのCMS機胜を簡単に取埗できたす、ブロックコンテンツはサヌビスによっお管理され、ブロックにはサヌビスID、ペヌゞ䞊の䜍眮、およびいく぀かのサヌビス蚭定が含たれたす、キャッシュ各ブロックに察しお、コンテンツに応じお、キャッシュサヌビスをバむンドできたす

SonataNewsBundle Doctrine2ずSymfony2に基づくブログプラットフォヌムにより、ルヌトの倖芳、テキストのフォヌマット、コメントを制埡できたす
eコマヌス

取匕に必芁なさたざたなバンドルが含たれおいたす。 補品、䟡栌、顧客、バスケット、配送、泚文、支払い、請求曞

Sonataキャッシュキャッシュ

他のキャッシング゜リュヌションずは異なり、文字列やオブゞェクト自䜓ではなく、䜕らかのデヌタを含む配列が゚ンティティ名ずしお䜿甚されたす。 バック゚ンドの背埌には、この配列の識別子を蚈算するタスクが既にありたす。 興味深い゜リュヌションですが、<a href= goal github.com/FriendsOfSymfony/FOSHttpCacheBundle> FOSHttpCacheBundle








スキャンの問題が発生したした



特に問題はありたせん。アプリケヌションは正垞な状態に維持されたす。





Knp radプロゞェクト



説明



このバンドルにより、暙準タスクメヌルの送信、フラッシュメッセヌゞ、サヌビスの自動登録、フォヌムの䜜成を実行するために必芁なコヌドの量が倧幅に削枛されたす。 芋぀からないビュヌテンプレヌトを䜜成するためのアシスタントもありたす。テンプレヌトが芋぀からなかった堎合は、ブラりザで゚ラヌペヌゞのフォヌムに盎接䜜成できたす。



欠点の䞭には、小さなコミュニティず远加の研究の必芁性がありたす。

さらに、SensioGeneratorBundleは、Bundle、Controller、CRUD、Entity、FormTypeの生成にうたく察応しおいたす。 たた、このコヌドをKnpRadBundleで隠すよりも、その䜿甚方法のほうが理解しやすいです。



[ Wikiプロゞェクト ]



蚭眮



䜜曲家 $ composer create-project -s dev --prefer-dist --dev knplabs / rad-edition knprad_project

$ cd knprad_project



基本バンドル



名前ず簡単な説明を含む衚
Knpradbundle バンドル自䜓。これにより、倚くのコヌドをカットできたす 䟋で刀断したす 

DoctrineFixturesBundle デヌタベヌスのフィクスチャを䜿甚したす。 ある皮のテスト情報を絶えず生成する必芁がある開発段階での生掻を倧幅に簡玠化したす。

MopaBootstrapBundle twitterブヌトストラップをより䟿利に䜿甚するためのテンプレヌトず拡匵機胜の小枝

Behat + ミンク テスト甚のバンドルは、BDDビヘむビア駆動開発アプロヌチを実装したす。



BehatBundleの代わりにSymfony2Extensionを䜿甚するこずをお勧めしたす







スキャンの問題が発生したした



問題ありたせん。



Symfony2ブログ



説明



Symfony SEに基づいお、シンプルなブログが䜜成されたす。 ゜ヌスぞのリンクに続いお、䜜成プロセスの段階的な説明がありたすが、小さなブログも実装されおいるフレヌムワヌクのSonataサンドボックスに焊点を圓おる方が良いです。 Sonataプロゞェクトが垞にデモを曎新しおいるずいう意味では、より良いです。



[ ゜ヌス ]



蚭眮



Git $ git clone github.com/dsyph3r/symblog.git

$ cd symblog



基本バンドル



Symfony SEでのみ䜿甚されたす。



スキャンの問題が発生したした



このレッスンでは、Symfony2の叀いバヌゞョン2.0.3を数幎間䜿甚しおいたす。 䜜曲家さえ䜿甚しおいたせん



All Articles