首页 » LANMP » php » 正文

关于Composer的使用

Composer 是 PHP 的一个依赖管理工具

非常类似
1、NodeJS的NPM
2、JAVA的maven

我们直接来使用一下就了解它到底是啥

我们先用一下PHP的另外一个参数
-r

之前我们使用的是php 文件名(如index.php)
这个文件里面必须有 <?php xxxxx?>

而用-r 可以直接执行 php代码

 
 
如果是带https,可以用以下代码

然后执行:
https://getcomposer.org/installer
这就是一个php文件,你可以选择在浏览器中下载下来。

也可以使用curl工具 (有着命令行浏览器的美称)

  (文件名随意)

下载了一个 php
 
 

安装openssl扩展

无需重新编译PHP的方法

或者进入PHP源码目录下的ext目录,再进入openssl目录
执行   (复制一份出来,phpize需要找到的是config.m4文件)

然后
然后
会在你的扩展目录下生成一个 openssl.so
在你的php.ini中加入 它 extension=openssl.so

开始安装Composer

用上面步骤下载生成的composer.php 执行一下

最后会生成一个composer.phar
把它放入全局
echo $PATH
把它放入你喜欢的其中一个路径。譬如 /usr/local/bin里面
  (后缀名省略,无所谓的)
 
 

composer 使用

一.初始化Composer配置文件
1、首先新建一个PHP项目文件夹

2、在当前项目文件夹下执行 composer init (很类似于使用NPM init)

3、你会发现,项目根目录下自动会产生一个 composer.json 文件。此时是空的

 

二.我们来写个测试的方法
1、我们创建一个文件夹叫common (专门放一些赤裸裸的函数文件)

2、在里面随便建立一个functions.php

3、写一个方法

三.引用方法
常规的引用方法,我们肯定需要
然后才能调用我们在外部类里写的方法
有了Composer后呢
在composer.json里加入以下配置

在当前文件夹下执行命令
接下来会生成一个vendor文件夹,里面有个autoload.php

我们只需要在我们需要的页面中引用vendor下的autoload.php就可以了

如果是类呢?
在配置文件里加入

依然使用

四.添加composer镜像源
介绍一个国内镜像
https://pkg.phpcomposer.com/

按照它的方法执行

 
 

我们找个其实挺好用又简单的包

NOTORM
是一个非常轻量的ORM库,使用PDO。效率高,代码编写方便

进入官方镜像源搜索关键字ORM
https://packagist.org

最基本参数
(1)require
列出包所依赖的包。除非这些依赖已经存在,否则这个包不会被安装。
(2)require-dev(root-only)
列出开发这个包(或跑测试等等)所依赖的包。在使用 install 命令时,只有带上 “–dev” 参数才能安装 dev 包。在使用 update 命令时,带上 “–no-dev” 则不更新。
(3)conflict
列出包会和哪些包发生冲突。它们将不被允许和你的包一起安装。如果约束了版本,则只会针对特定的版本。
(4)replace
列出哪些包要被这个包替代。
(5)provide
这个包所推荐的包列表。这个对公共接口最有用,一个包可以依赖一个虚拟的 logger 包,而实现 logger 接口的库可以放到 provide 字段中。

以”安装”NOTORM为例
我们填入

然后执行
如果一切正确,则会在vendor文件夹下创建相应的内容
如果下载不下来,可以试试:

测试代码

上传自己的composer项目

先创建一个自己的项目,比如:joefom/etcd
然后需要一个git服务器,我这里就用github的了。

1.创建composer.json,并提交到GitHub

在项目根目录下执行

会自动生成 composer.json,在composer.json里写入如下内容

将整个项目提交到github,提交完成后复制git地址。如:git@github.com:joefom/etcd.git

2.提交到packagist

packagist 注册一个账号,将复制下来的git地址提交到 https://packagist.org/packages/submit

submit后,提示

“The package name found for your respository is joefom/etcd,press Submit to confirm”

则表示提交成功!

3.测试安装自己提交的项目

在另一个项目中 ,创建composer.json,写入如下内容

在项目根目录执行

如果一切顺利,etcd会被下载到你的vendor目录里。

发表评论

正在加载验证码......

请先完成验证