Un composant de base pour intégrer Sencha Ext JS dans une application PHP
Cette bibliothèque fournit une abstraction simple autour des différentes exigences lors de l'exécution d'applications Sencha Ext JS 6 (même si 5 devrait également fonctionner) à partir d'un contexte de développement et de production utilisant des pages générées par le serveur. Les versions de développement et de production utilisent différentes arborescences sources pour servir les fichiers d'application. Ce processus est basé sur ce qu'on appelle un manifeste et un micro-chargeur Javascript. Pour garantir que ce processus fonctionne de manière transparente avec les pages et le routage générés par le serveur, la bibliothèque se connecte à la génération du manifeste et modifie dynamiquement le manifeste en fonction de l'environnement et du contexte requis.
Actuellement, cette bibliothèque n'est utilisée que comme base de teqneers/ext-application-bundle, un bundle Symfony qui intègre Ext JS dans une application basée sur Symfony. Nous n'avons pas essayé d'utiliser la bibliothèque en tant que composant autonome ou dans tout autre contexte qu'un environnement Symfony, donc ce qui suit indique uniquement comment elle devrait fonctionner théoriquement sans le bundle. Nous apprécierions toute aide et contribution pour rendre la bibliothèque plus utile en dehors du bundle.
Vous pouvez installer cette bibliothèque en utilisant composer
composer require teqneers/ext-application
ou ajoutez le package directement à votre fichier composer.json.
Étant donné la structure de répertoire suivante d'une application fictive
./
|-- 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)
vous devez configurer votre application (par exemple à partir d'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
Lorsque vous exécutez l'application en mode développement, vous devez vous assurer que la racine du document de votre serveur Web se trouve à un niveau supérieur au répertoire Web public (régulier) afin que le serveur Web puisse également servir les fichiers de l'espace de travail de l'application Ext JS.
La licence MIT (MIT)
Copyright (c) 2021 TEQneers GmbH & Co. KG
L'autorisation est accordée par la présente, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), d'utiliser le Logiciel sans restriction, y compris, sans limitation, les droits d'utilisation, de copie, de modification, de fusion. , publier, distribuer, accorder des sous-licences et/ou vendre des copies du Logiciel, et permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :
L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du logiciel.
LE LOGICIEL EST FOURNI « TEL QUEL », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS LIMITATION LES GARANTIES DE QUALITÉ MARCHANDE, D'ADAPTATION À UN USAGE PARTICULIER ET DE NON-VIOLATION. EN AUCUN CAS LES AUTEURS OU LES TITULAIRES DES DROITS D'AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGES OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLIT OU AUTRE, DÉCOULANT DE, DE OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES TRANSACTIONS DANS LE LOGICIEL.