2016-09-09 4 views
-2

私は、人々が共通の話をすることができるsymfonyのフォーラムのようなものを作っています。これは、ロールプレイングゲームのようなものです。コントローラからsymfonyのコマンドを実行できますか?

誰かが1人のキャラクターが話していると表示しているときは、そのキャラクターの所有者が設定したフォントと色でラインが表示されます。だから私は文章を書いてそれを選択して文字の名前のボタンを押し、その文章を文字の名前であるクラス名で内部的にラップするので、その行を読むとその文章が書かれます。

私の問題は、キャラクターの所有者がフォントやスタイルを変更できることです。その場合、コントローラーは特別なフォルダーに文字のようなCSSファイルを生成します。 symfonyのassetic componentを使用して、そのフォルダからすべてのcssファイルを読み込むことができます。問題は、私がそれらをプロダクションで使用したい場合、symfony(php bin/console assetic:dump --env = prod --no-debug)から特別なコマンドを実行する必要があるということです。

質問は今、コントローラからそのコマンドを実行できますか?セキュリティ上の理由からではないと思います。

文字のすべてのクラスで常に1つのCSSを作成できますが、クラスを探してファイルを解析し、ファイルを上書きするのではなく、symfonyで残りの処理を行う必要があります。

私の考えはどこか分かりやすいと思いますか?

こんにちはは、PHPからexec()機能を使用してPHPからコマンドを実行することができ感謝

+0

この記事はあなたに役立つかもしれません: https://symfony.com/doc/2.6/cookbook/console/command_in_controller.html – Benjamin

+0

私はそれを試みましたが、うまくいかなかった。それは、それがインストールされているとき、asseticな名前空間を見つけることができなかったと言います。とにかくありがとう – aenon83

答えて

0

、あなたは私を理解することができます願っています。私はあなたのやろうとしていることを達成するためにもっときれいで安全な方法があると思うが、PHPでコマンドを実行することについては、exec()を使うことができる。あなたのプロジェクトに幸運。かっこいいね。

+0

私はそれを試しました、それは奇妙です、コマンドの出力は、ファイルが作成されたが、ファイルがフォルダ内に存在しないと言います。とにかくありがとう – aenon83

0

documentationに必要なものがすべて見つかります。

+0

はい、私はそれを試みました。私はドキュメントの例を示しました。 "[symfony \ Component \ Console \ Exception \ CommandNotFoundException]" swiftmailer:spool "名前空間で定義されたコマンドはありません。" asseticコマンドでも同じです。 – aenon83

+0

コードをコピーして貼り付けてください。 – COil

+0

/** * @Route( "/ testassetdump"、名前= "資産") */ パブリック関数assetAction(){ \t $カーネル=の$ this - > GET( 'カーネル'); \t $アプリケーション=新しいアプリケーション($カーネル); \t $ application-> setAutoExit(false); \t $入力=新しいArrayInput(配列( \t \t 'コマンド' => 'assetic:ダンプ'、 \t \t '--env' => 'PROD' \t)); \t $ output = new BufferedOutput(); \t $ application-> run($ input、$ output); \t $ content = $ output-> fetch(); \t dump($ content); \t返信新しい返信( ''。$ content。 ''); } – aenon83

関連する問題