2014-05-23 43 views
0

我即將開始編寫Symfony2應用程序,並且遇到了一些筆記,我必須寫一些筆記,以確保我編寫Symfony2控制器也需要從命令行運行。Symfony2 - 在命令行上運行控制器時要注意什麼VS瀏覽器

不是bash的出控制器的負荷,看似很高興他們在Web瀏覽器的工作,我要確保所有控制器的命令行工作了。

其中很多需要從命令行運行,例如,後臺任務等

(1)我的筆記告訴我AppKernel.php插入此:

  * This prevents a 'You cannot create a service ("request") of an inactive scope ("request")' error 

      <?php 

       class AppKernel extends Kernel 
       { 

        protected function initializeContainer() { 
         parent::initializeContainer(); 
         if (PHP_SAPI == 'cli') { 
          $this->getContainer()->enterScope('request'); 
          $this->getContainer()->set('request', new \Symfony\Component\HttpFoundation\Request(), 'request'); 
         } 
        } 

       } 

      ?> 

(2)我也得到了在每一個運行各種代碼預先書面請求監聽器請求,我知道生成的變量不會在命令行中使用。

(3)我知道,沒有我的Apache配置的運行(因爲它不是在Apache運行),我也知道,有兩家的php.ini文件(CLI和Apache)。

我還需要考慮什麼?

與瀏覽器相比,命令行上還有哪些功能不可用?

+0

我2美分...最大的一個對我來說是發送電子郵件。有了瀏覽器,我相信它是在內核中進行處理終止(http://symfony.com/doc/current/components/http_kernel/introduction.html# the-kernel-terminate-event),但是使用CLI你必須處理sppol,不像你自己那樣http://symfony.com/doc/current/cookbook/console/sending_emails.html#using-memory-spooling – qooplmao

回答

0

我會考慮Console Component

的Symfony 2在接口構建創建將擁有整個應用程序自舉基於CLI命令,這就是所謂的Console Component

使用此構建您的cronjobs和任務,您可以使用依賴注入來確保您擁有所有您需要的服務。

我敢肯定有一些研究,你可以找出如何在必要時加載控制器 - 控制器轉發或virtual

相關問題