Composer 是 PHP5.3以上 的一個依賴管理工具。它容許你申明項目所依賴的代碼庫,它會在你的項目中爲你安裝他們。Composer 不是一個包管理器。是的,它涉及 "packages" 和 "libraries",但它在每一個項目的基礎上進行管理,在你項目的某個目錄中(例如 vendor)進行安裝。默認狀況下它不會在全局安裝任何東西。所以,這僅僅是一個依賴管理。php
本篇,咱們就在本身的項目中使用composer來進行依賴管理。git
原文地址:http://www.voidking.com/2017/...github
一、訪問Composer下載地址,下載安裝對應平臺的composer,安裝方法參照官方文檔。sql
二、打開命令行,輸入composer -V
,測試是否安裝成功。json
一、在項目根目錄下新建composer.json,內容以下:app
{ "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。composer
版本號選擇參照下表:
框架
二、安裝依賴
在根目錄打開命令行,輸入composer
,若是composer.json文件有錯誤會出現提示,沒有錯誤則提示可選參數和功能。
輸入composer install
,便可安裝依賴到vendor目錄中,而且自動生成composer.lock和vendor/autoload.php。函數
一、在composer.json中添加依賴,whoops任意版本,var-dumper任意版本。工具
"filp/whoops": "*", "symfony/var-dumper": "*"
二、安裝依賴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 install
或composer update
時很是慢,那麼咱們能夠更換Composer源。
訪問Composer中國鏡像站,參照文檔,在composer.json所在目錄中執行:composer config repo.packagist composer https://packagist.phpcomposer.com
或者,直接在composer.json中添加:
"repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } }
一、當前,lib目錄和vendor目錄中都包含了smarty,使用verdor中的smarty會更有格調,遂棄用lib目錄,改用vendor做爲第三方庫目錄。
二、根目錄下index.php修改成:
// define('LIB',VKPHP.'/lib'); //第三方庫所在目錄 define('LIB',VKPHP.'/vendor'); //第三方庫所在目錄 include LIB.'/autoload.php'; //自動加載第三方庫
三、core目錄下render.php修改成:
// require_once(LIB.'/smarty/libs/Smarty.class.php');
由於index.php中自動加載了全部第三方庫,因此咱們再也不須要本身引入。
訪問 http://vkphp.dev/index/render2 ,smarty正常工做。
根目錄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'); }
訪問 http://vkphp.dev/index/render3 ,便可看到炫酷的報錯頁面,沒錯,whoops就是一個錯誤顯示插件。
修改app/ctrl/indexCtrl.php中的data函數爲:
public function data(){ $db = new \core\db(); $sql = 'select * from vk_user'; $result = $db->query($sql); dump($result); dump($result->fetchAll()); }
訪問 http://vkphp.dev/index/data ,便可看到炫酷的變量輸出頁面,沒錯,var-dumper是一個變量顯示插件。
https://github.com/voidking/v...