Un componente base para integrar Sencha Ext JS en una aplicación PHP
Esta biblioteca proporciona una abstracción simple sobre los diferentes requisitos al ejecutar aplicaciones Sencha Ext JS 6 (aunque 5 debería funcionar también) desde un contexto de desarrollo y producción utilizando páginas generadas por el servidor. Las compilaciones de desarrollo y producción utilizan diferentes árboles de origen para servir los archivos de la aplicación. Este proceso se basa en un llamado manifiesto y un microcargador de Javascript. Para garantizar que este proceso funcione sin problemas con las páginas y el enrutamiento generados por el servidor, la biblioteca se conecta a la generación del manifiesto y lo modifica dinámicamente según el entorno y el contexto requeridos.
Actualmente, esta biblioteca solo se utiliza como base de teqneers/ext-application-bundle, un paquete de Symfony que integra Ext JS en una aplicación basada en Symfony. No hemos intentado utilizar la biblioteca como un componente independiente ni en ningún otro contexto que no sea un entorno Symfony, por lo que a continuación se explica cómo debería funcionar teóricamente sin el paquete. Agradeceríamos cualquier ayuda y contribución para que la biblioteca sea más útil fuera del paquete.
Puedes instalar esta biblioteca usando el compositor.
composer require teqneers/ext-application
o agregue el paquete a su archivo compositor.json directamente.
Dada la siguiente estructura de directorios de una aplicación ficticia
./
|-- 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)
debes configurar tu aplicación (por ejemplo, desde 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
Al ejecutar la aplicación en modo de desarrollo, debe asegurarse de que la raíz de documentos de su servidor web esté un nivel por encima del directorio público web (normal) para que el servidor web también pueda servir archivos desde el espacio de trabajo de la aplicación Ext JS.
La licencia MIT (MIT)
Copyright (c) 2021 TEQneers GmbH & Co. KG
Por el presente se otorga permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para operar con el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión. , publicar, distribuir, sublicenciar y/o vender copias del Software, y permitir que las personas a quienes se les proporciona el Software lo hagan, sujeto a las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, PERO NO LIMITADO A, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGÚN RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, FUERA DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS NEGOCIOS EN EL SOFTWARE.