質問: extjs4ファイルを関連バンドルに分割する方法 extjs4フロントエンドを持つsymfony 2プロジェクトがあります。私は今extjsアプリケーション全体を含むextjsバンドルから始めました。問題は、プロジェクトが成長するにつれて管理が難しいことです。 私は、最高の解決策は、すべてのextjsファイルを関連バンドルに再配置することだと思います。 (例:すべてのフォーム、パネル、グリッドなどのUserBundleに)、中央のExtjsバンドルを使用してそれらをロードします。 この方法でプロジェクトを編成するベストプラクティスは何ですか? 別のバンドルからjsファイルをインクルードする方法は? または、私はすべてのバンドルにextjsアプリケーションを作成する必要があります(私はそれが賢明だろうとは確信していません)?
回答: 私はこれがベストプラクティスであるかどうかはわかりませんが、ExtJs 4.0.7で動作することが分かります。 たとえば、私は次のフォルダ構造を持っています: ``` proj index.htm proj app.js app view SimpleIFrame.js ``` したがって、app.jsには次のコードがあります: ``` Ext.Loader.setConfig( { enabled: true }); Ext.Loader.setPath('proj.view', './proj/app/view'); Ext.Loader.require([ 'proj.view.SimpleIFrame' ]) ``` SimpleIFrameには次のコードがあります: ``` Ext.define('proj.view.SimpleIFrame', { extend: 'Ext.Panel', alias: 'widget.simpleiframe', ... }); ``` それでは、後でapp.jsで私は以下を行うことができます: ``` var panel = Ext.create('adminClaiming.view.SimpleIFrame', { title: 'Hello', ... }); ``` これにより、app.js全体を別々のファイルに分けることができます。私がこれを理解するまで、私は恐怖を覚えていた: ``` Uncaught TypeError: object is not a function ``` ちょうど私がExt.Loader.setPathを呼び出すことを忘れてしまったことを意味していました。 今すぐ次のビットで私を引用してはいけませんが、 [Ext.require](http://docs.sencha.com/ext-js/4-0/#!/api/Ext-method -require ) を実行すると、SimpleIFrame.jsがグローバル名前空間に読み込まれます。これはあなたが望むものではありませんが、まだ読み込まれていて動作します。 希望が役立ちます。そして、あなたは私が間違っている可能性が高いことを心に留めてください;)、私の場合はちょうど幸運になりました。何ができますか、私はまだn00bです。