teqneers / ext-application-bundle
一个用于将 Sencha Ext JS 集成到 Symfony 应用的 Symfony 扩展包
3.0.0
2022-07-25 08:23 UTC
Requires
- php: 7.4.*|8.0.*|8.1.*
- symfony/config: ~5.0
- symfony/dependency-injection: ~5.0
- symfony/http-kernel: ~5.0
- symfony/routing: ~5.0
- symfony/yaml: ~5.0
- teqneers/ext-application: ^3.0
- twig/twig: ~3.3
Requires (Dev)
- phpunit/phpunit: ^9.5
- symfony/framework-bundle: ~5.0
- symfony/phpunit-bridge: ~5.0
README
一个用于将 Sencha Ext JS 集成到 Symfony 应用的 Symfony 扩展包
安装
您可以使用 composer 安装此扩展包
composer require teqneers/ext-application-bundle
或直接在您的 composer.json 文件中添加此包。
安装包后,您只需将扩展包添加到您的 AppKernel.php 文件中
// in AppKernel::registerBundles() $bundles = array( // ... new TQ\Bundle\ExtJSApplicationBundle\TQExtJSApplicationBundle(), // ... );
配置
ext-application-bundle 需要进行一些初始配置,以便它可以找到正确的文件。
# Default configuration for extension with alias: "tq_ext_js_application"
tq_ext_js_application:
app_path: ~ # Required
builds: # Required
# Prototype
name:
development: # Required
build_path: ~ # Required
microloader: /bootstrap.js
manifest: /bootstrap.json
app_cache: null
production: # Required
build_path: ~ # Required
microloader: microloader.js
manifest: app.json
app_cache: cache.appcache
因为该扩展包提供自己的控制器来服务微加载器、清单和应用程序缓存清单,您还需要配置您的路由以包含给定前缀的扩展包路由。编辑您的 app/config/routing.yml
# ...
ext_app:
resource: "@TQExtJSApplicationBundle/Resources/config/routing.yml"
prefix:/
# ...
示例
假设有一个虚构的 Symfony 应用的以下目录结构
./
|-- app/ Application configuration and assets
|-- src/ Application source code
|-- web/ Public web-facing directory (document root)
| |-- app.php Symfony production front controller
| |-- app_dev.php Symfony development front controller
| |-- app/ Root folder for Ext JS application production build
|-- ExampleApp/ The Ext JS application source folder
您的配置可能看起来像这样
tq_ext_js_application:
app_path: '%kernel.project_dir%/ExampleApp'
builds:
default:
development:
build_path: build/development/ExampleApp
microloader: /bootstrap.js
manifest: /bootstrap.json
app_cache: ~
production:
build_path: build/production/ExampleApp
microloader: microloader.js
manifest: app.json
app_cache: cache.appcache
用法
您可以使用该扩展包提供的 Twig 扩展轻松地将 Ext JS 应用程序资源集成到您的应用程序模板中。
<!DOCTYPE HTML> <html manifest="{{ extjsAppCachePath() }}" lang="en"> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="UTF-8"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <title>Welcome!</title> <script type="text/javascript"> var Ext = Ext || {}; Ext.manifest = '{{ extjsManifestPath()|e('js') }}'; </script> <script id="microloader" data-app="{{ extjsApplicationId() }}" type="text/javascript" src="{{ extjsBootstrapPath() }}"></script> </head> <body> </body> </html>
许可证
MIT 许可证 (MIT)
版权所有 © 2015 TEQneers GmbH & Co. KG
在此特此免费许可任何获得本软件及其相关文档副本(“软件”)的个人,在不受限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许获得软件的个人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。
软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定用途和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他行为中产生的,与软件或软件的使用或其他处理相关。