php – Codeigniter – 如何讓 System 交給 Composer 保管

前言
一般來說,最簡單方式是使用 “composer create-project codeigniter/framework” 來安裝,可以參考這一篇教你的一般安裝法。不過這裡要教的安裝方式,就是分離 system 目錄,可以達到
- 移植到主機不需移動 system,因為核心的部分統一交給 composer 管理,由 composer install 統一下載。
- GIT 在使用提交 git commit 指令的時候,無須加入 system 目錄。
- 釋出 Codeigniter 版本的時候,只要指定版本並下指令 composer update 就可以自動替換掉目錄 system,免除手動替換。
- 可以在任何CMS、框架或傳統 PHP 開發中使用 Codeigniter 功能(參考我)。
這種安裝方式官方沒有教,不過在 CI 中的 index.php 都已經支援這樣的特性。
安裝步驟
使用 composer 下載
1 2 3 4 |
composer init composer require codeigniter/framework 3.1.9 |
新增一個空白目錄後初始化 composer.json 並下載 codeigniter。注意!為了讓開發的系統穩定,我固定版本 3.1.9 ,請改成你想要的版本,可以在這裡找到。
因為 Codeigniter 升級有可能會需要小幅度的修改你的程式碼 (但大致上來說很少),明確指定可以避免執行 composer update 不小心升級造成的麻煩。
複製
將這兩個檔案複製到你的根目錄
- vendor/codeigniter/framework/application/
- vendor/codeigniter/framework/index.php
這時候打開瀏覽器,只會看到遺失訊息。這是因為預設的 system 資料夾指定位置找不到。
1 2 3 |
Your system folder path does not appear to be set correctly. Please open the following file and correct this: index.php |
修改 index.php
1 2 3 |
$system_path = 'vendor/codeigniter/framework/system'; |
發現了嗎?我們把 system 指向到 vendor 中的 Codeigniter ,只要重新打開瀏覽器就可以看到 Hello World 。
如何升級/降級 Codeigniter?
直接修改 composer.json 中的版本,例如我把 3.1.9 降級為 3.1.8
1 2 3 4 5 |
"require": { "codeigniter/framework": "3.1.8" } |
1 2 3 |
composer update |
這樣就完成替換囉,你可以試著 echo CI_VERION; 查看。
決定 Codeigniter 使用哪個版本核心,取決於 composer.json 的設定檔,但記得每次版本異動都要查看官方升級指南喔。
Comments