博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从零开始打造自己的PHP框架——第4章
阅读量:5998 次
发布时间:2019-06-20

本文共 2685 字,大约阅读时间需要 8 分钟。

Composer

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

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

原文地址:

安装Composer

1、访问,下载安装对应平台的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。

版本号选择参照下表:

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 informationInstalling dependencies (including require-dev) from lock fileNothing to install or updateGenerating autoload files

从提示可以看出,composer install读取的是composer.lock中的依赖,而不是最新的composer.json。

所以,我们要使用命令composer update,这样就可以下载新写入的依赖,并且更新composer.lock。

更换Composer源

如果在composer installcomposer update时非常慢,那么我们可以更换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中自动加载了所有第三方库,所以我们不再需要自己引入。

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

访问 ,即可看到炫酷的报错页面,没错,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());}

访问 ,即可看到炫酷的变量输出页面,没错,var-dumper是一个变量显示插件。

源码分享

书签

转载地址:http://gqzmx.baihongyu.com/

你可能感兴趣的文章
南通市城管局推动“数字化城管”向“智慧城管”升级
查看>>
湖北移动物联网为三峡库区保驾护航
查看>>
《深入理解OSGi:Equinox原理、应用与最佳实践》一3.7 本章小结
查看>>
从小数据分析到大数据平台,这十几年来大数据开源技术是如何演进的?
查看>>
《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一第3章 查 询 转 换
查看>>
中兴通讯扬帆国际化难掩主场失意:内外销市场冰火两重天
查看>>
MIT最新发布编程语言Milk,加速大数据时代并行运算
查看>>
迪普科技亮相第五届全国信息安全等级保护技术大会
查看>>
LG联发科因侵权遭AMD起诉 ITC已受理
查看>>
你的企业有这样的网络安全盲点吗?
查看>>
头皮屑太多要注意 专家说竟然是得了这种病!
查看>>
公共云,私有云与混合云探索使用案例
查看>>
AVAYA-RTX统一通信解决方案
查看>>
ASP.NET开源博客QBlog模板皮肤制作教程索引贴
查看>>
腾讯云宣布出海计划 推多款新产品
查看>>
Facebook和用户界面会如何扭曲你说的话
查看>>
ZooKeeper 集群的搭建
查看>>
Win 10份额为啥不升反降?全是广告谁想用
查看>>
网络安全法实施 个人信息保护立法还需做什么
查看>>
2017年,这两个大数据岗位一定会火!
查看>>