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. python-fork聊天室

    服务端 #!/usr/bin/python from socket import * import sys import os class Node(object): def __init__(sel ...

  2. MultipartFile的使用小结

    Multipartfile转File?File转MultipartFile?可千万别转晕了. 题图:from Google 1. MultipartFile类型转File类型 想要将Multipart ...

  3. strcpy和strncpy

    在c语言中,对于简单变量,如int型.double型,直接使用赋值符号“=”,即可完成赋值,如 int a=10: int b: b=a: 即可完成用a给b赋值. 但是对于字符串,这样赋值是不准确的. ...

  4. JQuery Div scrollTop ScrollHeight

    jQuery 里和滚动条有关的概念很多,但是有三个属性和滚动条的拖动有关,就是:scrollTop.scrollLeft.scrollHeight.其中 scrollHeight 属性,互联网上几乎搜 ...

  5. JetBrains 产品激活码

    激活码 K03CHKJCFT-eyJsaWNlbnNlSWQiOiJLMDNDSEtKQ0ZUIiwibGljZW5zZWVOYW1lIjoibnNzIDEwMDEiLCJhc3NpZ25lZU5hb ...

  6. 决策树遇到sklearn.exceptions.NotFittedError: XXX instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.的解决方案

    1.异常信息: C:\Python36\python36.exe "E:/python_project/ImoocDataAnalysisMiningModeling/第6章 挖掘建模/6- ...

  7. java并发编程(5)并发程序测试

    并发程序测试 一.正确性测试 如:对一个自定义缓存的测试 //自定义的缓存 public class SemaphoreBoundedBuffer <E> { private final ...

  8. 通过POST请求上传文件

    转自:https://blog.csdn.net/zhangge3663/article/details/81218488 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交 ...

  9. Java如何大批量从json数据源中按指定符号隔字符串,并修改、删除数据

    原文出自:https://blog.csdn.net/seesun2012 package com.seesun2012.com; /** * Java大批量修改.删除数据,按指定标识符分隔字符串 * ...

  10. Java开发学习--Java 中基本类型和包装类之间的转换

    Java 中基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之 ...