linux php7 composer,如何在CentOS 7上安装和使用PHP Composer_春秋读书读春秋的博客-程序员宅基地

技术标签: linux php7 composer  

Composer是PHP的依赖项管理器(类似于Node.js npm或Python 的pip)。

Composer将提取您项目所依赖的所有必需PHP软件包,并为您管理它们。它用于所有现代PHP框架和平台,例如Laravel,Symfony,Drupal和Magento 2。

在本教程中,我们将完成在CentOS 7计算机上安装和使用Composer的步骤。

先决条件

在继续本教程之前,请确保满足以下先决条件:以具有sudo特权的用户身份登录

已在CentOS 7 系统上安装了PHP7。

在CentOS上安装Composer

以下步骤描述了如何在CentOS 7系统上安装Composer。

首先安装PHP CLI(命令行界面)软件包和所有其他依赖项,它们具有:sudo yum install php-cli php-zip wget unzip

一旦安装了PHP CLI,请使用以下命令下载Composer安装程序脚本:php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

以下wget命令将从Composer的Github页面下载最新的Composer安装程序的预期签名并将其存储在名为HASH的变量中:HASH="$(wget -q -O - https://composer.github.io/installer.sig)"

要验证安装脚本是否未损坏,请运行以下命令:php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

如果哈希匹配,则会显示以下消息:Installer verified

如果哈希不匹配,您会看到Installer corrupt ]。在这种情况下,您需要重新下载Composer安装脚本,并用echo $HASH仔细检查$HASH变量的值。安装程序通过验证后,即可继续下一步。

运行以下命令,将Composer安装在/usr/local/bin目录中:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composerAll settings correct for using Composer

Downloading...

Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer

Use it: php /usr/local/bin/composer

composer作为系统级命令安装,将对所有用户可用。

最后一步是验证安装:composer

上面的命令将打印Composer的版本,命令,和参数。______

/ ____/___ ____ ___ ____ ____ ________ _____

/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/

/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /

\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/

/_/

Composer version 1.8.5 2019-04-09 17:46:47

Usage:

command [options] [arguments]

至此,您已成功在CentOS系统上安装了Composer。

如果要安装每个项目的Composer,请使用以下命令php composer-setup.php,它将在当前工作目录中创建一个名为composer.phar的文件。您可以通过运行./composer.phar .   使用composer

Composer入门

现在您的CentOS系统上已安装Composer,我们将向您展示如何在PHP项目中使用Composer。

首先创建一个目录,该目录将成为项目的根目录并保存composer.json文件。

composer.json文件描述了您的PHP项目,包括PHP依赖项和其他元数据。

创建项目目录,然后用以下方法切换到该目录:mkdir ~/my-first-composer-project

cd ~/my-first-composer-project

在此示例中,我们将创建一个示例应用程序,该应用程序将使用名为carbon。

运行以下命令以初始化新的Composer项目并安装carbon软件包:composer require nesbot/carbonUsing version ^2.2 for nesbot/carbon

./composer.json has been created

Loading composer repositories with package information

Updating dependencies (including require-dev)

Package operations: 3 installs, 0 updates, 0 removals

- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)

- Installing symfony/translation (v4.1.4): Downloading (100%)

- Installing nesbot/carbon (2.2.0): Downloading (100%)

symfony/translation suggests installing symfony/config

symfony/translation suggests installing symfony/yaml

symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)

Writing lock file

Generating autoload files

如您从上面的输出中看到的,Composer将创建composer.json文件,并将下载并安装carbon及其所有依赖项。

如果您列出了项目的目录​​,则会看到它包含两个文件composer.json和composer.lock,以及一个vendor目录。ls -l-rw-r--r-- 1 myfreax users 60 Aug 29 00:50 composer.json

-rw-r--r-- 1 myfreax users 6.8K Aug 29 00:50 composer.lock

drwxr-xr-x 5 myfreax users 4.0K Aug 29 00:50 vendor目录vendor是存储项目依赖项的目录。

composer.lock包含所有已安装软件包的列表,包括其版本。

composer.json描述了PHP项目和所有PHP依赖项。

您可以在Composer存储库Packagist中搜索PHP软件包。

Composer提供了自动加载功能,使我们无需使用require或include文件就可以使用PHP类。

创建一个名为testing.php的文件并添加以下代码:<?php

require __DIR__ . '/vendor/autoload.php';

use Carbon\Carbon;

printf("Now: %s", Carbon::now());

让我们逐行分析代码。

在打开php标记后的第一行中,我们包含vendor/autoload.php文件,该文件由Composer自动生成,该文件将自动加载所有库。

接下来,我们将Carbon\Carbon别名为Carbon,并在最后一行中使用Carbon now方法打印当前时间。

通过键入以下内容来运行脚本:php testing.php

输出应如下所示:Now: 2018-09-26 20:08:18

稍后,如果您想更新PHP软件包,则只​​需运行:composer update

上面的命令将检查已安装软件包的较新版本,如果找到了较新版本,并且版本约束与composer.json中指定的匹配,则Composer将更新软件包。 262]

结论

您已经了解了如何在CentOS 7计算机上安装Composer。我们还向您展示了如何使用Composer创建基本的PHP项目。

要查找有关Composer的更多信息,请访问官方Composer文档页面。

如有任何疑问,请在下面发表评论。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34593927/article/details/115193622

智能推荐

棒棒糖(结构体)(类似前面循环的上树问题)_丿mfdsk丶的博客-程序员宅基地

题目描述新年快到了,计算机学院新年晚会正在筹备中,今年有一个新创意:来参加晚会的所有学生都有礼物(一根棒棒糖)。老师把买棒棒糖的任务交给小明了,并指定了要买的棒棒糖的品牌和品种。俗话说得好,货比三家不吃亏。小明来到了商店,看了各个店铺里这种棒棒糖的价格,不仅如此,他还记住了每个店铺的存货量。已知小明打算购买n根棒棒糖,问他最少要花多少钱?输入第一行输入一个整数n,表示要购买的棒棒糖数量;第二...

一步一步学Remoting之三:复杂对象_sas???的博客-程序员宅基地

这里说的复杂对象是比较复杂的类的实例,比如说我们在应用中经常使用的DataSet,我们自己的类等,通常我们会给远程的对象传递一些自己的类,或者要求对象返回处理的结果,这个时候通常也就是需要远程对象有状态,上次我们说了几种激活模式提到说只有客户端激活和Singleton是有状态的,而客户端激活和Singleton区别在于Singleton是共享对象的。因此我们可以选择符合自己条件的激活方式:...

iOS navigationBar与tabBar的translucent_weixin_34406061的博客-程序员宅基地

在Appdelegate里面,设置全局的Tabbar样式 //去掉tabbar的透明度 -- 解决tabbar偏移问题 [[UITabBar appearance] setTranslucent:NO];navigationBar当 translucent = YES (默认值) 时,UIViewController 中 sel...

BGP的选路规则,过滤,重发布_灰灰鱼的博客-程序员宅基地

选路原则:选路的前提是路由必须是优的Bgp表的不优的情况:1.bgp路由表中路由的下一跳不可达(递归失败)2.如果开启了bgp同步,在没有同步的情况下bgp的路由不优(默认是关闭的)开启同步为了避免黑洞,开启反而有害,路由不能到达目标,检查bgp中有没有igp的路由r标记的路由,表示在路由表中不优7.管路距离 20&gt;2008.bgp默认负载均衡条目数是1,意味着默认它没有负...

Mybatis第三天动态Sql语句、XML中一对多、多对一、多对多该怎么写_惨绿少年kb的博客-程序员宅基地

Mybatis第三天Mybatis中使用unpooled配置连接池原理分析Mybatis中使用pooled配置连接的原理分析Mybatis中的事务原理和自动提交设置Mybatis中的动态sql语句if标签where标签foreach标签sql标签,用于抽取重复的语句第三章 Mybatis的多表关联查询一对多查询多对多用户实体类角色实体类角色的单表操作获取角色下的所有用户信息多个表之间的关联从一个用户到多个角色今天内容很重要把Mybatis里面的几个重要标签再解释一下1、Mybatis中的配置类主要分

前端开发框架选型清单_weixin_30917213的博客-程序员宅基地

http://www.infoq.com/cn/news/2014/05/web-ui-framework随着Web技术的不断发展,前端开发框架层出不穷,各有千秋,开发者在做技术选型时总是要费一番脑筋,最近,IBM高级工程师王芳侠撰文对Bootstrap、jQuery UI、jQuery Mobile、Sencha ExtJS、Sencha Touch、Sencha GXT、Dojo、Dojo...

随便推点

获取pe文件的文件类型_p是马甲的博客-程序员宅基地

工程文件petype.cpp通过调用pefile类中的函数获取文件类型。文件类型的判断通过5个监测点完成。监测点1:dos头的e_magic监测点2:nt头的Signature监测点3:文件头的Characteristics监测点4:可选头的Magic监测点5:可选头的Subsystem通过监测点1和2判断是否是pe文件;通过监测点3判断文件是否是动态库...

如何启用计算机hdmi,解答电脑怎么使用HDMI连接电视_weixin_39898854的博客-程序员宅基地

最近小编发现有很多的小伙伴想实现电脑连接电视机的,通过电脑的操作对电视机进行电影播放以及游戏的传送,对于都电脑的人来说就很简单了,反之对于不擅长这方面的人来说那可就有些棘手了。为此,下面小编就给大家介绍一下电脑怎么使用HDMI连接电视的方法。HDMI顾名思义“高清晰度多媒体接口”。HDMI接口能够提供高达5Gbps的数据传输带宽,可以传送无压缩的音频信号及高分辨率视频信号。用户如果想要使用hdmi...

IM-后台搭建(三)之账号相关接口实现_ChaseRye的博客-程序员宅基地

实现了数据库逻辑封装和连接Mysql数据库后,我们就可以实现以下后台所需要的相关接口了。首先声明,我们在Application中,注册的Json解析器原本是Jackson,现在替换成GsonProvider,因为Jackson在解析boolean数据的时候会产生性能问题。在我们以后返回的实体类中,每个属性都要加@Expose注解,否则GsonProvider将不进行解析。最直白的表现就是Pos...

kali 下渗透测试的一些小技巧_大白Tang的博客-程序员宅基地

总结在渗透测试上的一些小技巧,基本上都是 kali 下的一些常用的工具使用集合DIRB使用 DIRB 爆破目录注: DIRB 是一个专门用于爆破目录的工具,在 Kali 中默认已经安装,类似工具还有国外的 patator , dirsearch , DirBuster , 国内的御剑等等。dirb http://[IP]:PORT /usr/share/dirb/wordlists/common.txtNiko使用 Nikto 扫描 Web 服务nikto -C all -h http://[

Selenium2.0之WebDriver学习总结(3)_fanjieshanghai的博客-程序员宅基地

接下来将通过几个具体的例子来使用操作上述功能,以下代码都是通过junit框架编写。例子1:该例子主要是登录网易相册,创建一个私人相册,并进入相册进行评论,然后删除这个相册。在这个例子中,可以找到各种方式定位元素方法的具体实例:package demo;import java.util.concurrent.TimeUnit;import org.junit.*;import o

Android截屏_hnbyboy的博客-程序员宅基地

本篇文章主要介绍了关于Android方面的截屏操作,下面是主要的代码,最近也思考一个问题,怎么实现一个截屏后,把图片发送至一个服务器端呢,正在思考中希望有哪位有识之士给解答,有源码的更好,谢谢了!!Android截屏代码如下:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package