天天看點

CI架構 -- CLI執行php代碼

什麼是CLI:

CLI (指令行界面)是一種基于文本的和計算機互動的方式。 更多資訊, 請檢視 維基百科 。

為什麼使用CLI?

雖然不是很明顯,但是有很多情況下我們需要使用指令行來運作 CodeIgniter。

  • 使用 cron 定時運作任務,而不需要使用 wget 或 curl
  • 通過函數 is_cli() 的傳回值來讓你的 cron 頁面不能通過 URL 通路到
  • 制作互動式的任務,例如:設定權限,清除緩存,備份等等
  • 與其他語言進行內建,例如可以通過 C++ 調用一條指令來運作你模型中的代碼。

例子:

讓我們先建立一個簡單的控制器,打開你的文本編輯器,建立一個檔案并命名為 Tools.php,然後輸入如下的代碼:

<?php
class Tools extends CI_Controller {

    public function message($to = 'World')
    {
        echo "Hello {$to}!".PHP_EOL;
    }
}      

然後将檔案儲存到 application/controllers/ 目錄下。

現在你可以通過類似下面的 URL 來通路它:example.com/index.php/tools/message/to

或者,我們可以通過 CLI 來通路。在 Mac/Linux 下你可以打開一個終端,在 Windows 下你可以打開 “運作”,然後輸入 "cmd",進入 CodeIgniter 項目所在的目錄。

$ cd /path/to/project;
$ php index.php tools message
      

如果你操作正确,你應該會看到 Hello World! 。

$ php index.php tools message "John Smith"      

這裡我們傳一個參數給它,這和使用 URL 參數是一樣的。"John Smith" 被作為參數傳入并顯示出:

Hello John Smith!      

繼續閱讀