codecasts之composer初识

1、composer简介和安装

composer是php的一个包依赖管理工具。它允许你申明你的项目所依赖的代码库,它会在你的项目中安装他们。

  • 依赖管理
    composer不是一个包管理器。它涉及packages和libraries。它在每个项目的基础之上进行管理。会在项目的某个文件中(例如vendor)中进行安装,默认情况下他不会在全局安装任何东西,因此这仅仅是一个依赖管理。
    a、一个项目中依赖若干库
    b、其中一些库依赖其他库
    c、你声明你所依赖的东西
    d、composer 会找出哪个版本的库需要安装并安装他们
    上面应用场景需要使用composer
  • 声明依赖关系
    例如你正在创建一个项目,需要一个库来做日志记录monolog,此时就需要创建一个composer.json文件描述项目依赖关系来将monolog添加到项目当中
    {
     "require":{
        "monolog/monolog":"1.2.*"
      }   
    }
  • 系统要求
    composer对php系统的版本要求是5.3.2+
    composer支持多平台

2、package引用和版本
      包依赖关系定义在composer.json文件当中的require字段
      执行composer install 命令将以来包下载到项目当中,你会发现项目中多了一个vendor目录,和一个composer.lock文件,
      vendor/autoload.php执行自动加载。

  • composer.json文件中牵扯到依赖包的版本号 ~ ^  ,执行composer update 即可执行更新操作
  • packagist.org网站中可以查询有哪些框架,哪些packae

3、理解composer install 和 composer update
      执行composer install 命令的时候会先读取composer.lock文件,会按照该文件里面package字段的配置,下载安装依赖包,如果没有composer.lock文件,就会读取composer.json文件,并按照require字段,下载安装依赖包。
      执行composer update命令的时候,会先读取composer.json文件里面的包依赖关系配置,并下载相应版本的依赖包,重新生成composer.lock文件

  •  所以在项目当中,一定保存好composer.lock文件,以免不同的版本有重大改变的时候,程序出现各种问题。
4、composer自动加载简析
     
//index.php文件中
requier 'vendor/autoload.php';
//在项目当中只执行这一句,但背后composer做了很多,在每个依赖包文件目录当中都有一个composer.json文件,里面的autoload字段定义了与命名空间有关的内容,在verdor/autoload.php文件中,加载autoload_real.php文件,执行getLoader()方法,在该方法里又加载aotoload_namespaces.php文件,得以实现相关的自动加载

5、Find  A Package

  • 方法一:进入packagist.org,搜索你想要的依赖包,执行composer require ***/***命令即可安装
  • 方法二:在命令行中执行composer search  packageName 命令,可以执行composer show 命令查看包信息,再执行composer require命令进行安装
6、使用composer创建项目
     创建项目使用composer create-project命令

     eg composer create-project   lim/lim  lim-2.6.2  2.6.2 其中lim-2.6.2是项目名称,后面的2.6.2是指定的版本号,若不填项目名称的话,默认的项目名称与依赖包名称一致

7、理解 Require Dev
      composer.json文件中会存在require-dev字段,它的意思就是本地开发环境中需要的package依赖包,线上并不需要。
      线上跑的话执行 composer install --no-dev

8、composer 运行shell命令
      具体实现是在composer.json文件里面的scripts字段定义的对象,解释了在什么时机执行什么操作

9、发布自己的package

1.在gthub上新增一个项目,带上readme文件
2.在本地环境执行git clone,克隆项目
3.在项目根目录当中执行composer init命令会询问一些信息创建composer.json文件
4.将本地项目提交到git仓库中
5.拥有composer.json文件后就可以将此项目,这里叫做package,提交到packagist.org网站中
6.具体怎么提交到packagist.org中,首先拥有该网站的帐号
7.登录以后,点击submit,就可以提交
8.提交以后,页面上会提示webhooks,这时需要在github上的setting里面的webhooks进行相关设置,设置好以后,每当github上有更新,就会同步到packagist.org上






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值