3

開発環境にあるときにページが読み込まれるたびにSymfony2に特定のコマンドを実行させるにはどうすればよいですか?

TypeScriptを使用し、TypeScriptをすべて取得してコンパイルするコマンドを作成しました。唯一の問題は、新しいコードをアップロードするたびに手動でこれを実行する必要があることです。これにより、デバッグ時の速度が低下します(ただし、本番環境ではこの方法で問題ありません)。

ページが読み込まれるたびにそのコマンドを呼び出したいと思います(最後にコンパイルされてから一部のファイルが変更されている場合...すべてのロジックを構築します)。どこに接続すればよいかを知る必要があります。

ありがとう。

4

3 に答える 3

1

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
    }
}
于 2013-02-15T18:59:33.353 に答える
0

最適化を実行するために、本番環境のデプロイを行うときにうなり声をトリガーすることを検討しています。

開発者は生ファイルとクライアント側の実装を使用します。

于 2013-03-19T16:44:22.217 に答える
0

Symfony を使用して毎回コンパイルする (遅い) のではなく、grunt.js 監視タスクをセットアップしてファイルを監視し、変更があるたびにコンパイルすることができます。これを行うには、開発システムでnode.jsを設定することに慣れている必要があります。全体として、クライアントとサーバーを完全に分離することは、一種の良いことだと思います。

于 2013-02-15T19:33:28.353 に答える