Heim >Entwicklungswerkzeuge >composer >Composer-Abhängigkeitsmanagement (PHP-Tool)

Composer-Abhängigkeitsmanagement (PHP-Tool)

藏色散人
藏色散人nach vorne
2020-01-26 16:01:354238Durchsuche

Composer-Abhängigkeitsmanagement (PHP-Tool)

Hören Sie auf, nach PHP-Erweiterungspaketen zu suchen. Für moderne Sprachen sind Paketmanager grundsätzlich Standard. Java hat Maven, Python hat pip, Ruby hat gem und Nodejs hat npm. PHP verwendet PEAR, aber PEAR weist viele Fallstricke auf:

● Die Abhängigkeitsverarbeitung ist anfällig für Probleme

● Die Konfiguration ist sehr komplex

● Schwierig zu verwendende Befehlszeilenschnittstelle

Glücklicherweise haben wir Composer, ein leistungsstarkes Tool für das PHP-Abhängigkeitsmanagement. Es ist Open Source und einfach zu verwenden, und Sie können ganz einfach Ihre eigenen Pakete einreichen.

Wenn wir beispielsweise zu Beginn kein Framework verwenden und einen Bestätigungscode wünschen, müssen wir zuerst zu Gihutb oder anderen Orten gehen, um eine Bestätigungscode-Klasse zu finden, sie dann in das Projekt aufzunehmen und dann bearbeiten. Sobald es läuft, kann es bei der späteren Projektpflege zu Problemen kommen. Wenn es Open Source auf Github ist, können Sie auch auf „Beobachten“ klicken, um zu sehen, ob Fehler behoben oder neue Versionen veröffentlicht wurden, und Sie können zeitnah Upgrades durchführen.

Wenn Sie zu viele Erweiterungspakete herunterladen, benötigen Sie möglicherweise auch Namensraumkonflikte. Wenn das Erweiterungspaket aktualisiert wird, müssen Sie dies auch tun Laden Sie es erneut herunter. Das ist sehr umständlich. So wurde die Composer-Bibliothek zur Abhängigkeitsverwaltung geboren.

Die oben genannten sind die wichtigeren Nachfrageszenarien für Compser.

1. Erweiterungspakete können einfach installiert und aktualisiert werden

Einfach einbinden, nicht überall einschließen müssen

3 🎜>Normalerweise gehe ich zu Github, Code Cloud und anderen Plattformen, um Erweiterungspakete zu finden, aber jetzt gibt es eine Website, die alle Pakete integriert. Mit anderen Worten, die aktuelle Entwicklungsmethode: Zuerst auf Packagist suchen und dann Composer zum Installieren verwenden Upgrade.

Composer installieren

Für eine narrensichere Installation klicken Sie einfach auf https://getcomposer.org/Composer-Setup.exe, laden Sie das Installationsprogramm herunter und installieren Sie es Sie laden Composer herunter und legen Ihre PATH-Umgebungsvariable fest, sodass Sie Composer einfach von jedem Verzeichnis aus aufrufen können.

Während des Installationsprozesses müssen Sie darauf achten, das Stammverzeichnis von php.exe zu finden und den richtigen PHP-Pfad auszuwählen. Ich werde hier keine Screenshots bereitstellen, da ich es noch nicht heruntergeladen und manuell installiert habe.

Das ausgewählte Verzeichnis sollte so aussehen:

D:\phpStudy\php\php-7.0.12-nts\php.exe

Im Folgenden geht es um die manuelle Installation:

Laden Sie zunächst eine Composer.phar-Datei herunter und legen Sie die Phar-Datei im Entwicklerordner ab. Sie können dies tun, wie Sie möchten, und es gibt keine Begrenzung, in welchem ​​Ordner sie abgelegt werden soll.

Öffnen Sie dann das DOS-Fenster oder verwenden Sie die Tastenkombination Windows+R, um cmd einzugeben. Geben Sie zunächst das Verzeichnis ein, in dem Sie die Phar-Datei abgelegt haben Voraussetzung für eine erfolgreiche Installation ist die Eingabe in der Befehlszeile.

D:\developer\composer>echo @php "%~dp0composer.phar" %*>composer.bat

zeigt den folgenden Inhalt an

Composer-Abhängigkeitsmanagement (PHP-Tool)Wenn ich das sehe, Gehen Sie davon aus, dass die Installation von Composer im chinesischen LAN relativ langsam ist, aber glücklicherweise gibt es einen inländischen Spiegel. Führen Sie den folgenden Befehl aus, um zum inländischen Spiegel zu wechseln in den inländischen Computerraum und beschleunigen Sie es über das inländische CDN, sodass keine Notwendigkeit besteht, eine Anfrage an eine ausländische Website zu stellen.

composer -v

Dies ist gleichbedeutend mit einer globalen Änderung der Konfiguration. Ich habe mich entschieden, die Composer.json-Konfigurationsdatei des aktuellen Projekts zu ändern:

composer config -g repo.packagist composer https://packagist.phpcomposer.com

Allgemeine Composer-Befehle

<strong>selfupdate</strong>

Updaten Sie Composer selbst. Bitte führen Sie Composer Selfupdate regelmäßig aus, um Composer immer auf dem neuesten Stand zu halten neueste Version. <strong>selfupdate</strong>

{
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }
}

entspricht

composer selfupdate

<p>dumpautoload</p>

<strong>dumpautoload</strong>Wenn wir das automatische Laden in der Datei „composer.json“ ändern, wird Composer dumpautoload muss ausgeführt werden, damit autoload sofort wirksam wird. Ohne Installations- oder Aktualisierungsbefehle ausführen zu müssen.

composer self-update

entspricht

composer dumpautoload

dumpautoload-Befehl hat zwei häufig verwendete Optionen:

--optimize (-o): Konvertieren Sie PSR-0/4-Autoloading in Classmap, z schnellere Ladegeschwindigkeiten. Dies eignet sich besonders für Produktionsumgebungen, kann jedoch einige Zeit in Anspruch nehmen und ist daher derzeit nicht die Standardeinstellung.

--no-dev: Autoload-Dev-Regeln deaktivieren.

install

composer dump-autoload

Entsprechend der Datei „composer.lock“ (Sperrdatei) oder „composer.json“ in der aktuellen Datei Verzeichnis, Abhängigkeiten definieren und Abhängigkeitspakete installieren. Der Befehl

install prüft zunächst, ob die Sperrdatei „composer.lock“ vorhanden ist. Wenn sie vorhanden ist, wird die in der Datei „composer.lock“ angegebene Version heruntergeladen, wobei die Definition in der Datei „composer.json“ ignoriert wird.

composer install

aktualisieren

<strong>update</strong>

Wenn Sie Ihre Abhängigkeitsversion aktualisieren möchten oder wenn Sie die Abhängigkeit in Composer.json ändern, benötigen Sie Composer führt mithilfe des Update-Befehls Aktualisierungsvorgänge aus, wie in der Datei „composer.json“ definiert.

# 查看 composer install 的帮助信息
composer install -h
# 只安装 require 中定义的依赖,而不安装 require-dev 中定义的依赖
composer install --no-dev

<p>erforderlich<code><strong>require</strong>

require 命令一般用来安装新的依赖包,并将依赖写入当前目录的 composer.json 文件中。

如果 composer.json 文件中,添加或改变了依赖,修改后的依赖关系将被安装或者更新。

<strong>composer require</strong>

 

你也可以直接在命令中指明需要安装的依赖包。

composer require barryvdh/laravel-ide-helper

 

--dev 选项和 require-dev 相对应。如果你的依赖包仅仅用于开发环境,建议加上 --dev 选项。

composer require --dev barryvdh/laravel-ide-helper

 

 

<strong>create-project</strong>

你可以使用 create-project 从现有的包中创建一个新的项目。

它相当于执行了 git clone 命令后,将这个包的依赖安装到它自己的 vendor 目录。

此命令有几个常见的用途:

你可以快速的部署你的应用。

你可以检出任何资源包,并开发它的补丁。

多人开发项目,可以用它来加快应用的初始化。

# 安装 Laravel 项目
composer create-project --prefer-dist laravel/laravel blog 5.5.*

 

如果没有指定版本号,就默认安装最新的版本。

--prefer-dist: 当有可用的包时,从 dist 安装。

phpStudy集成环境下 安装composer失败

报错提示:

The "https://getcomposer.org/versions" file could not be downloaded: failed to open stream: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
The "https://getcomposer.org/download/1.2.0/composer.phar.sig" file could not be downloaded: SSL: crypto enabling timeout
Failed to enable crypto
failed to open stream: operation failed

 

1、安装composer需要开启openssl拓展 而phpstudy默认是关闭的

2、将php目录下的ssleay32.dll,libeay32.dll以及php/ext文件夹下的:php_openssl.dll 3个文件拷贝到WINDOWS\system32 文件夹下。

3、openssl需要CA证书 phpstudy也是没有的

CA证书下载地址:

http://curl.haxx.se/docs/caextract.html

选中之后单击右键选择另存为

下载成功之后放到tmp文件夹下面

4、然后修改php.ini文件

openssl.cafile = "D:\phpStudy\tmp\cacert.pem"

 

5、重启phpStudy就可以了报错提示:

failed to open stream: HTTP request failed!

 

1、检查一下php的curl拓展是否开启

2、检查这两个配置是否开启。

allow_url_fopen = On
user_agent="PHP"

 

也可以这样配置 user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")

模拟浏览器访问也是一个不错的选择

3、开启之后重启重启phpStudy就可以了

 

PS: openssl.cafile 配置选项, 是 PHP 5.6.0. 以上的版本才支持的

更多composer相关技术文章,请访问composer栏目:https://www.php.cn/tool/composer/

Das obige ist der detaillierte Inhalt vonComposer-Abhängigkeitsmanagement (PHP-Tool). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen