您的位置:首页 > 其它

codecasts之composer初识

2018-03-02 23:14 127 查看
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上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: