dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7318|回复: 196

[其他] php 利用composer引用第三方类库构建项目

  [复制链接]
  • TA的每日心情
    奋斗
    6 天前
  • 签到天数: 237 天

    [LV.7]常住居民III

    4425

    主题

    1432

    帖子

    9875

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

    积分
    9875
    发表于 2018-11-15 11:00:53 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    经常看到各种开源库推荐使用 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即可
    1241467-20180904224232759-2039724121.png

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

    sourcetree 需要用到git,可用软件内置的git,若先安装了git 会自动使用系统git.
    sourcetree 安装后首次运行需要登录或注册账号才可使用,可以通过 跳过登录 ( 点击查看教程 ) 进入.

    二.基本使用: 本文代码托管库使用的是国内的 码云.
    1.在代码托管库中新建项目,使用托管库便于未来发布自己的项目供他人使用
    1241467-20180905000935866-1434512653.png

    2.用 sourcetree 克隆项目到本地
    1241467-20180905001106057-1345472828.png


    1241467-20180905001242920-2126387407.png

    本文这里克隆到了本地的php环境根目录下,便于直接运行项目,至此完成了项目的线上及线下部署
    3.为项目构建composer管理:
    首先打开cmd窗口 ( win+R 输入cmd 然后回车 );
    输入项目所在盘符,如 d: 然后回车,输入 'cd 项目的完整路径', 如: cd D:myphp_wwwPHPTutorialWWW        est ,按下回车,进入项目目录
    1241467-20180905002607320-1594378187.png


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

    详细的命令用法可参考 composer中文手册
    完成后项目中会出现一个json文件,就是刚才cmd填写的配置文件,第三方包可在search for a packet选项中填写,也可稍后用require命令引入
    1241467-20180905003803084-790028805.png

    在cmd中 执行install 完成该项目 composer 的安装  :
    1241467-20180905004935863-958860317.png

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

    引用库时大多的库存放在github上, 因为网络原因经常会下载缓慢甚至下载失败,解决方法:使用梯子 或 使用 国内镜像.
    本文使用国内镜像, 首先进行镜像配置
    1241467-20180905101007947-812152208.png

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


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


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

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

    库的用法作者会给出,按照说明使用即可
    1241467-20180905102720909-1056046580.png

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


    使用结果:
    1241467-20180905103415970-379715878.png

    当前项目使用自动加载需要在 composer.json 配置命名空间方可使用   配置方法参考
    修改 composer.json 后,输入 composer dump 即可刷新配置并应用

    三.发布自己的库只要对自己的项目进行了composer 依赖配置 ( 即项目中包含配置好的 composer.json文件 ) ,即可将自己的项目发布到 packagist.org 供他人使用!
    1.注册或登录账户
    1241467-20180905104751924-347032427.png

    2.点击submit
    1241467-20180905105024923-763750734.png


    3.输入自己项目的线上仓库地址
    1241467-20180905105244946-1911138635.png

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

    1241467-20180905105555931-1829745125.png

    5.如果我们的项目有了push更新,则需要到packagist手动更新,他人才能用到最新的版本
     为避免频繁手动更新,我们需要在托管库中设置webhook,
       使得项目的push更新能自动触发packagist更新 到寻ء
    1241467-20180905110145923-1477348904.png
    1241467-20180905110219925-2101322300.png
    1241467-20180905110450926-694007253.png
    回复

    使用道具 举报

    该用户从未签到

    23

    主题

    7844

    帖子

    984

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    984

    发表于 2018-11-15 11:03:02 | 显示全部楼层
    有竞争才有进步嘛

    该用户从未签到

    18

    主题

    7874

    帖子

    1016

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1016

    发表于 2018-11-15 12:18:54 | 显示全部楼层
    支持一下:lol

    该用户从未签到

    21

    主题

    7719

    帖子

    998

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    998

    发表于 2018-11-15 15:51:12 | 显示全部楼层
    有道理。。。

    该用户从未签到

    22

    主题

    7875

    帖子

    990

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    990

    发表于 2018-11-15 16:52:28 | 显示全部楼层
    看帖回帖是美德!:lol

    该用户从未签到

    22

    主题

    7875

    帖子

    990

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    990

    发表于 2018-11-15 16:53:46 | 显示全部楼层
    有竞争才有进步嘛

    该用户从未签到

    29

    主题

    7878

    帖子

    1075

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1075

    发表于 2018-11-16 08:35:57 | 显示全部楼层
    学习了,不错,讲的太有道理了

    该用户从未签到

    54

    主题

    7806

    帖子

    995

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    995

    发表于 2018-11-16 21:02:37 | 显示全部楼层
    学习了,不错,讲的太有道理了

    该用户从未签到

    39

    主题

    7819

    帖子

    1026

    积分

    终身会员[B]

    积分
    1026

    发表于 2018-11-16 22:59:45 | 显示全部楼层
    支持一下:lol

    该用户从未签到

    30

    主题

    7851

    帖子

    1002

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1002

    发表于 2018-11-17 05:40:42 | 显示全部楼层
    有道理。。。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-4-29 06:19 , Processed in 0.098616 second(s), 44 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表