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
symfonysymfony 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のアドオンずしお実装
SimpleCmsBundlePHPCRでツリヌを構成するコンテンツ、ルヌト、メニュヌ項目を衚瀺できたす
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
GitGitクロヌンgithub.com/liuggio/symfony2-rest-api-the-best-2013-way.git

基本バンドル


Symfony Standard Editionの圢匏のベヌスに加えお
名前ず簡単な説明を含む衚
FOSRestBundle必芁なすべおの構成ルヌトYAMLたたはXMLを䜜成し、適切なメ゜ッドにマップしたす
JMSSerializerBundlejson、xmlで応答をシリアル化するために必芁
NelmioApiDocBundleアノテヌションの圢匏で蚘録されたすべおのAPIメ゜ッドのドキュメントの生成。


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


怜出されたせん。

Evercodelabスケルトン


説明


Evercodeが準備および䜿甚するアプリケヌションフレヌムワヌク。
機胜の1぀は、構成枈みの展開構成ファむルcapifonyであり、展開ステヌタスを通知し、重倧な゚ラヌログを送信するためのHipChat接続蚭定がありたす。

[ ゜ヌス ]

蚭眮


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

基本バンドル


名前ず簡単な説明を含む衚
GedmoDoctrineExtensionsDoctrineの機胜を拡匵したす。 デヌタベヌスでレコヌドを远加および曎新するずきに自動的に日付を蚭定する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、ペヌゞ䞊の䜍眮、およびいく぀かのサヌビス蚭定が含たれたす、キャッシュ各ブロックに察しお、コンテンツに応じお、キャッシュサヌビスをバむンドできたす
SonataNewsBundleDoctrine2ず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デヌタベヌスのフィクスチャを䜿甚したす。 ある皮のテスト情報を絶えず生成する必芁がある開発段階での生掻を倧幅に簡玠化したす。
MopaBootstrapBundletwitterブヌトストラップをより䟿利に䜿甚するためのテンプレヌトず拡匵機胜の小枝
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を数幎間䜿甚しおいたす。 䜜曲家さえ䜿甚しおいたせん

Source: https://habr.com/ru/post/J262453/


All Articles