composer 遵循PSR准则,解决安装依赖。

安装(linux)

#下载安装脚本 - composer-setup.php - 到当前目录。
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" #执行安装过程
php composer-setup.php #删除安装脚本。
php -r "unlink('composer-setup.php');"
#全局安装
sudo mv composer.phar /usr/local/bin/composer #改为中国全量镜像(项目composer.josn 尾部添加)
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}

项目目录下执行安装依赖:

composer install

安装单个组件:

composer require guzzlehttp/guzzle;     #http处理
composer require league/csv; #csv文件处理
#组件安装到 verdor/ 目录中,添加记录到composer.josn和composer.lock文件中。

composer.lock 文件

列出项目中所有的PHP组件,以及组建的具体版本号。其实就锁定了项目,让项目只能使用具体版本的PHP组件。

  • 优点

    • 版本统一,代码一致,易于管理
    • 降低组件版本差异导致缺陷的风险
  • 缺点

    • 不会安装最新的版本
    • 若要更新执行 composer update

composer.josn 文件

信息查找、安装和自动加载PHP组件。

自动加载PHP组件

composer下载PHP组件会为项目的所有依赖创建一个符合PSR标准的自动加载器:

<?php
require 'vendor/autoload.php';

其实就是创建 autoload.php的PHP文件,保存在verdor/下。

组件包库地址

https://packagist.org/

实例

扫描一个csv文件中的URL,找出死链。

实现:

扫描CSV文件,查找死链

csv文件

执行

php ./yii scan/index --argv=url.csv

依次打印出 死链url。

composer私有仓库

创建组件,基于版本控制,托管github;注册Packagist,Submit Packagist->Repository URL->Check,提交到Packagist 即建立组件。

composer 应用【Modern PHP】的更多相关文章

  1. [laravel] Laravel - composer install

    #composer installLoading composer repositories with package informationUpdating dependencies (includ ...

  2. laravel composer vendor 目录加载类库详细 之后做说明

    composer installLoading composer repositories with package informationInstalling dependencies (inclu ...

  3. Laravel Composer and ServiceProvider

    Composer and: 创建自定义类库时,按命名空间把文件夹结构组织好 composer.json>autoload>classmap>psr-4 composer dump-a ...

  4. 基于Composer Player 模型加载和相关属性设置

    主要是基于达索软件Composer Player.的基础上做些二次开发. public class ComposerToolBarSetting { public bool AntiAliasingO ...

  5. Composer概述及其自动加载探秘

    composer概述 一开始,最吸引我的当属 Composer 了,因为之前从没用过 Composer . Composer 是PHP中用来管理依赖关系的工具,你只需在自己的项目中声明所依赖的外部工具 ...

  6. composer 出现 configuration does not allow connection to http.......

    出现这样的问题是,镜像使用的是http,而原地址是需要https,所以配置下关掉https就好了. 我们来个全局设置的方法: composer config -g secure-http false ...

  7. [Modern OpenGL系列(四)]在OpenGL中使用Shader

    本文已同步发表在CSDN:http://blog.csdn.net/wenxin2011/article/details/51347440 在上一篇文章中已经介绍了OpenGL窗口的创建.本文接着说如 ...

  8. [Modern OpenGL系列(三)]用OpenGL绘制一个三角形

    本文已同步发表在CSDN:http://blog.csdn.net/wenxin2011/article/details/51347008 在上一篇文章中已经介绍了OpenGL窗口的创建.本文接着说如 ...

  9. [Modern OpenGL系列(二)]创建OpenGL窗口

    本文已同步发表在CSDN:http://blog.csdn.net/wenxin2011/article/details/51295663 在博主的上一篇文章中已经介绍了OpenGL开发环境的搭建,本 ...

随机推荐

  1. 很乱,临时保存,自定义v-model

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  2. 闲话handle和handler

    虽然handle和handler只有一个字符之差,但在计算机的世界里,含义却大相径庭. 1. 先说说handle 北京话说"一边儿玩儿去,玩勺子把儿去","勺子把儿&qu ...

  3. gulp教程之gulp中文API

    1.gulp.src(globs[, options]) 1.1.说明:src方法是指定需要处理的源文件的路径,gulp借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入 ...

  4. 屏幕置顶(WindowManager服务)

    https://www.cnblogs.com/mythou/p/3244208.html

  5. DateTime compare

    DateTime t1 = new DateTime(100); DateTime t2 = new DateTime(20); if (DateTime.Compare(t1, t2) > 0 ...

  6. nginx timeout 配置 全局timeout 局部timeout web timeout

    nginx比较强大,可以针对单个域名请求做出单个连接超时的配置. 比如些动态解释和静态解释可以根据业务的需求配置 proxy_connect_timeout :后端服务器连接的超时时间_发起握手等候响 ...

  7. angularjs ui-grid cellTemplate checkbox ng-checked

    {     name: '@Localizer["ActiveInd"]',     field: 'ActiveInd',     enableSorting: false,   ...

  8. 联想G480安装固态硬盘过程

    联想G480安装固态硬盘过程  百度上面图文并茂: https://jingyan.baidu.com/article/e2284b2b68eaf6e2e6118de1.html

  9. c#项目代码风格要求

    代码风格没有正确与否,重要的是整齐划一,这是我拟的一份<.Net 项目代码风格要求>,供大家参考. 1. C# 代码风格要求 1.1注释 类型.属性.事件.方法.方法参数,根据需要添加注释 ...

  10. 优化SQLServer

    由于SQLServer,数据文件mdf过大,造成系统异常卡 一. 更改隔离级别 ALTER DATABASE [B2EC] SET SINGLE_USER WITH ROLLBACK IMMEDIAT ...