【Composer】实战操作一:使用库
2016-11-01 10:00
246 查看
前言
前面我们简单介绍了composer的安装 以及 如何安装库本文目的
主要实战讲解如何使用库,主要是PSR-0 和 PSR-4的区别,以及如何在代码中引用。关于PSR-0和PSR-4的具体区别可以参考博文 PSR : php编码规范演示代码
演示代码都在 https://github.com/apanly/composer_helloworld 中,有兴趣的可以clone实战内容
引用资源
phpoffice/phpexcelmonolog/monolog
apanly/browser-detector (本人自己的库,后续会讲解如何创建自己的库)
composer.json文件如下
{ "require":{ "phpoffice/phpexcel": "1.8.0", "monolog/monolog": "^1.21", "apanly/browser-detector": "dev-master" }, "repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } } }
开始准备
$ git clone https://github.com/apanly/composer_helloworld $ cd composer_helloworld $ php composer.phar install #生成vendor目录以及下载composer.json配置的库
演示1
index.php主要演示使用apanly/browser-detector库,本库使用PSR-4自动加载$ php index.php #使用apanly/browser-detector库 Chrome Android Meizu
演示2(PSR-0)
psr4.php 使用phpoffice/phpexcel,本库使用PSR-0标准,规则讲解如下根据博文中( http://www.vincentguo.cn/default/173.html )介绍的,使用PSR-0规则自动加载,对于最后一个\之后的类名,如有下划线会转化成路径分隔符
PHPExcel_IOFactory 就会转化为 PHPExcel\IOFactory
按照配置的规则
"autoload": {
"psr-0": {
"PHPExcel": "Classes/"
}
}
PHPExcel_IOFactory => Classes/PHPExcel/IOFactory.php
演示代码如下
<?php require(__DIR__.'/vendor/autoload.php'); $path = 'test.xlsx'; $objPHPExcel = PHPExcel_IOFactory::load( $path );
演示3(PSR-4)
psr4.php 使用 monolog/monolog 库,本库使用psr-4自动加载,规则讲解如下根据博文中(http://www.vincentguo.cn/default/173.html)介绍的,使用PSR-4规则自动加载
按照配置的规则
"autoload": {
"psr-4": {"Monolog\\": "src/Monolog"}
}
Monolog\Logger => src/Monolog/Logger.php
Monolog\Handler\StreamHandler => src/Monolog/Handler/StreamHandler.php
演示代码如下
<?php require(__DIR__ . '/vendor/autoload.php'); $log = new Monolog\Logger('name'); $log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING)); $log->addWarning('Foo');
总结
推荐使用psr-4规范,因为这样更像命名空间并且也更简洁时刻记住psr-0 和 psr-4的区别,这样就可以很方便的使用第三方库,避免重复造轮子
记得使用国内源(***的绕行)
原文地址:【Composer】实战操作一:使用库
标签:composer psr phpexcel phpoffice monolog browser-detector psr0 psr-0 psr4 psr-4
相关文章推荐
- 【Composer】实战操作一:使用库
- 【Composer】实战操作一:使用库
- 【Composer】实战操作一:使用库
- 第59课:使用Java实战RDD和DataFrame转换操作
- SPARK 使用Java 在IDE中实战RDD和DataFrame动态转换操作
- .NET使用Redis基本操作实战
- 使用String类操作字符串的实战练习
- jQuery 实战读书笔记之第五章:使用 jQuery 操作页面
- iOS项目开发实战——使用定时器实现循环操作
- 【Composer】实战操作二:自己创建composer包并提交
- 第59课:使用Java和Scala在IDE中实战RDD和DataFrame转换操作’学习笔记
- 第60课:使用Java和Scala在IDE中实战RDD和DataFrame动态转换操作学习笔记
- iOS项目开发实战——使用手势识别判断用户操作
- Django使用mysql操作实战系列之七
- 【Composer】实战操作二:自己创建composer包并提交
- 【Composer】实战操作二:自己创建composer包并提交
- Composer 基本指令操作使用
- Neo4j实战-使用python语言操作neo4j数据库
- 【Composer】实战操作二:自己创建composer包并提交
- 挑战极限 - 测试驱动开发实战及DUnit 使用