teqneers / ext-direct-bundle
一个用于将 Sencha Ext JS Ext.direct 集成到 Symfony 应用程序中的 Symfony 扩展包
Requires
- php: 8.0.*|8.1.*
- jms/serializer-bundle: ~4.0
- symfony/config: ~5.0
- symfony/dependency-injection: ~5.0
- symfony/http-kernel: ~5.0
- symfony/routing: ~5.0
- symfony/yaml: ~5.0
- teqneers/ext-direct: ^5.0
- twig/twig: ~3.3
Requires (Dev)
- phpunit/phpunit: ^9.5
- symfony/framework-bundle: ~5.0
- symfony/phpunit-bridge: ~5.0
- symfony/security-bundle: ~5.0
- symfony/templating: ~5.0
README
一个用于将 Sencha Ext JS Ext.direct 集成到 Symfony 应用程序中的 Symfony 扩展包
安装
您可以使用 composer 安装此扩展包
composer require teqneers/ext-direct-bundle
或直接将包添加到您的 composer.json 文件中。
安装包后,您只需将扩展包添加到您的 AppKernel.php 文件中
// in AppKernel::registerBundles() $bundles = array( // ... new TQ\Bundle\ExtDirectBundle\TQExtDirectBundle(), // ... );
配置
ext-direct-bundle 至少需要一个端点进行配置。
# Default configuration for "TQExtDirectBundle"
tq_ext_direct:
debug: true
cache: file
file_cache_dir: '%kernel.cache_dir%/tq_ext_direct'
validate_arguments: true
strict_validation: true
convert_arguments: true
convert_result: true
endpoints: # Required
# Prototype
id:
descriptor: Ext.app.REMOTING_API
namespace: Ext.global
auto_discover: true
all_bundles: true
bundles: []
directories: []
auto_discover
启用自动发现应用程序中可用的扩展包中的服务类。如果与 all_bundles
配合使用,则检查所有可用的扩展包,否则仅检查 bundles
数组中提到的扩展包。对于扩展包,需要在扩展包根目录中的 ExtDirect
目录中放置服务类。此外(或仅此)可以设置单个 directories
以包含在服务发现过程中。服务是递归发现的,从每个配置的目录开始。
因为该扩展包提供了自己的控制器来提供 API 描述和处理 Ext.direct 请求,所以您还需要配置您的路由以包括具有给定前缀的扩展包路由。编辑您的 app/config/routing.yml
# ...
ext_app:
resource: "@TQExtDirectBundle/Resources/config/routing.yml"
prefix: /
# ...
最简配置如下
tq_ext_direct:
endpoints:
api: ~
这通过 api
端点启用所有可用扩展包中的 Ext direct 服务。
用法
使用扩展包提供的 Twig 扩展,您可以轻松地将 Ext.direct API 定义集成到应用程序模板中。
<!DOCTYPE HTML> <html 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> <!-- Ext JS bootstrap, etc. --> <script type="text/javascript" src="{{ extDirectApiPath('api') }}"></script> </head> <body> </body> </html>
许可
MIT 许可证 (MIT)
版权所有 © 2015 TEQneers GmbH & Co. KG
在此特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许获得软件的人这样做,但受以下条件约束
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、针对特定目的的适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是基于合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。