前言

前面我们简单介绍了composer的安装 以及 如何安装库

本文目的

主要实战讲解如何使用库,主要是PSR-0 和 PSR-4的区别,以及如何在代码中引用。关于PSR-0和PSR-4的具体区别可以参考博文 PSR : php编码规范

演示代码

演示代码都在 https://github.com/apanly/composer_helloworld  中,有兴趣的可以clone

实战内容

引用资源

  • phpoffice/phpexcel

  • monolog/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.54php.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.54php.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】实战操作一:使用库的更多相关文章

  1. composer安装第三方的库packagist.org(laravel框架引入第三方库)

    建立composer.json composer require phpoffice/phpexcel //安装一个excel扩展库 composer require gregwar/captcha ...

  2. Composer 安装 Jira API 库

    环境要求: PHP >= 5.5.9 php JsonMapper phpdotenv 安装 下载安装 Composer curl -sS https://getcomposer.org/ins ...

  3. composer 使用详解

    1,安装 php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r &quo ...

  4. 使用composer安装项目依赖

    Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们 下载并安装composer composer官方文档有好几种安装方法,此处只介绍我实验过 ...

  5. 【转载】PHP 开发者该知道的 5 个 Composer 小技巧

    Composer是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer PHP依赖管理的新时代>.本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方 ...

  6. 5 个 Composer 小技巧

    Composer是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer PHP依赖管理的新时代>.本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方 ...

  7. PHP 开发者该知道的5个 Composer 小技巧

    Composer是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer PHP依赖管理的新时代>.本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方 ...

  8. php composer

    对于现代语言而言,包管理器基本上是标配.Java有Maven,Python有pip,Ruby有gem,Nodejs有npm.PHP的则是PEAR,不过PEAR坑不少: 依赖处理容易出问题 配置非常复杂 ...

  9. Composer的使用

    安装 curl -sS https://getcomposer.org/installer | php 你可以使用--install-dir选项将Composer安装到指定的目录,例如: curl - ...

随机推荐

  1. [转]使用 HTML5 IndexedDB API

    本地数据持久性提高了 Web 应用程序可访问性和移动应用程序响应能力 索引数据库 (IndexedDB) API(作为 HTML5 的一部分)对创建具有丰富本地存储数据的数据密集型的离线 HTML5 ...

  2. spark 部署问题

    spark的web UI 端口设置:spark-env.sh 中设置SPARK_MASTER_WEBUI_PORT 为自己想设置的端口号. 其他worker 的web UI 端口默认:8081 mas ...

  3. thrift 学习

    入门教程: http://blog.zhengdong.me/2012/05/10/hello-world-by-thrift-using-java

  4. pig相关

    1. 重命名pig job name: 在Pig脚本中的一开始处,写上这一句: set job.name 'This is my job'; 2. 设置pig参数: 允许pig时,输入如下: pig ...

  5. [转]复制虚拟机后linux中的eth0变成eth1问题

    为什么原来的eth0会变成eth1? 很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名.udev会在系统引导的过程中识别网卡,将mac地址和网卡 ...

  6. 使用 google gson 转换Timestamp或Date类型为JSON字符串.

    http://blog.csdn.net/z69183787/article/details/13016289 创建类型适配类: import java.lang.reflect.Type; impo ...

  7. ACM 喷水装置(二)

    喷水装置(二) 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000)个点状的 ...

  8. ACM +-字符串

    +-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 Shiva得到了两个只有加号和减号的字符串,字串长度相同.Shiva一次可以把一个加号和它相邻的减号交换. ...

  9. 开篇&TexturePacker打出图集给UGUI使用

    开篇: 前段时间,网上流出了一套手游源码,本想着把服务器端搭一下,给自己认识小伙伴们调试着把这套源码学习一下.于是就买一个阿里云服务器,可是花了几天时间,就是run不起来了啊.还好网上已经有人搭出来了 ...

  10. BZOJ4154: [Ipsc2015]Generating Synergy

    Description 给定一棵以1为根的有根树,初始所有节点颜色为1,每次将距离节点a不超过l的a的子节点染成c,或询问点a的颜色   Input 第一行一个数T,表示数据组数 接下来每组数据的第一 ...