Sencha Ext JS を PHP アプリケーションに統合するための基本コンポーネント
このライブラリは、サーバーで生成されたページを使用して、開発コンテキストおよび運用コンテキストから Sencha Ext JS 6 (5 でも同様に動作するはずですが) アプリケーションを実行するときのさまざまな要件に関する単純な抽象化を提供します。開発ビルドと運用ビルドでは、アプリケーション ファイルの提供に異なるソース ツリーが使用されます。このプロセスは、いわゆるマニフェストと Javascript マイクロローダーに基づいています。このプロセスがサーバーで生成されたページとルーティングで確実にシームレスに機能するように、ライブラリはマニフェスト生成にフックし、必要な環境とコンテキストに基づいてマニフェストを動的に変更します。
現在、このライブラリは、Ext JS を Symfony ベースのアプリケーションに統合する Symfony バンドルである teqneers/ext-application-bundle の基盤としてのみ使用されています。私たちはライブラリをスタンドアロンコンポーネントとして、または Symfony 環境以外のコンテキストで使用することは試していないため、以下はバンドルなしで理論的にどのように動作するかだけを示しています。バンドル外でライブラリをより便利にするために、ご支援とご貢献をいただければ幸いです。
このライブラリは、composer を使用してインストールできます
composer require teqneers/ext-application
または、パッケージをcomposer.jsonファイルに直接追加します。
架空のアプリケーションの次のディレクトリ構造があるとします。
./
|-- src/ Application source code
|-- htdocs/ Public web-facing directory (document root)
| |-- index.php PHP front controller
| |-- app/ Root folder for Ext JS application production build
|-- my-app/ The Ext JS application source folder (sencha generate app -ext MyApp ./my-app)
アプリケーションを設定する必要があります(たとえば、index.phpから)
$ config = TQ ExtJS Application Configuration ApplicationConfiguration (
__DIR__ . ' /../my-app ' , // the absolute path to the Ext JS application workspace
' ../my-app ' , // the relative path from the public web-facing directory to the Ext JS application workspace
__DIR__ , // the absolute path to the public web-facing directory
' / ' // the relative path from the public web-facing directory to the root directory used for production build artifacts (usually /)
);
// add a default build
$ config -> addBuild (
' default ' , // the build name (just for referencing the build)
' / ' , // the application path relative to the Ext JS application workspace (usually / unless you have multiple applications and/or packages in a single workspace)
' app ' , // the application path relative to the root directory used for production build artifacts
' manifest.json ' , // the build manifest filename for development builds
' bootstrap.js ' , // the micro-loader filename for development builds
null , // the application cache manifest filename for development builds (usually NULL)
' bootstrap.json ' , // the build manifest filename for production builds
' bootstrap.js ' , // the micro-loader filename for production builds
' cache.appcache ' // the application cache manifest filename fro production builds
);
$ application = new TQ ExtJS Application Application (
$ config ,
new TQ ExtJS Application Manifest ManifestLoader (),
' dev ' // dev or prod depending on wether you want to run from development or drom production build
);
$ microLoader = $ application -> getMicroLoaderFile (); // returns a SplFileInfo for the configured micro-loader
$ hasAppCache = $ application -> hasAppCache ();
if ( $ hasAppCache ) {
$ appCache = $ application -> getAppCacheFile (); // returns a SplFileInfo for the configured application cache manifest
}
$ manifest = $ application -> getManifest ( ' /htdocs ' ); // returns a TQExtJSApplicationManifestManifest configured correctly when running document root on your application base path
echo $ manifest ; // outputs the manifest
アプリケーションを開発モードで実行する場合、Web サーバーが Ext JS アプリケーション ワークスペースからもファイルを提供できるように、Web サーバーのドキュメント ルートが (通常の) Web に接続するパブリック ディレクトリの 1 レベル上にあることを確認する必要があります。
MIT ライセンス (MIT)
Copyright (c) 2021 TEQneers GmbH & Co. KG
本ソフトウェアおよび関連ドキュメント ファイル (以下「ソフトウェア」) のコピーを入手した人には、使用、コピー、変更、マージする権利を含むがこれらに限定されない、制限なくソフトウェアを取り扱う許可が、ここに無償で与えられます。 、以下の条件を条件として、本ソフトウェアのコピーを出版、配布、サブライセンス、および/または販売すること、および本ソフトウェアが提供される人物にそれを許可すること。
上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは主要部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、明示的か黙示的かを問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる種類の保証も行われません。いかなる場合においても、作者または著作権所有者は、契約行為、不法行為、またはその他の行為であるかどうかにかかわらず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して生じる、いかなる請求、損害、またはその他の責任に対しても責任を負わないものとします。ソフトウェア。