Composer
Composer 是 PHP5.3以上 的一個(gè)依賴管理工具邢疙。它允許你申明項(xiàng)目所依賴的代碼庫(kù)憔杨,它會(huì)在你的項(xiàng)目中為你安裝他們。Composer 不是一個(gè)包管理器栽惶。是的娃肿,它涉及 "packages" 和 "libraries",但它在每個(gè)項(xiàng)目的基礎(chǔ)上進(jìn)行管理黍衙,在你項(xiàng)目的某個(gè)目錄中(例如 vendor)進(jìn)行安裝泥畅。默認(rèn)情況下它不會(huì)在全局安裝任何東西。因此琅翻,這僅僅是一個(gè)依賴管理位仁。
本篇柑贞,我們就在自己的項(xiàng)目中使用composer來(lái)進(jìn)行依賴管理。
安裝Composer
1障癌、訪問(wèn)Composer下載地址凌外,下載安裝對(duì)應(yīng)平臺(tái)的composer,安裝方法參照官方文檔涛浙。
2康辑、打開(kāi)命令行,輸入composer -V
轿亮,測(cè)試是否安裝成功疮薇。
使用Composer
初次使用
1、在項(xiàng)目根目錄下新建composer.json我注,內(nèi)容如下:
{
"name": "VKPHP",
"description": "A PHP Framework for php developer",
"type": "Framework",
"keywords": [
"PHP","PHP Framework","VKPHP"
],
"homepage": "http://www.voidking.com",
"time": "2017-09-14",
"license": "MIT",
"authors": [{
"name": "VoidKing",
"email": "voidking@qq.com",
"homepage": "http://www.voidking.com",
"role": "Student"
}],
"require": {
"PHP": ">=5.3.0",
"smarty/smarty": "~3.1"
}
}
需要解釋的按咒,是require字段,要求PHP大于等于5.3但骨,smarty大于等于3.1且小于等于4.0励七。
版本號(hào)選擇參照下表:
2、安裝依賴
在根目錄打開(kāi)命令行奔缠,輸入composer
掠抬,如果composer.json文件有錯(cuò)誤會(huì)出現(xiàn)提示,沒(méi)有錯(cuò)誤則提示可選參數(shù)和功能校哎。
輸入composer install
两波,即可安裝依賴到vendor目錄中,并且自動(dòng)生成composer.lock和vendor/autoload.php闷哆。
更新依賴
1腰奋、在composer.json中添加依賴,whoops任意版本抱怔,var-dumper任意版本劣坊。
"filp/whoops": "*",
"symfony/var-dumper": "*"
2、安裝依賴
composer install
野蝇,提示
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
從提示可以看出讼稚,composer install
讀取的是composer.lock中的依賴,而不是最新的composer.json绕沈。
所以,我們要使用命令composer update
帮寻,這樣就可以下載新寫入的依賴乍狐,并且更新composer.lock。
更換Composer源
如果在composer install
或composer update
時(shí)非常慢固逗,那么我們可以更換Composer源浅蚪。
訪問(wèn)Composer中國(guó)鏡像站藕帜,參照文檔,在composer.json所在目錄中執(zhí)行:
composer config repo.packagist composer https://packagist.phpcomposer.com
或者惜傲,直接在composer.json中添加:
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
使用依賴
smarty
1洽故、當(dāng)前,lib目錄和vendor目錄中都包含了smarty盗誊,使用verdor中的smarty會(huì)更有格調(diào)时甚,遂棄用lib目錄,改用vendor作為第三方庫(kù)目錄哈踱。
2荒适、根目錄下index.php修改為:
// define('LIB',VKPHP.'/lib'); //第三方庫(kù)所在目錄
define('LIB',VKPHP.'/vendor'); //第三方庫(kù)所在目錄
include LIB.'/autoload.php'; //自動(dòng)加載第三方庫(kù)
3、core目錄下render.php修改為:
// require_once(LIB.'/smarty/libs/Smarty.class.php');
因?yàn)閕ndex.php中自動(dòng)加載了所有第三方庫(kù)开镣,所以我們不再需要自己引入刀诬。
訪問(wèn) http://vkphp.dev/index/render2 ,smarty正常工作邪财。
whoops
根目錄index.php修改為:
if(DEBUG){
ini_set('display_errors', 'On');
$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();
}else{
ini_set('display_errors', 'Off');
}
訪問(wèn) http://vkphp.dev/index/render3 陕壹,即可看到炫酷的報(bào)錯(cuò)頁(yè)面,沒(méi)錯(cuò)树埠,whoops就是一個(gè)錯(cuò)誤顯示插件糠馆。
var-dumper
修改app/ctrl/indexCtrl.php中的data函數(shù)為:
public function data(){
$db = new \core\db();
$sql = 'select * from vk_user';
$result = $db->query($sql);
dump($result);
dump($result->fetchAll());
}
訪問(wèn) http://vkphp.dev/index/data ,即可看到炫酷的變量輸出頁(yè)面弥奸,沒(méi)錯(cuò)榨惠,var-dumper是一個(gè)變量顯示插件。
源碼分享
https://github.com/voidking/vkphp/releases/tag/v1.4.0