资讯专栏INFORMATION COLUMN

php管理依赖关系工具composer学习笔记

CoyPan / 1137人阅读

摘要:首先支持下黄老师的视频网站转型这篇的学习笔记也是根据他的视频教程写的,一共十集,讲解的很简单感兴趣的同志们可以上他视频网站购买视频,网站地址放在文末我的博客作用自动安装所需要的模块,自动加载管理项目,发布到网上上去是默认的加载组件地址安装下

首先支持下黄老师的视频网站转型
这篇composer的学习笔记也是根据他的视频教程写的,一共十集,讲解的很简单
感兴趣的同志们可以上他视频网站购买视频,网站地址放在文末
我的php博客:http://www.manyue.me

composer作用
1、自动安装所需要的模块,自动加载
2、管理项目,发布到packeglist网上上去(packgist是composer默认的加载组件地址)

安装
windows下
进入 https://getcomposer.org/ 找到Composer-Setup.exe 下载安装,安装到php.exe文件夹下
安装到phpstrom
进入 https://getcomposer.org/ 找到composer.phar 下载
进入phpstrom->file->setting->command Line Tool Support
点击加号,选择composer。visibility选择global,接着输入composer.phar路径确认
安装完毕

开始使用composer加载我们需要的第三方组件
通过建立composer.json文件告诉composer我们需要依赖哪个文件
该文件可通过命令行创建:composer init
json文件格式如下:

{
"name": "Administrator/composer-test",
"repositories":[
{
"type":"vcs",
"url":"在github上要加载的模块的git地址"
},
{
"type":"pera",
"url":"xxx"
},
{
"type":"composer",
"url":"xxx"
}
],
"require": {
"zendframework/zendframework":"2.3.1"
}
}

【require】
首先说说require,packagist给出了三种写法,冒号前是开发商和包的名字,冒号后是版本,参见下图
我们要告诉composer我这个项目依赖哪个包(假设我们需要zendframework2的包)
先上https://packagist.org搜索zendframework2
将”zendframework/zendframework”:”2.3.1″ 输入(开发商/包的名字:版本号)
composer.json配置完后,在命令行执行composer install,它会按照你的json文件配置自动下载zf2框架,并实现自动加载
用命令composer update更新要新加载的组件
(三种写法)↓

【repositories】
如果我要用的组件不在packagist上,在github上怎么办
先定义库的地址(见上面代码
原理是:如果我在require里定义要加载的库在默认的getpackagist.org上找不到,则会到repositoiries里定义的网站里找

加载自定义组件(自身组件)
仍然是在composer.json文件里配置
先建个类库,比如izumi/EventManager/EventManager.php(供应商名+文件夹名+类文件)(phpflag规范规定类名和文件名必须是一样的)

{
"name": "izumi/composer-test",
"autoload":{
"psr-0":{
"izumi":"vendor"
}
}
}

规定psr-0规则,izumi是厂商名(也是命名空间),vendor /表示供应商所在的文件夹名
配置完成后执行命令行composer install
加载位于vender下的没有定义命名空间的类
比如在vendor下有个Tools.php

{
"name": "izumi/composer-test",
"autoload":{
"psr-0":{
"Tools":"vendor"
}
}
}

Tools表示是一个类,告诉composer这个类所在的文件夹是vendor
Tools不写的话,会将vendor文件夹作为全局命名空间,vendor下的类会全部加载
自动加载会有一定的性能消耗
可以用classmap来定义要加载类的绝对地址

"classmap":["vendor/izumi","vendor/Tools.php"]

自动加载一个函数
比如在vendor/izumi/functions.php里写个getTest方法
我们希望我们的每一个类都去调用这个functions.php的getTest方法
这时候我们可以定义files

"files":["vendor/functions.php"]

将自己写的包提交到packagist
①首先这个包内必须要有个composer.json文件(可以cd到该包内,执行composer init命令)
②名字要小写
③可以先将整个包提交到github上
④https://packagist.org/ 点击submit package ,可以先通过github账户登录网站
⑤输入要提交包的git地址
让你提交到packagist的包跟着github更新而更新
在github该包的页面,点击setting->webhooks&Services->Add service->输入packagist->提示输入github密码->输入token(在packagist.org点击用户名点击Show API Token获取token)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20823.html

相关文章

  • 使用 Satis 搭建私有仓库

    摘要:此时我们就需要一个工具,能够搭建私有源,里面都是私有仓库,对内不对外。就是官方提供的建立私有源的工具。在其它项目中使用私有源只需要在项目的文件的根上添加仓库地址之后再通过或者想要的仓库就可以了。 现在我们常用 Composer 进行依赖管理。和其它语言的包管理工具一样,Composer 使用 GitHub 托管代码,可以根据配置文件管理依赖,也可以建立各种脚本,执行特定任务。总之好处很...

    gityuan 评论0 收藏0
  • 使用 docker-compose 搭建 Laravel 环境 (三)

    摘要:更换源更新源使用的源通过安装脚本安装应用所需要的依赖。 showImg(https://segmentfault.com/img/remote/1460000011106825); 有了第二篇《使用 Docker 搭建简易的 Java Web 环境 (二)》,懂了如何通过单一镜像创建 Docker 环境,这篇主要学习如何使用「docker-compose」。目标是:搭建 Laravel...

    bingchen 评论0 收藏0
  • 使用 docker-compose 搭建 Laravel 环境 (三)

    摘要:更换源更新源使用的源通过安装脚本安装应用所需要的依赖。 showImg(https://segmentfault.com/img/remote/1460000011106825); 有了第二篇《使用 Docker 搭建简易的 Java Web 环境 (二)》,懂了如何通过单一镜像创建 Docker 环境,这篇主要学习如何使用「docker-compose」。目标是:搭建 Laravel...

    roadtogeek 评论0 收藏0
  • YII2快速学习笔记

    摘要:高性能始终是的首要目标之一。版是上代的老版本,现在处于维护状态。版是一个完全重写的版本,采用了最新的技术和协议,包括依赖包管理器代码规范命名空间特质等等。所以,我们学习版本。启用本镜像服务系统全局配置即将配置信息添加到的全局配置文件中。 工作中需要用到YII框架,于是乎,系统的学习下这套框架,详细教程请看考该站完整系列:YII2教程 一、YII简介 1、什么是YII Yii 是一个高性...

    kbyyd24 评论0 收藏0
  • elastic学习笔记

    摘要:至于其他的算一般我习惯说树形模型,这里说的概率模型可能是差不多的意思。 要点 不同工具之间版本匹配很重要由点及面,先实践起来再学细节的原理和使用 技术栈 laravel5.5框架+scout组件+elasticsearch6.3.0搜索引擎 辅助 elasticsearch-head 查看集群数据可视化 中文分词插件Ik 介绍 laravel是一款现代化的php框架es是搜索引擎e...

    heartFollower 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<