经常看到各种开源库推荐使用 composer 安装代码,却总是看不懂怎么用composer,

这几天静下心来学习了composer的使用,发现这可真是一个好东西,先贴上一个讲的很棒的视频教程:

PHP Composer 视频教程

视频讲的很详细,我这里主要整理一下 使用环境的搭建 , 基本用法 , 发布方法

一.环境搭建

需要用到的软件:(为了方便贴的百度盘, 挂了的话也可百度搜索,获取最新版本, 都是免费的)

1.git客户端  ( 密码:2dve )

2.php集成环境(资源为php工具箱 , xmapp ,wamp,phpStudy 皆可) ( 密码: 29bh)

3.composer安装包  ( 密码: kyd1)

4.sourcetree( git 图形界面应用) ( 密码: rvfn)

安装就是 点同意协议, 下一步, 下一步....完成.

注意按排序安装,

composer 需要选择php.exe,对应php环境所使用的php.exe;

安装php工具箱后, composer 安装时选择如下, 选择php环境所用的php版本下的php.exe即可

composer 在安装第三方库时也要用到git,所以也要优先安装git.

sourcetree 需要用到git,可用软件内置的git,若先安装了git 会自动使用系统git.

sourcetree 安装后首次运行需要登录或注册账号才可使用,可以通过 跳过登录 ( 点击查看教程 ) 进入.

二.基本使用:

本文代码托管库使用的是国内的 码云.

1.在代码托管库中新建项目,使用托管库便于未来发布自己的项目供他人使用

2.用 sourcetree 克隆项目到本地

本文这里克隆到了本地的php环境根目录下,便于直接运行项目,至此完成了项目的线上及线下部署

3.为项目构建composer管理:

首先打开cmd窗口 ( win+R 输入cmd 然后回车 );

输入项目所在盘符,如 d: 然后回车,输入 'cd 项目的完整路径', 如: cd D:\myphp_www\PHPTutorial\WWW\test ,按下回车,进入项目目录

接着输入 composer init ,回车 , 开始为项目构建 composer 配置 ,按引导一步步填写即可:

详细的命令用法可参考 composer中文手册

完成后项目中会出现一个json文件,就是刚才cmd填写的配置文件,第三方包可在search for a packet选项中填写,也可稍后用require命令引入

在cmd中 执行install 完成该项目 composer 的安装  :

安装完成后 ,可发现项目中多了个 vendor 文件夹,该文件夹就是刚刚安装的composer, 对该项目的所有依赖进行管理

引用库时大多的库存放在github上, 因为网络原因经常会下载缓慢甚至下载失败,解决方法:使用梯子 或 使用 国内镜像.

本文使用国内镜像, 首先进行镜像配置

require 引入第三方库:( 库可在 packagist.org 网站上搜索获取  packagist.org相当于一个应用商店列表 , 库作者将自己的库发布到此网站后, composer便可进行库的引入),

如 引入一个验证码库

用 require 命令选择 包和版本号后 即可自动建立依赖并下载库,

安装完成后可以看到项目的 vendor 文件夹中就有了第三方库

至此项目可以直接使用该第三方库了

库的用法作者会给出,按照说明使用即可

composer提供了自动加载机制, 引入vendor/autoload.php即可使用自动加载

使用结果:

当前项目使用自动加载需要在 composer.json 配置命名空间方可使用   配置方法参考

修改 composer.json 后,输入 composer dump 即可刷新配置并应用

三.发布自己的库

只要对自己的项目进行了composer 依赖配置 ( 即项目中包含配置好的 composer.json文件 ) ,即可将自己的项目发布到 packagist.org 供他人使用!

1.注册或登录账户

2.点击submit

3.输入自己项目的线上仓库地址

4.检测通过后 点击submit 即成功发布,至此 他人就可使用我们的项目了!

5.如果我们的项目有了push更新,则需要到packagist手动更新,他人才能用到最新的版本

 为避免频繁手动更新,我们需要在托管库中设置webhook,

使得项目的push更新能自动触发packagist更新 到对项目最新版本的引用

以码云为例:

点击提交,至此完成了项目在packagist.org上的自动更新

url如何填写?  查看说明

小结

composer 解决了 php 项目的依赖管理 ( 仅使用一个json配置文件 ) ,方便了项目的灵活组建,即使不使用第三库,其基础的自动加载功能也十分好用.

利用 composer 发布自己的项目,可以方便他人的使用,带来更多的使用反馈,同时也为未来的项目提供便利.

希望大家都能轻松的学会使用 composer ! 如有疑问欢迎留言!

php 利用composer引用第三方类库构建项目的更多相关文章

  1. Android的项目不能直接引用可移植类库的项目解决方法

    深圳_exception() 10:25:51 Android的项目不能直接引用可移植类库的项目,但是可以引用可移植类库生成的dll,这就意味着无法直接断电调试可移植类库上海-黄药师() 10:26: ...

  2. tp5.1引用第三方类库

    1.TP5第三方类库全部放在Extend目录内,如果是放在Extend目录下,则不需要再类库里声明namespace.直接 new \YourClass() 即可 2.如果你的类库在Extend的子目 ...

  3. ios 下引用第三方类库报错

    在最近刚接触的ios的一个项目中用到了腾讯的登录sdk,从git下下来之后编译报错,找不到文件,文件明明已经加入到项目中,为何找不到,由于刚接触ios开发,所有不知道什么原因,经过Google才知道 ...

  4. IOS 编程中引用第三方的方类库的方法及常见问题

    方法一:直接复制全部源文件到项目中 这样的方法就是把第三方类库的全部源文件拷贝到项目中,直接把全部.h和.m文件拖到XCode项目中就可以. 注意: 1. 假设第三方类库引用了一些系统自带类库,那么在 ...

  5. 在ios中使用第三方类库

    在项目开发中经常会用到一些第三方类库,通常有两种方法来做到:一种方法是直接把所有的.h和.m文件复制到项目中:另一种方法是把.xcodeproj拖到项目中生成静态链接库并引用. 方法一:直接复制所有源 ...

  6. composer安装第三方库出现需要认证信息等原因

    最近,在学习使用thinkcmf的时候,使用composer安装第三方类库,遇到了需要输入验证码的问题,援引https://laravel-china.org/topics/17893该链接中的讨论, ...

  7. Webpack抽离第三方类库以及common解决方案

    前端构建场景有两种,一种是单页面构建,另一种是多入口构建多页面应用程序(我视野比较小,目前就知道这两种),下面我们针对这两种场景总结了几种抽离第三方类库以及公共文件的解决方案. 如果有哪些地方优化不周 ...

  8. 使用composer命令加载vendor中的第三方类库

    1.首先下载需要的第三方类库,放在TP框架下的vendor文件夹下 2.给第三方类库SDK写上命名空间,命名空间为该类库的文件夹对应的名字 3.在composer.json文件中添加需要加载的第三方类 ...

  9. ASP.NET CORE MVC 2.0 项目中引用第三方DLL报错的解决办法 - InvalidOperationException: Cannot find compilation library location for package

    目前在学习ASP.NET CORE MVC中,今天看到微软在ASP.NET CORE MVC 2.0中又恢复了允许开发人员引用第三方DLL程序集的功能,感到甚是高兴!于是我急忙写了个Demo想试试,我 ...

随机推荐

  1. 设计模式在Spring

    设计模式在spring中的使用1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了:2.模版模式,这个也很明显,在各种BeanFactory以及 ...

  2. XHTML教会我的一些东西-1

    第一次写博客,虽然以前写作文是我的强项,我也很能说,但是似乎现在这种能力正在退化.不知为什么,到了大学之后我就变得跟以前不一样,似乎是回到了小学时的我.我在大学开始变得内向.沉默.不去主动和别人交谈. ...

  3. 在 CentOS7 上安装 swftools

    1.从官网下载 swftools,这里下载的是 0.9.2 版本: wget http://www.swftools.org/swftools-0.9.2.tar.gz 2.下载后得到 swftool ...

  4. webpack-webpackConfig-配置说明-多页面

    入口文件entry 配置 /* 例子: 项目目录结构: ├─src # 当前项目的源码 ├─pages # 各个页面独有的部分,如入口文件.只有该页面使用到的css.模板文件等 │ ├─alert # ...

  5. vue 实现二选一列表

    <template> <div> <ul> <li :class="{active:classIndex==classNum}" clas ...

  6. Java中的字符集

    Java中的字符集 1.字符集概述 字符集是各国家文字与字符编码对照表.字符可以看成是计算机中展示的图案效果,每个字符集都对每一种图案进行编码,有着一对一的对应关系.因此进行字符输出时,都需要指定使用 ...

  7. linux基础命令-文件查看类命令cat/tac/more/less/tail/head

    cat 查看文本文件内容 -b :给每一行编号不包括空白行 -n:给所有行编号 [root@host01 tmp]# cat -An /root/anaconda-ks.cfg # Kickstart ...

  8. c++的bind1st()与bind2nd() 二元算子转一元算子

    bind1st()和bind2nd()是两个函数,用于将二元算子转成一元算子. 何谓二元算子? 比如< > =等等这些就是二元算子,即需要两个操作数的运算符. 何谓一元算子? 比如++ - ...

  9. IIS7 http自动跳转到https(通过编辑Web.config实现)

    本文摘自:https://www.cnblogs.com/wxbug/p/7054972.html 1.下载安装URL重写模块:Microsoft URL Rewrite Module 32位:htt ...

  10. 【CCPC-Wannafly Winter Camp Day4 (Div1) H】命命命运(概率DP)

    点此看题面 大致题意: 有\(6\)个人玩大富翁,共有\(n\)块地,进行\(500\)轮,已知每个人掷骰子掷出\(1\sim6\)的概率.当某人到达一块未被占领的地时,他可以占领它.求最后每个人占有 ...