1. Einführung
Composer ist ein Abhängigkeitsmanagement-Tool für PHP. Sie können damit Codebibliotheken deklarieren, von denen Ihr Projekt abhängt, und diese für Sie in Ihrem Projekt installieren.
《Composer Chinese Website》
2. Systemanforderungen
PHP 5.3.2+ oder höher ist erforderlich, um Composer auszuführen.
Composer ist plattformübergreifend und kann gleichzeitig auf Windows-, Linux- und OSX-Plattformen ausgeführt werden. 3. Installieren Sie (Ubuntu).
curl -sS https://getcomposer.org/installer | php mv composer.phar mv composer.phar /usr/local/bin/composer
apt-get update
apt-get install curl
Nach dem Login kopieren
Dadurch werden einige PHP-Einstellungen überprüft und dann capt-get update apt-get install curl
omposer.phar
in Ihr Arbeitsverzeichnis heruntergeladen . Dies ist die Composer-Binärdatei. Dabei handelt es sich um ein PHAR-Paket (PHP-Archiv), ein PHP-Archivformat, das Benutzern hilft, einige Vorgänge in der Befehlszeile auszuführen. Sie können das Composer-Installationsverzeichnis über die Option --install-dir
angeben (es kann ein absoluter oder relativer Pfad sein) 4. Verwenden Sie Um Composer in Ihrem Projekt zu verwenden, Alle Sie benötigen eine composer.json
-Datei. Diese Datei enthält die Abhängigkeiten des Projekts und andere Metadaten. omposer.phar
到你的工作目录中。这是 Composer 的二进制文件。这是一个 PHAR 包(PHP 的归档),这是 PHP 的归档格式可以帮助用户在命令行中执行一些操作。
你可以通过 --install-dir
选项指定 Composer 的安装目录(它可以是一个绝对或相对路径)
4.使用
要开始在你的项目中使用 Composer,你只需要一个 composer.json
文件。该文件包含了项目的依赖和其它的一些元数据。
首先创建一个 composer.json
文件,写入相应的包名和版本号,如
composer -v
这是后就写入了一个依赖包,之后安装依赖包。获取定义的依赖到你的本地项目,之后在你的项目目录中(即 composer.json
所在目录)使用 Composer 运行 install
命令。
php -r "readfile('https://getcomposer.org/installer');" | php
当然,如果是在 Windows
系统中,也可以通过调用 composer.phar
包来进行依赖包的安装。
{ "require": { "monolog/monolog": "1.13.*" } }
执行 composer install
,就进入自动安装,安装完成后会生成一个 composer.lock
文件,里面是特定的版本号名,需要这个文件和 composer.json
一起提交到版本管理里去。
最后,在需要更新依赖包的时候,可以使用以下命令
composer install
如果只想更新部分依赖
php composer.phar install
5.自动加载
对于库的自动加载信息,Composer 生成了一个 vendor/autoload.php
文件。你可以在你项目的入口文件中引入它
composer update
这使得你可以很容易的使用第三方代码。例如:如果你的项目依赖 monolog,你就可以像这样开始使用这个类库,并且他们将被自动加载。
composer update monolog/monolog
6.Packagist / Composer 中国全量镜像
由于墙的问题,所以会导致 Composer 的国外镜像经常无法正常的 install
,所以推荐使用国内的镜像,使用方式如下
有两种方式启用本镜像服务:
- 系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中。详见”方法一“
- 将配置信息添加到某个项目的 composer.json 文件中。详见”方法二“
方法一: 修改 composer 的全局配置文件
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:
<?php require __DIR__ . '/vendor/autoload.php'; ?>
方法二: 修改当前项目的 composer.json
配置文件:
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json
文件所在目录),执行如下命令:
<?php require __DIR__ . '/vendor/autoload.php'; $log = new Monolog\Logger('name'); $log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING)); $log->addWarning('Foo'); ?>
上述命令将会在当前项目中的 composer.json
文件的末尾自动添加镜像的配置信息(你也可以自己手工添加):
composer config -g repo.packagist composer https://packagist.phpcomposer.com
7.使用 Composer 中的 autoload 实现自动加载命名空间
Composer 除了可以帮你安装所需要的依赖包以外,还可以实现自动加载命名空间的功能,当我们自己编写的函数库与类库需要自动加载时,我们就可以通过 composer.json
来实现。它类似于 php 中的 spl_autoload_register()
, 其实如果你去查看 Composer 中的源代码,你会看到它的自动加载功能也是用了 spl_autoload_register()
这个函数。《具体可看此文章详细介绍》
我们在 composer.json
Erstellen Sie zunächst eine composer.json
-Datei, schreiben Sie den entsprechenden Paketnamen und die Versionsnummer, z. B.
composer config repo.packagist composer https://packagist.phpcomposer.com
install
in Ihrem Projektverzeichnis aus (d. h. dem Verzeichnis, in dem sich composer.json
befindet). 🎜"repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } }
Windows
-System befinden, können Sie natürlich auch abhängige Pakete installieren, indem Sie das Paket composer.phar
aufrufen. 🎜{ "autoload": { "psr-4": { "Test\": "test/", "Testtwo\": "testtwo/" } } }
composer install
aus, um die automatische Installation zu starten. Nach Abschluss der Installation wird eine Datei composer.lock
generiert, die eine bestimmte Versionsnummer enthält composer.json wird gemeinsam an die Versionsverwaltung übermittelt. 🎜🎜Wenn Sie schließlich Abhängigkeitspakete aktualisieren müssen, können Sie den folgenden Befehl verwenden🎜composer dumpautoload
<?php require __DIR__ . '/vendor/autoload.php'; $testClass = new \Test\Testclass(); ?>
vendor/ autoload.php
-Datei. Sie können es in die Eintragsdatei Ihres Projekts einfügen🎜rrreee🎜Dies erleichtert Ihnen die Verwendung von Code von Drittanbietern. Beispiel: Wenn Ihr Projekt von Monolog abhängt, können Sie die Bibliothek auf diese Weise verwenden und sie werden automatisch geladen. 🎜rrreee🎜6. Packagist / Composer China vollständiges Bild🎜🎜Aufgrund von Wandproblemen können ausländische Bilder von Composer oft nicht normal installiert
werden, daher wird empfohlen, inländische Bilder zu verwenden. Die Verwendungsmethode ist wie folgt 🎜 Es gibt zwei Möglichkeiten, diesen Spiegeldienst zu aktivieren: 🎜- Globale Systemkonfiguration: Fügen Sie die Konfigurationsinformationen zur globalen Konfigurationsdatei config.json von Composer hinzu. Einzelheiten finden Sie unter „Methode 1“.
- Fügen Sie Konfigurationsinformationen zur Datei „composer.json“ eines Projekts hinzu. Einzelheiten finden Sie unter „Methode 2“
composer.json
des aktuellen Projekts: 🎜🎜Öffnen Sie das Befehlszeilenfenster (Windows-Benutzer) oder die Konsole (Linux-, Mac-Benutzer) und geben Sie das Stammverzeichnis von ein Führen Sie in Ihrem Projekt (d. h. dem Verzeichnis, in dem sich die Datei composer.json
befindet) den folgenden Befehl aus: 🎜rrreee🎜Der obige Befehl fügt automatisch die Spiegelkonfigurationsinformationen am Ende des spl_autoload_register()
in PHP. Wenn Sie sich den Quellcode in Composer ansehen, werden Sie feststellen, dass die Autoloading-Funktion auch spl_autoload_register()
verwendet Funktion. „Weitere Informationen finden Sie in diesem Artikel für eine ausführliche Einführung.“🎜🎜Wir fügen den folgenden Code in composer.json
hinzu:🎜{ "autoload": { "psr-4": { "Test\\": "test/", "Testtwo\\": "testtwo/" } } }
这个配置文件中有一个 autoload 段,其中有个 《PSR-4》,psr-4 是一个基于 psr-4 规则的类库自动加载对应关系,只要在其后的对象中,以 ”命名空间“: “路径” 的方式写入自己的类库信息修改完成后,之后,在执行下列命令,即可完成自动加载。
composer dumpautoload
注:"psr-4": {"Test\\": "test/"}
中的 "test/" 路径为相对于composer.json
的路径
这个时候,你就可以调用你自己编写的函数库或者类库了
<?php require __DIR__ . '/vendor/autoload.php'; $testClass = new \Test\Testclass(); ?>
注:本文内容参考了《Composer 中文网》,后续还会更新 Composer 其它的实用功能