Symfony 2でプログラムを作成するすべての人は、サードパーティのバンドルファイルをオーバーライドする必要がある状況に直面しています。 小枝テンプレート、コントローラー、または翻訳ファイルのいずれであっても。
カスタマイズするバンドルに少なくとも何らかの種類の複雑なファイル添付システムがある場合、それらを再定義することはあまりおもしろいタスクではありません。
例えば?
Sylius eコマースプロジェクトは、たとえば、製品表示テンプレート/vendor/sylius/sylius/src/Sylius/Bundle/WebBundle/Resources/views/Frontend/Product/show.html.twigをオーバーライドするために、全体を作成する必要があることを示すことができます。フォルダー階層アプリ/リソース/ SyliusWebBundle / views / Frontend / Product 、そこにshow.html.twigファイルを配置するため。
実際、この操作を自動化するために、Sublime Text 3のプラグインが生まれました。これをSymfony2開発者と共有したいと思います。
特徴
プラグインは、 Ctrl + Shift + Oを押した後、 vendorsフォルダー内のバンドルからsrcフォルダーから選択したバンドルに現在のアクティブファイルをコピーできます。
現在、テンプレート、翻訳、PHPファイル、Resources / publicフォルダーからのファイルのコピーがサポートされています。 テンプレートと翻訳は、バンドルとアプリディレクトリの適切な場所にコピーできます。
制限事項
-現時点では、プラグインはPSR-0標準に従って設計され、 ベンダーフォルダーにあるライブラリのファイルでのみ機能します。
-UbuntuのSublime Text 3でのみテスト。
-
計画
-PSR-4標準に従ってフォーマットされたバンドルのサポート。
-フォルダーの再帰的な再定義。
-
-そしてもう一つ 。
ハブで公開したのはなぜですか?
痛みを伴う問題があります(私だけでなく?)そして、その解決策を共有したいと思います。
ご清聴ありがとうございました。
フィードバック、アドバイス、プールリクエストなど、あらゆる対応に喜んで対応いたします。
参照資料
- パッケージコントロールのプラグイン 。
-github.comのプラグインコード。
-TODO.md。
UPD:
この記事がサンドボックスに公開されて以来、プラグインはpackagecontrol.ioで採用され、継承されたphpファイルに新しい名前空間を記述し、古いクラスから継承する方法を学びました。