teqneers/ext-application-bundle

一个用于将 Sencha Ext JS 集成到 Symfony 应用的 Symfony 扩展包

3.0.0 2022-07-25 08:23 UTC

This package is auto-updated.

Last update: 2024-08-25 12:58:17 UTC


README

一个用于将 Sencha Ext JS 集成到 Symfony 应用的 Symfony 扩展包

Build Status

安装

您可以使用 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

在此特此免费许可任何获得本软件及其相关文档副本(“软件”)的个人,在不受限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许获得软件的个人这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。

软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定用途和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他行为中产生的,与软件或软件的使用或其他处理相关。