php – 將 Codeigniter 3 改用 Composer 自動讀取 Model 的方法
打開 composer 自動讀取
設定 config.php 的 composer_autoload 項目,參考內文。
指派路徑
在 composer.json 添加 autoload ,告訴 composer 自動讀取 model 的路徑。
"autoload": { "classmap": [ "application/models" ] }
設定資料庫連接
到 config/database.php 設定相關資料庫。
添加 Trait
新增 application/models/Tool.php 名稱可以自己命名。作為多個 model 會用到的 Trait 共用程式。
<? namespace Model; trait Tool { protected $ci; protected $db; public function __construct() { $this->ci =& get_instance(); $this->ci->load->database(); $this->db = $this->ci->db; } }
添加 Model
新增 application\models\Member.php ,並在其中使用 trait。
<? namespace Model; class Member { //添加 model 共用的片段 use Tool; public function all() { return $this->db->get("member")->result(); } }
運行傾倒
composer dump-autoload
試試看
前往 controllers/Welcome.php 修改為
public function index() { $member = new Model\Member; $datalist = $member->all(); foreach ($datalist as $datainfo) { echo $datainfo->id; } }
這樣就能完成自動讀取 model ,不需要透過 CI 的 autoload.php 。 composer 的運作原理,是當呼叫 model 發現不存在的時候,才會去尋找你定義的路徑查看是否有檔案。效能上是比較好的。
Comments