2014-07-02 48 views
3

我在Cakephp 2.4.5,我如何使用/導入CakeEmail函數,以便我可以在我的shell腳本中使用它們?我到處搜索,但無法找到答案。大多數示例都是關於從Controller發送電子郵件,而不是Shell。Cakephp如何導入CakeEmail到Shell

此Shell由Cron作業執行。

我已經試過如下:

class EmailShell extends AppShell { 

    //App::uses('CakeEmail', 'Network/Email'); ///Results in Error: Parse error: syntax error, unexpected 'App' (T_STRING), 
    //App::import('Component', 'Email'); //Results in Error: Parse error: syntax error, unexpected 'App' (T_STRING), 
    $tasks = array('Email'); //Results in Error: [0m Task class EmailTask could not be found. 

    public function main() { 
      //email sending logic here 
    } 
+0

很明顯:由於某種原因無法找到您的應用程序類。猜猜你的CakePHP核心沒有找到。運行應用中包含的shell:。\ Console \ cake電子郵件 – burzum

+1

@burzum爲什麼解析器錯誤與丟失的類文件有關?這裏顯示的示例僅僅是錯誤的PHP語法,'App :: uses()'調用只能存在於類構造之外或函數/方法內部,而$ tasks變量缺少可見性關鍵字,也會導致解析器錯誤。 – ndm

+0

我沒有意識到這是一種方法之外。 – burzum

回答

4

應用::使用語句必須高於開課:

App::uses('CakeEmail', 'Network/Email'); 

class EmailShell ... 

然後你就可以在這個文件類的任何地方使用它:

$Email = new CakeEmail(); 
...