Javascript 在Symfony2项目中是否可能使用require.js和异步模块定义(AMD)?

Javascript 在Symfony2项目中是否可能使用require.js和异步模块定义(AMD)?,javascript,rest,symfony,requirejs,amd,Javascript,Rest,Symfony,Requirejs,Amd,我目前正在更新我的工作流程,特别是在前端部分,并开始在我上一个不需要后端的项目中使用、、等 来自Symfony2,我习惯于用Twig编写模板,并让Assetic制作所有必要的魔法,如js/css缩小、资产等。Assetic目前无法以require.js需要的方式提供javascript文件 现在我真的很喜欢RequireJS(AMD)背后的想法,我想知道如何在Symfony2项目中从它的惊人之处获益。imho最明智的方法是将Symfony2项目简化为只提供必要的数据,例如通过提供RESTful接

我目前正在更新我的工作流程,特别是在前端部分,并开始在我上一个不需要后端的项目中使用、、等

来自Symfony2,我习惯于用Twig编写模板,并让Assetic制作所有必要的魔法,如js/css缩小、资产等。Assetic目前无法以require.js需要的方式提供javascript文件

现在我真的很喜欢RequireJS(AMD)背后的想法,我想知道如何在Symfony2项目中从它的惊人之处获益。imho最明智的方法是将Symfony2项目简化为只提供必要的数据,例如通过提供RESTful接口。这将进一步导致一个完全解耦的前端后端,可以更独立地开发和测试


我的问题是:Symfony2提供给我的完整表单处理(CSRF保护、验证等)和安全性等好处不会丢失吗?是否有人已经这样做了,并且能够分享一些见解?是否有一些缺点/陷阱需要寻找?而且……值得吗?;-)

我们目前正在基于我们自己的RESTful框架重写我们的intranet应用程序,该框架使用了Twig和jQuery,因为我们对现有框架的各个方面都感到失望,例如,和休会

我们发现,集成声明性表单字段验证(负责一类HTTP资源的每个PHP类声明哪些表单字段具有哪些验证要求,REST框架在接收的数据中强制执行这些验证要求)和本机JSON-HAL导出等功能非常简单(我们的PHP对象是HAL格式的,HAL导出只是一个
json\u encode()
调用)


大约有一个月的开发进入了REST框架(包括评估其他框架),你是否认为“值得”取决于系统对你的业务有多重要:-(<

>P>),我们目前正处于基于我们自己的REST框架来重写我们的Intranet应用程序的过程中。它使用了Twig和jQuery,因为我们对现有框架的各个方面都感到失望,例如,和session

我们发现,集成声明性表单字段验证(负责一类HTTP资源的每个PHP类声明哪些表单字段具有哪些验证要求,REST框架在接收的数据中强制执行这些验证要求)和本机JSON-HAL导出等功能非常简单(我们的PHP对象是HAL格式的,HAL导出只是一个
json\u encode()
调用)


在REST框架中有大约一个月的开发(包括评估其他框架)。您是否认为“值得”取决于系统对您的业务有多重要:-(<)/P> < P>在我的主TWIG模板中,我定义了这样的JavaScript部分(例如{%BROSJS%})。

<script type="text/javascript">
var config = {
    getCoreBundleName: function() {
        return 'openframeworkcore';
    },
    getPath: function(bundleName, filePath) {
        return bundleName + '/components/' + filePath;
    },
    getCorePath: function(filePath) {
        return this.getPath(this.getCoreBundleName(), filePath);
    }
};

require.config({
    baseUrl: '{{ app.request.getBasePath() }}/bundles/',
    paths: {
        core: 'openframeworkcore/core/js/core',
        bootstrap: config.getCorePath('bootstrap/dist/js/bootstrap')
    },
    shim: {
        bootstrap: {
            deps: ['jquery']
        },
        fancybox: {
            deps: ['jquery', 'jquery-mousewheel']
        },
        angular: {
            exports: 'angular'
        },
        restangular: {
            deps: ['underscore', 'angular']
        },
        'jquery-ui': {
            deps: ['jquery']
        }
    }
});

// loads the core.js
require(['core']);
</script>
我已经将requirejs与Symfony2结合起来了 如有进一步问题,请毫不犹豫地问我


干杯

在我的主树枝模板中,我定义了如下javascript部分(例如,{%block js%})

<script type="text/javascript">
var config = {
    getCoreBundleName: function() {
        return 'openframeworkcore';
    },
    getPath: function(bundleName, filePath) {
        return bundleName + '/components/' + filePath;
    },
    getCorePath: function(filePath) {
        return this.getPath(this.getCoreBundleName(), filePath);
    }
};

require.config({
    baseUrl: '{{ app.request.getBasePath() }}/bundles/',
    paths: {
        core: 'openframeworkcore/core/js/core',
        bootstrap: config.getCorePath('bootstrap/dist/js/bootstrap')
    },
    shim: {
        bootstrap: {
            deps: ['jquery']
        },
        fancybox: {
            deps: ['jquery', 'jquery-mousewheel']
        },
        angular: {
            exports: 'angular'
        },
        restangular: {
            deps: ['underscore', 'angular']
        },
        'jquery-ui': {
            deps: ['jquery']
        }
    }
});

// loads the core.js
require(['core']);
</script>
我已经将requirejs与Symfony2结合起来了 如有进一步问题,请毫不犹豫地问我


干杯

您也可以使用。它将Require.js与Assetic集成,允许您使用Symfony2配置系统配置Require.js。

您也可以使用。它将Require.js与Assetic集成,并允许您使用Symfony2配置系统配置Require.js。

您的解决方案听起来很有前途。缩小呢?你还能通过assetic做到吗?嗨,nietonfir。我还在研究一个单文件解决方案。本文件解释了这一机制。我认为无论如何,你都必须使用r.jsThx来提高警惕!我会接受你的回答,因为你提供了非常好的见解谢谢:)我将此页面添加为书签,以通知您任何更新。您的解决方案听起来非常有希望。缩小呢?你还能通过assetic做到吗?嗨,nietonfir。我还在研究一个单文件解决方案。本文件解释了这一机制。我认为无论如何,你都必须使用r.jsThx来提高警惕!我会接受你的回答,因为你提供了非常好的见解谢谢:)我将此页面添加为书签,以通知您任何更新