我正在开发一种仪表板迷你站点,它具有一定功能的块.使用symfony2我有一个专用的路线/ Instagram,它获得一个html片段,显示我们场地拍摄的所有图像.
我想每10分钟刷新一次这个块,所以我需要在带有setTimeout的函数中运行以下javascript,为清楚起见省略.
jQuery('.gallery').load("/instagram", function() {
jQuery('.gallery').cycle({
fx: 'fade'
});
});
Run Code Online (Sandbox Code Playgroud)
此代码位于"@ KunstmaanDashboardBundle/Resources/public/js/instagram.js"中,我通过Assetic进行连接和优化.
{% javascripts
'@KunstmaanDashboardBundle/Resources/public/js/thirdparty/jquery-1.7.min.js'
'@KunstmaanDashboardBundle/Resources/public/js/thirdparty/jquery.cycle.lite.js'
'@KunstmaanDashboardBundle/Resources/public/js/*'
filter='closure'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我不认为这是一种最佳方法,因为我必须在load()函数中硬编码路由.要解决此问题,我需要将instagram.js内容移动到Twig模板并将其更改为:
jQuery('.gallery').load("{{ path('KunstmaanDashboardBundle_instagram') }}", function() {
jQuery('.gallery').cycle({
fx: 'fade'
});
});
Run Code Online (Sandbox Code Playgroud)
但是这样我就失去了优化和分离Assetic的内容优势.我们的自定义代码最需要这种优化.
所以我的问题是,如何将Assetic Javascript(和css)与Twig解析器结合起来,这样我就可以将上面的代码放在instagram.js文件中并使其工作:)
我对使用composer的新项目和Symfony 2依赖项非常感兴趣.
首先,我使用composer安装symfony/framework-standard-edition v2.1.5.这会产生一个具有这些要求且没有最小稳定性节点的composer文件.
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.1.*",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.0.*",
"twig/extensions": "1.0.*@dev",
"symfony/assetic-bundle": "2.1.*",
"symfony/swiftmailer-bundle": "2.1.*",
"symfony/monolog-bundle": "2.1.*",
"sensio/distribution-bundle": "2.1.*",
"sensio/framework-extra-bundle": "2.1.*",
"sensio/generator-bundle": "2.1.*",
"jms/security-extra-bundle": "1.2.*",
"jms/di-extra-bundle": "1.1.*",
"kriswallsmith/assetic": "1.1.*@dev"
},
Run Code Online (Sandbox Code Playgroud)
这工作正常,它安装所有最新的稳定版本,就像它应该的那样.
接下来,我添加一个包 - > https://packagist.org/packages/kunstmaan/admin-bundle
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.1.*",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.0.*",
"twig/extensions": "1.0.*@dev",
"symfony/assetic-bundle": "2.1.*",
"symfony/swiftmailer-bundle": "2.1.*",
"symfony/monolog-bundle": "2.1.*",
"sensio/distribution-bundle": "2.1.*",
"sensio/framework-extra-bundle": "2.1.*",
"sensio/generator-bundle": "2.1.*",
"jms/security-extra-bundle": "1.2.*",
"jms/di-extra-bundle": "1.1.*",
"kriswallsmith/assetic": "1.1.*@dev",
"kunstmaan/admin-bundle": "dev-master"
},
Run Code Online (Sandbox Code Playgroud)
这个包依赖于"dev-master"中的"doctrine/doctrine-fixtures-bundle"(https://packagist.org/packages/doctrine/doctrine-fixtures-bundle)
并且该捆绑包依赖于带有*的学说/数据夹具(https://packagist.org/packages/doctrine/data-fixtures)
现在当我在项目中运行composer …
我们正在生产几个symfony2网站,我们正在使用Airbrake和Sentry来收集异常.真正的异常即使在生产中也能很好地工作,我们可以用很多上下文记录它们,我们可以向用户显示一个不错的500错误页面.
PHP错误是另一回事.我可以使用"on shutdown"处理程序将它们记录到Sentry,但是使用它我不能传递很多上下文.对于用户,也只有空503错误.这很糟糕,因为如果出现问题,我们无法向用户显示"下一步".
来自Java背景我很喜欢"真正的"异常,并且在开发模式中有一个类可以在异常中转换大量错误,但是没有记录或显而易见的方法在生产中启用它,所以我想也许我不应该'在询问更多之前;)
你是如何处理这个问题的,它会带来什么样的性能损失?
这是一个来自以下网址的链接:http://groups.google.com/group/symfony2/browse_thread/thread/6129f57a35d8cb90?hl = zh-CN