美文网首页
从零开始打造自己的PHP框架——第4章

从零开始打造自己的PHP框架——第4章

作者: VoidKing | 来源:发表于2017-09-16 14:07 被阅读60次

    Composer

    Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。

    本篇,我们就在自己的项目中使用composer来进行依赖管理。

    安装Composer

    1、访问Composer下载地址,下载安装对应平台的composer,安装方法参照官方文档

    2、打开命令行,输入composer -V,测试是否安装成功。

    使用Composer

    初次使用

    1、在项目根目录下新建composer.json,内容如下:

    {
        "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。

    版本号选择参照下表:


    image

    2、安装依赖
    在根目录打开命令行,输入composer,如果composer.json文件有错误会出现提示,没有错误则提示可选参数和功能。
    输入composer install,即可安装依赖到vendor目录中,并且自动生成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 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

    1、当前,lib目录和vendor目录中都包含了smarty,使用verdor中的smarty会更有格调,遂弃用lib目录,改用vendor作为第三方库目录。

    2、根目录下index.php修改为:

    // define('LIB',VKPHP.'/lib'); //第三方库所在目录
    define('LIB',VKPHP.'/vendor'); //第三方库所在目录
    include LIB.'/autoload.php'; //自动加载第三方库
    

    3、core目录下render.php修改为:

    // require_once(LIB.'/smarty/libs/Smarty.class.php');
    

    因为index.php中自动加载了所有第三方库,所以我们不再需要自己引入。

    访问 http://vkphp.dev/index/render2 ,smarty正常工作。

    image

    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就是一个错误显示插件。

    image

    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是一个变量显示插件。

    image

    源码分享

    https://github.com/voidking/vkphp/releases/tag/v1.4.0

    书签

    从零开始打造自己的PHP框架

    Composer中文网

    Composer中文文档

    相关文章

      网友评论

          本文标题:从零开始打造自己的PHP框架——第4章

          本文链接:https://www.haomeiwen.com/subject/tegysxtx.html