從零開始打造本身的PHP框架——第4章

Composer

Composer 是 PHP5.3以上 的一個依賴管理工具。它容許你申明項目所依賴的代碼庫,它會在你的項目中爲你安裝他們。Composer 不是一個包管理器。是的,它涉及 "packages" 和 "libraries",但它在每一個項目的基礎上進行管理,在你項目的某個目錄中(例如 vendor)進行安裝。默認狀況下它不會在全局安裝任何東西。所以,這僅僅是一個依賴管理。php

本篇,咱們就在本身的項目中使用composer來進行依賴管理。git

原文地址:http://www.voidking.com/2017/...github

安裝Composer

一、訪問Composer下載地址,下載安裝對應平臺的composer,安裝方法參照官方文檔sql

二、打開命令行,輸入composer -V,測試是否安裝成功。json

使用Composer

初次使用

一、在項目根目錄下新建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源

若是在composer installcomposer 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"
    }
}

使用依賴

smarty

一、當前,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正常工做。

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');
}

訪問 http://vkphp.dev/index/render3 ,便可看到炫酷的報錯頁面,沒錯,whoops就是一個錯誤顯示插件。

var-dumper

修改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...

書籤

從零開始打造本身的PHP框架

Composer中文網

Composer中文文檔

相關文章
相關標籤/搜索