从零开始打造本身的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中文文档

相关文章
相关标签/搜索