如何让 Symfony2 在 Dev 环境中每次加载页面时运行某些命令?
我们使用 TypeScript,我已经构建了一个命令,它将获取我所有的 TypeScript 并编译它。唯一的问题是,每次我上传一些新代码时我都必须手动执行此操作,这会在调试时减慢速度(尽管我在生产环境中这样做非常好)。
我希望它在每次页面加载时调用该命令(如果某些文件自上次编译后发生了更改......我将构建所有逻辑)。我只需要知道我应该挂在哪里。
谢谢。
如果您打算使用 Symfony 编译您的 TypeScript,我会尝试使用事件监听器
您可以尝试这样的事情(未经测试):
向文件中添加服务,config_dev.yml
以便监听器仅在开发环境中运行
# app/config/config_dev.yml
services:
compileTypeScript:
class: myApp\TypescriptBundle\Controller\TypescriptComiler
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 64 }
我不确定优先级是如何工作的,但 64 似乎达到了我的最佳选择。
创建上面引用的类并添加代码以编译 TypeScript。
//Class
class TypescriptCompiler extends controller
{
public function onKernelRequest(GetResponseEvent $event)
{
// compile your TypeScript here
}
}
我们正在考虑在进行产品部署时触发 grunt - 以执行优化。
Dev 使用原始文件和客户端实现。