php – 在 Codeigniter 操作 Composer 自動載入套件

建立 CI 專案
當安裝好 Composer 以後,我們從遠端取得 CI 專案。我的根目錄在 C:\xampp\htdocs\www\
//進入你的伺服器根目錄 cd C:\xampp\htdocs\www //在路徑 test 建立專案 composer create-project codeigniter/framework test
下載套件
composer.json 是設定檔,打開如下
{ "description": "The CodeIgniter framework", "name": "codeigniter/framework", "type": "project", "homepage": "https://codeigniter.com", "license": "MIT", "support": { "forum": "http://forum.codeigniter.com/", "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki", "irc": "irc://irc.freenode.net/codeigniter", "source": "https://github.com/bcit-ci/CodeIgniter" }, "require": { "php": ">=5.2.4" }, "suggest": { "paragonie/random_compat": "Provides better randomness in PHP 5.x" }, "require-dev": { "mikey179/vfsStream": "1.1.*" } }
在 require 添加我們想要下載的套件,例如 monolog/monolog
"require": { "php": ">=5.2.4", "monolog/monolog": "1.0.*" },
接著 update 套件
cd test composer update
可以看到路徑 vendor/monolog 已經下載下來,而且還會看到依賴套件。
打開自動載入
修改 application/config/config.php
$config['composer_autoload'] = 'vendor/autoload.php';
注意!若將 FALSE 改成 TRUE,代表你的路徑在 application/vendor/autoload.php。但我們的 vendor 在專案目錄,所以要自行填入路徑。當然官方預設是將 vendor 放在 application 內也是不錯的方法,要搬移或升級的時候也是比較明確。
測試是否如期的自動加載,打開 application/controllers/Welcome.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
寫寫看安裝的 Monolog (這是一個功能多的 log 工具) 能否觸發。
public function index() { $log = new Monolog\Logger('name'); $log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING)); $log->addWarning('Hello World', []); }
瀏覽網址,執行後就會看到專案底下有個 app.log 裡面內容如
[2016-10-18 14:49:10] name.WARNING: Hello World [] []
這就代表 CI 成功透過 Composer 自動載入需要的套件。另外,我們也能建立虛擬主機,可以參考 xampp – 建立虛擬主機路徑
若想要將你的 Libraries、Models、Helpers 交給 Composer 自動讀取,建議看這篇:Codeigniter 安裝並使用 Composer 自動載入完整步驟
ucandoit1010
2018-01-22 - 10:26
應該是 composer require
update 會出現一堆東西