Home Backend Development PHP Tutorial PHP管理依赖(dependency)关系工具 Composer 安装与使用_PHP

PHP管理依赖(dependency)关系工具 Composer 安装与使用_PHP

May 31, 2016 pm 07:30 PM
composer php Install

PHP Composer 安装

系统需求:

Composer 需要PHP5.3.2+ 以上的环境来运行。有几个敏感的PHP设置和编译标志也是必需的,但安装程序会发出警告当存在任何不兼容的情况。

比如PHP的扩展的要求是,安装或重新编译php without –disable-phar

为了从源地址安装软件包,而不是简单的压缩文件包,您将需要安装软件包的版本控制工具,比如git、svn或hg等。

Composer 是兼容多平台的,其运行适用于Windows,Linux和OSX。

安装失败的错误消息:

1

2

3

4

5

6

7

8

9

curl -sS https://getcomposer.org/installer | PHP

#!/usr/bin/env php

some settings on your machine make Composer unable to work properly.

Make sure that you fix the issues listed below and run this script again:

 

The phar extension is missing.

Install it or recompile php without –disable-phar

 

Your PHP (5.2.9) is too old, you must upgrade to PHP 5.3.2 or higher.

Copy after login

我的本地默认开发环境是PHP 5.2.9,当我尝试在PHP 5.2.9上安装时,提示版本过低,需要升级到PHP 5.3.2 或者更高的版本。

于是我下载XAMPP 1.7.7 usb lite 版本。

1

2

3

4

E:\USB\Dropbox\phpstorm\php53>E:\USB\xampp_177\php\php.exe -v

PHP 5.3.8 (cli) (built: Aug 23 2011 11:50:20)

Copyright (c) 1997-2011 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

Copy after login

XAMPP 1.7.7 下的PHP环境是5.3.8。确认我的PHP环境大于等于PHP5.3.2后。

PHP 5.3 安装 Composer

1

2

3

4

5

6

7

8

9

10

11

12

13

E:\USB\Dropbox\phpstorm\php53>curl -sS https://getcomposer.org/installer | E:\USB\xampp_177\php\php.exe

#!/usr/bin/env php

Some settings on your machine may cause stability issues with Composer.

If you encounter issues, try to change the following:

 

The openssl extension is missing, which will reduce the security and stability o

f Composer.

If possible you should enable it or recompile php with –with-openssl

 

Downloading…

 

Composer successfully installed to: E:\USB\Dropbox\phpstorm\php53\composer.phar

Use it: php composer.phar

Copy after login

注意:

我关闭了XAMPP 1.7.7 Apache的SSL模块,所以Composer提示我警告,为了安全因素建议我开启SSL模块。不开启也不影响使用。
安装时的参数 | PHP,一定要更改为真实的PHP环境路径,比如 | E:\USB\xampp_177\php\php.exe
使用Composer为PHP路径 + 命令,在我们安装的环境中,使用方法为:E:\USB\xampp_177\php/php.exe composer.phar 命令。
我安装的环境是在Windows下,如果在Linux下,而PHP 5.3 环境也不在默认PHP命令下时,应该采用 | /usr/php/53/usr/bin/php,例如:

1

curl -sS https://getcomposer.org/installer | /usr/php/53/usr/bin/php

Copy after login

安装完成后,检查安装版本。

1

2

E:\USB\Dropbox\phpstorm\php53>E:\USB\xampp_177\php/php.exe composer.phar -V

Composer version 0209bd31a0ac3aeb2a68fc81e2d03c71072bef33

Copy after login

检查PHP Composer命令:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

E:\USB\Dropbox\phpstorm\php53>E:\USB\xampp_177\php/php.exe composer.phar

  ______

 / ____/___ ____ ___ ____ ____ ________ _____

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

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

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

          /_/

Composer version 0209bd31a0ac3aeb2a68fc81e2d03c71072bef33

 

Usage:

 [options] command [arguments]

 

Options:

 –help      -h Display this help message.

 –quiet     -q Do not output any message.

 –verbose    -v Increase verbosity of messages.

 –version    -V Display this application version.

 –ansi       Force ANSI output.

 –no-ansi      Disable ANSI output.

 –no-interaction -n Do not ask any interactive question.

 –profile      Display timing and memory usage information

 –working-dir  -d If specified, use the given directory as working directory

.

 

Available commands:

 about      Short information about Composer

 archive     Create an archive of this composer package

 config      Set config options

 create-project  Create new project from a package into given directory.

 depends     Shows which packages depend on the given package

 diagnose     Diagnoses the system to identify common errors.

 dump-autoload  Dumps the autoloader

 dumpautoload   Dumps the autoloader

 help       Displays help for a command

 init       Creates a basic composer.json file in current directory.

 install     Installs the project dependencies from the composer.lock file

if present, or falls back on the composer.json.

 list       Lists commands

 require     Adds required packages to your composer.json and installs the

m

 run-script    Run the scripts defined in composer.json.

 search      Search for packages

 self-update   Updates composer.phar to the latest version.

 selfupdate    Updates composer.phar to the latest version.

 show       Show information about packages

 status      Show a list of locally modified packages

 update      Updates your dependencies to the latest version according to

composer.json, and updates the composer.lock file.

 validate     Validates a composer.json

Copy after login

这样我们在PHP5.3环境下的Composer已经安装完成。

类似的方法我们也可以安装PHP 5.4的环境上。

PHP 5.4 安装 Composer

下载XAMPP 1.8.1 usb lite 版本,将得到PHP5.4.7环境。

1

2

3

4

E:\USB\Dropbox\phpstorm\php53>E:\USB\xampp_181\php\php.exe -v

PHP 5.4.7 (cli) (built: Sep 12 2012 23:48:31)

Copyright (c) 1997-2012 The PHP Group

Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

Copy after login

确定版本高于PHP 5.3.2 后,开始安装:

1

2

3

4

5

6

7

8

9

10

11

12

13

E:\USB\Dropbox\phpstorm\php54>curl -sS https://getcomposer.org/installer | E:\USB\xampp_181\php\php.exe

#!/usr/bin/env php

Some settings on your machine may cause stability issues with Composer.

If you encounter issues, try to change the following:

 

The openssl extension is missing, which will reduce the security and stability o

f Composer.

If possible you should enable it or recompile php with –with-openssl

 

Downloading…

 

Composer successfully installed to: E:\USB\Dropbox\phpstorm\php54\composer.phar

Use it: php composer.phar

Copy after login

安装完成后,检查安装版本。

1

2

E:\USB\Dropbox\phpstorm\php54>E:\USB\xampp_181\php/php.exe composer.phar -V

Composer version 0209bd31a0ac3aeb2a68fc81e2d03c71072bef33

Copy after login

这样,PHP 5.4 环境下的Composer也安装成功了。

PHP Composer 使用

这里我只简单演示使用PHP Composer安装Symfony框架。

首先大概讲解一下命令的标准格式:

1

php composer.phar create-project symfony/framework-standard-edition path/ 2.2.1

Copy after login

第一个参数PHP为本地PHP开发环境,指向PHP运行命令。
第二个参数,为composer.phar方式下载。
第三个参数,为动作命令,例如create-project,目的是为了创建一个新的项目从一个软件包到指定目录。
第四个参数,为本地安装的目录。
第五个参数,为安装软件包的版本。

根据上述我们在PHP5.4环境下安装的Composer,我们的安装命令为:

1

E:\USB\Dropbox\phpstorm\php54>E:\USB\xampp_181\php/php.exe composer.phar create-project symfony/framework-standard-edition E:\USB\xampp_181\htdocs\Symfony 2.2.1

Copy after login

安装结果:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

Installing symfony/framework-standard-edition (v2.2.1)

 – Installing symfony/framework-standard-edition (v2.2.1)

  Downloading: 100%

Created project in E:\USB\xampp_181\htdocs\Symfony

Loading composer repositories with package information

Installing dependencies from lock file

 – Installing doctrine/lexer (v1.0)

  Downloading: 100%

 – Installing doctrine/annotations (v1.1)

  Downloading: 100%

 – Installing doctrine/cache (v1.0)

  Downloading: 100%

 – Installing doctrine/collections (v1.1)

  Downloading: 100%

 – Installing twig/twig (v1.12.2)

  Downloading: 100%

 – Installing psr/log (1.0.0)

  Downloading: 100%

 – Installing doctrine/inflector (v1.0)

  Downloading: 100%

 – Installing doctrine/common (2.4.0-RC1)

  Downloading: 100%

 – Installing symfony/symfony (v2.2.1)

  Downloading: 100%

 – Installing jdorn/sql-formatter (v1.2.0)

  Downloading: 100%

 – Installing doctrine/dbal (2.3.3)

  Downloading: 100%

 – Installing doctrine/doctrine-bundle (v1.2.0-beta1)

  Downloading: 100%

 – Installing doctrine/orm (2.3.3)

  Downloading: 100%

 – Installing jms/cg (1.0.0)

  Downloading: 100%

 – Installing phpoption/phpoption (1.2.0)

  Downloading: 100%

 – Installing jms/parser-lib (1.0.0)

  Downloading: 100%

 – Installing jms/metadata (1.3.0)

  Downloading: 100%

 – Installing jms/aop-bundle (1.0.0)

  Downloading: 100%

 – Installing jms/di-extra-bundle (1.3.0)

  Downloading: 100%

 – Installing jms/security-extra-bundle (1.4.0)

  Downloading: 100%

 – Installing sensio/distribution-bundle (v2.2.1)

  Downloading: 100%

 – Installing sensio/framework-extra-bundle (v2.2.1)

  Downloading: 100%

 – Installing sensio/generator-bundle (v2.2.1)

  Downloading: 100%

 – Installing kriswallsmith/assetic (v1.1.0-alpha4)

  Downloading: 100%

 – Installing symfony/assetic-bundle (v2.1.2)

  Downloading: 100%

 – Installing monolog/monolog (1.4.1)

  Downloading: 100%

 – Installing symfony/monolog-bundle (v2.2.0)

  Downloading: 100%

 – Installing swiftmailer/swiftmailer (v4.3.0)

  Downloading: 100%

 – Installing symfony/swiftmailer-bundle (v2.2.0)

  Downloading: 100%

 – Installing twig/extensions (v1.0.0)

  Downloading: 100%

 

kriswallsmith/assetic suggests installing leafo/lessphp (Assetic provides the integration with the lessphp LESS compiler)

kriswallsmith/assetic suggests installing leafo/scssphp (Assetic provides the integration with the scssphp SCSS compiler)

kriswallsmith/assetic suggests installing leafo/scssphp-compass (Assetic provides the integration with the SCSS compass plugin)

kriswallsmith/assetic suggests installing ptachoire/cssembed (Assetic provides the integration with phpcssembed to embed data uris)

monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)

monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))

monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)

monolog/monolog suggests installing mlehner/gelf-php (Allow sending log messages to a GrayLog2 server)

monolog/monolog suggests installing raven/raven (Allow sending log messages to a Sentry server)

Generating autoload files

Clearing the cache for the dev environment with debug true

Installing assets using the hard copy option

Installing assets for Symfony\Bundle\FrameworkBundle into web/bundles/framework

Installing assets for Acme\DemoBundle into web/bundles/acmedemo

Installing assets for Sensio\Bundle\DistributionBundle into web/bundles/sensiodistribution

Copy after login

从命令行结果,我们看到了整个Symfony框架的安装过程与结果。

PHP Composer 定义依赖关系

Composer在使用时会自动寻找composer.json这个文件。 composer.json将用来定义整个项目的依赖包。例如:

1

2

3

4

5

{

  "require": {

    "monolog/monolog": "1.2.*"

  }

}

Copy after login

依赖包简单的说明,我们的项目需要一些从1.2开始的任何版本的monolog/monolog包。

Composer是PHP中的一个依赖关系管理工具。通过Composer我们可以在发布软件时节省大量的文件数目和控制依赖包的版本。

PHP Composer 项目

Composer 项目官方:http://getcomposer.org

Composer Github项目:https://github.com/composer/composer

PHP Composer软件包列表:https://packagist.org/

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles