brickfox / ext-application-bundle
一个用于将 Sencha Ext JS 集成到 Symfony 2 应用的 Symfony 2 扩展包
Requires
- php: >=5.3.9
- brickfox/ext-application: ~1.0.2
- symfony/config: ~2.8|~3.0
- symfony/dependency-injection: ~2.8|~3.0
- symfony/http-kernel: ~2.8|~3.0
- symfony/routing: ~2.8|~3.0
- twig/twig: ~1.24|~2.0
Requires (Dev)
- phpunit/phpunit: ~4.8,!=4.8.20|~5.1
- symfony/framework-bundle: ~2.8|~3.0
- symfony/templating: ~2.8|~3.0
README
一个用于将 Sencha Ext JS 集成到 Symfony 2 应用的 Symfony 2 扩展包
安装
您可以使用 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
因为该扩展包提供自己的控制器来服务 micro-loader、manifest 和应用程序缓存 manifest,您还需要配置您的路由以包含具有给定前缀的扩展包路由。编辑您的 app/config/routing.yml
# ...
ext_app:
resource: "@TQExtJSApplicationBundle/Resources/config/routing.yml"
prefix:/
# ...
示例
假设一个虚构的 Symfony 2 应用程序的以下目录结构
./
|-- app/ Application configuration and assets
|-- src/ Application source code
|-- web/ Public web-facing directory (document root)
| |-- app.php Symfony 2 production front controller
| |-- app_dev.php Symfony 2 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.root_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)
版权所有 (c) 2015 TEQneers GmbH & Co. KG
特此授予任何获得本软件及其相关文档副本(“软件”)的人免费使用该软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许获得软件的人进行上述行为,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他原因,无论该索赔、损害或其他责任是否源于、源于或与软件或软件的使用或其他行为有关。