Composer简介及使用实例
1.PHP-FIG
php编码规范:
本文档是PHP互操作性框架制定小组(PHP-FIG :PHP Framework Interoperability Group)制定的PHP编码规范(PSR:Proposing a Standards Recommendation)。
https://www.gitbook.com/book/jifei/php-fig-standards/details
https://jifei.gitbooks.io/php-fig-standards/content/

2.Composer
(1)说明(Composer和Packagist)
Composer:是php用来管理项目依赖的工具
依赖关系:指项目中需要使用的外部工具库或叫组件(ps:组件是一组打包的代码,是一系列相关的类或接口,用于帮组我们解决php应用中的某个具体问题)
官方网址:https://getcomposer.org 安装下载composer用
中文网站:http://www.phpcomposer.com 学习,切换镜像
官方文档:http://docs.phpcomposer.com/
Packagist: 是composer的组件仓库
(2)下载
https://getcomposer.org/download/

(2)安装前提条件
² php版本5.3.2以上
² 开启openssl扩展
² 安装composer需要明确php.exe的文件路径:将php.exe路径加入到环境变量
² 检查是否可用:php composer.phar

(3)使用Composer铺垫
情景:虚拟主机下class目录,目录下有两个文件class1.php和class2.php,在虚拟主机下新建test.php,实例化这两个类并打印



(4)Composer初体验(autoload类的自动加载)
① 新建composer.json文件
在项目根目录新建composer.json文件,主要用于声明组建依赖关系,类的自动加载
来协助composer管理。
② 配置composer.json文件
|
{ "autoload":{ "psr-4":{"":"目录/"} } } |
1、当键名是autoload时则会自动加载
2、当键是require时则会下载或更新对应组件
3、composer.json文件必须都是双引号
|
{ "autoload":{ "psr-4" :{"":"class/"} } } |
③ 建立关系
通过composer指定指令/命令安装依赖关系所需组件,并初始化自动加载信息。
|
php composer.phar install |

切换国内镜像加快下载速度


|
php composer.phar config repo.packagist composer https://packagist.phpcomposer.com |

|
{ "autoload":{ "psr-4" :{"":"class/"} }, "repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } } } |


执行速速变快了
④ 自动加载
对于库的自动加载信息,composer会生成一个autoload.php的文件,只需要简单引入这个文件就会得到自动加载支持
|
//引入autoload.php文件 require './vendor/autoload.php'; |
⑤ 代码


(5)PSR-4规范实现自动加载

在composer初体验的基础上新建T1目录,新建class3.php


报错:

解决:引入命名空间


3.项目依赖管理require
(1)新建composer.json文件
填入require配置项:(库的完整名称+版本号)
(2)配置composer.json文件
|
{ "require":{ "库的完整名称" :"版本号", "库的完整名称" :"版本号", } } |
多个require用”,”号隔开
查找composer仓库已存在的组件,输入网址:https://packagist.org



点击进去
(3)下载组件


1、下载资源需要FQ或切换国内镜像否则非常慢
2、下载的组件位于vendor目录下
3、使用下载资源需要引入autoload.php文件,然后直接使用命名空间调用类的信息
(4)使用组件


(5)php Composer库的意义
提供项目组件依赖管理并提供下载和共享外部组件 还提供了类的自动加载
4.Composer创建自己的包
(1)本地化实现组件功能


|
{ "name": "phptestsoft22/json22", "description": "PHP library to encode and decode JSON", "license": "MIT", "authors": [ { "name": "邹柯", "email": "1429359083@qq.com" } ], "mininum-stability": "stable", "require": { "php": ">=5.3.0" }, "autoload": { "psr-4": {"phptestsoft22\\": "src/"} }, "repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } } } |




(2)上传github

只打包src README composer.json这3个文件
将test.php文件内容复制到README中
GitHub账号:
邮箱:***********
密码:***********




(3)提交composer仓库packagis中





检出完成后再点击提交
使用Composer组件版本必须是1.0以上(默认提交到github上是没有版本的)
在github上添加版本号



注:本文是参考网上视频 PHP春天-Composer依赖管理工具
Composer简介及使用实例的更多相关文章
- Jboss ESB简介及开发实例
一.Jboss ESB的简介 1. 什么是ESB. ESB的全称是Enterprise Service Bus,即企业服务总线.ESB是过去消息中间件的发展,ESB采用了“总线”这样一 ...
- APP接口自动化测试JAVA+TestNG(二)之TestNG简介与基础实例
前言 继上篇环境篇后,本篇主要对TestNG进行介绍,给出最最基础的两个实例,通过本文后,学会并掌握TestNG测试用例的编写与运行,以及生成美化后的报告.下一篇为HTTP接口实战(国家气象局接口自动 ...
- Linux Expect 简介和使用实例
expect简介和使用实例 1 expect 简介 expect 是用来进行自动化控制和测试的工具. 主要是和交互式软件telnet ftp passwd fsck rlogin ssh tip 等进 ...
- SoapUI简介和入门实例解析
SoapUI简介 SoapUI是一个开源测试工具,通过soap/http来检查.调用.实现Web Service的功能/负载/符合性测试.该工具既可作为一个单独的测试软件使用,也可利用插件集成到Ecl ...
- nginx的简介和配置文件实例(一)
此文章配合 nginx配置文件解答 共同分享,了解. 一.nginx服务简介Nginx是一个高性能的HTTP和反向代理服务器 使用 Nginx 前必须了解的事项: 1)Nginx 本身只是一个 ...
- Web Service简介与开发实例
简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的 ...
- Composer简介与下载安装
简介: 初次接触Composer的PHP程序员可能是需要下载ThinkPHP框架(5.1),那么什么是Composer,怎么下载安装呢? Composer是一个依赖管理工具,下载管理第三方包是其主要功 ...
- PHP的包依赖管理工具Composer简介
composer是一个基于项目的依赖管理器,负责将php项目的所依赖的包和库安装在项目的目录中,默认不会不会安装任何数据到全局.他用于取代之前pear工具 1 安装Composer curl -sS ...
- Composer简介
Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 依赖管理 Composer 不是一个包管理器.是的,它涉及 "package ...
随机推荐
- 微信小程序探索(一)
一.小程序到底是个什么鬼? 现在Android系统越用越卡的现状很头疼,手机上再也不想装太多的App,而市面上层出不穷的各种应用,有时又是我们需要用到的,怎么办呢!!微信小程序就是一种不需要下载安装即 ...
- man rsync翻译(rsync命令中文手册)
本文为命令rsync的man文档翻译,几乎所有的选项都翻译了,另外关于筛选规则部分只翻译了一部分.由于原文很多地方都比较啰嗦,所以译文中有些内容可能容易让国人疑惑,所以我个人在某些地方加上了注释.若有 ...
- NOIP模拟:切蛋糕(数学欧拉函数)
题目描述 BG 有一块细长的蛋糕,长度为 n. 有一些人要来 BG 家里吃蛋糕, BG 把蛋糕切成了若干块(整数长度),然后分给这些人. 为了公平,每个人得到的蛋糕长度和必须相等,且必须是连续的一段 ...
- zTree-已勾选项id传输到action的解决方案
测试jsp <%@ page language="java" contentType="text/html; charset=utf-8" page ...
- HTML5之placeholder属性以及如何更改placeholder属性中文字颜色
今天在群里看到群友问了一个这样的问题,就是如何更改placeholder属性中文字的颜色,以前用过这属性,却是没更改过颜色,于是便试了试,中途遇到些问题,查找资料后特来总结一下. 熟悉HTML5的人应 ...
- 【MYSQL】主从库查看及搭建
show slave status 查看从库信息 http://blog.csdn.net/lxpbs8851/article/details/7898716 搭建主从库 http://www. ...
- [技术] OIer的STL入门教程
注: 本文主要摘取STL在OI中的常用技巧应用, 所以可能会重点说明容器部分和算法部分, 且不会讨论所有支持的函数/操作并主要讨论 C++11 前支持的特性. 如果需要详细完整的介绍请自行查阅标准文档 ...
- java自学找工作经历
断断续续的,折腾了7个多月,学完了在网上购买的培训机构J2EE的全套课程.期间各种蛋疼看另一篇博客 http://www.cnblogs.com/work396/p/6791488.html 直接说找 ...
- X-NUCA 2017 web专题赛训练题 阳光总在风雨后和default wp
0X0.前言 X-NUCA 2017来了,想起2016 web专题赛,题目都打不开,希望这次主办方能够搞好点吧!还没开赛,依照惯例会有赛前指导,放一些训练题让CTFer们好感受一下题目. 题目有一大 ...
- js存款计算器原生小demo
大家好,本人是初入前端的一枚程序猿,深知js底层开发的重要性,这也是我的软肋所在(曾经以为),渐渐的明白了一个道理,饭要一口口吃,路要一步步走,这也是我想告诉给所有刚刚进入IT行业的技术员们,沉下心, ...