做网站 怎么做留言,Wordpress 仿站 工具,家具网站建设策划,网页排版设计模板前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到网站。
介绍
Composer 是一个流行的 PHP 依赖管理工具#xff0c;主要用于简化项目依赖项的安装和更新。它会检查特定项目依赖的其他软件包通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到网站。
介绍
Composer 是一个流行的 PHP 依赖管理工具主要用于简化项目依赖项的安装和更新。它会检查特定项目依赖的其他软件包并根据项目要求安装适当的版本。
在本教程中您将在 Ubuntu 18.04 系统上安装并开始使用 Composer。
先决条件
要完成本教程您需要
一个按照 Ubuntu 18.04 初始服务器设置指南设置的 Ubuntu 18.04 服务器包括一个 sudo 非 root 用户和一个防火墙。
步骤 1 — 安装依赖项
在下载和安装 Composer 之前您需要确保服务器已安装所有依赖项。
首先通过运行以下命令更新软件包管理器缓存
sudo apt update现在让我们安装依赖项。我们需要使用 curl 下载 Composer使用 php-cli 安装和运行它。php-mbstring 包是必需的以提供我们将使用的库的函数。git 用于下载项目依赖项unzip 用于解压缩压缩包。您可以使用以下命令安装所有内容
sudo apt install curl php-cli php-mbstring php-curl git unzip安装完先决条件后我们可以安装 Composer 本身。
步骤 2 — 下载并安装 Composer
Composer 提供了一个用 PHP 编写的安装程序。我们将下载它验证它是否损坏然后使用它来安装 Composer。
确保您位于主目录中然后使用 curl 检索安装程序
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php接下来验证安装程序是否与 Composer Public Keys / Signatures 页面上找到的最新安装程序的 SHA-384 哈希匹配。从该页面复制哈希并将其存储为 shell 变量
HASH544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061确保您用最新的哈希替换高亮值。
现在执行以下 PHP 脚本以验证安装脚本是否安全运行
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请使用以下命令它将下载并安装 Composer 作为名为 composer 的系统命令放在 /usr/local/bin 下
sudo php composer-setup.php --install-dir/usr/local/bin --filenamecomposer您将看到以下输出 All settings correct for using Composer
Downloading...Composer (version 2.1.9) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer要测试您的安装请运行
composer您将看到以下输出显示 Composer 的版本和参数。
______/ ____/___ ____ ___ ____ ____ ________ _____/ / / __ \/ __ __ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_//_/
Composer version 2.1.9 2021-10-05 09:47:38Usage:command [options] [arguments]Options:-h, --help Display this help message-q, --quiet Do not output any message-V, --version Display this application version--ansi Force ANSI output--no-ansi Disable ANSI output-n, --no-interaction Do not ask any interactive question--profile Display timing and memory usage information--no-plugins Whether to disable plugins.-d, --working-dirWORKING-DIR If specified, use the given directory as working directory.--no-cache Prevent use of the cache-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
. . .这验证了 Composer 在您的系统上成功安装并且可以在系统范围内使用。
现在让我们看看如何使用 Composer 来管理依赖项。
步骤 3 —— 在 PHP 项目中使用 Composer
PHP 项目通常依赖于外部库管理这些依赖及其版本可能会很棘手。Composer 通过跟踪您的依赖关系并使其他人能够轻松安装它们来解决这个问题。
为了在项目中使用 Composer您需要一个 composer.json 文件。composer.json 文件告诉 Composer 它需要为您的项目下载哪些依赖项以及允许安装每个软件包的哪些版本。这对于保持项目一致性并避免安装可能导致向后兼容性问题的不稳定版本非常重要。
您不需要手动创建此文件 —— 这样做很容易遇到语法错误。当您使用 require 命令向项目添加依赖项时Composer 会自动生成 composer.json 文件。您可以以相同的方式添加其他依赖项而无需手动编辑此文件。
使用 Composer 在项目中安装包作为依赖项的过程包括以下步骤
确定应用程序需要哪种类型的库。在 Packagist.org 上研究合适的开源库这是 Composer 的官方包存储库。选择您想要依赖的软件包。运行 composer require 将依赖项包含在 composer.json 文件中并安装该软件包。
让我们通过一个演示应用程序来尝试一下。
该应用程序的目标是将给定的句子转换为 URL 友好的字符串 —— 一个 slug。这通常用于将页面标题转换为 URL 路径例如本教程的 URL 最后一部分。
让我们从为我们的项目创建一个目录开始。我们将其命名为 slugify
cd ~
mkdir slugify
cd slugify现在是时候在 Packagist.org 上搜索一个可以帮助我们生成 slugs 的软件包了。如果您在 Packagist 上搜索术语 “slug”您将会得到类似于以下结果
!Packagist Search: easy-slug/easy-slug, muffin/slug, ddd/slug, zelenin/slug, webcastle/slug, anomaly/slug-field_type
您将在列表中的每个软件包右侧看到两个数字。顶部的数字表示软件包被安装的次数底部的数字显示软件包在 GitHub 上被标记为喜欢的次数。您可以根据这些数字重新排列搜索结果查找搜索栏右侧的两个图标。一般来说安装次数和星星数更多的软件包往往更稳定因为有很多人在使用它们。还要检查软件包描述的相关性以确保它是您需要的。
我们需要一个简单的字符串转换为 slug 的转换器。从搜索结果中软件包 cocur/slugify 似乎是一个很好的选择安装次数和星星数都还可以接受。 软件包在截图显示的页面下方一点点。
Packagist 上的软件包有一个 vendor 名称和一个 package 名称。每个软件包都有一个唯一的标识符命名空间格式与 GitHub 用于其存储库的格式相同即 vendor/package。我们要安装的库使用的命名空间是 cocur/slugif。您需要这个命名空间才能在项目中要求该软件包。
现在您知道要安装的确切软件包是哪个了运行 composer require 将其包含为依赖项并为项目生成 composer.json 文件
composer require cocur/slugify当 Composer 下载依赖项时您将看到以下输出 Using version ^4.0 for cocur/slugify
./composer.json has been created
Running composer update cocur/slugify
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals- Locking cocur/slugify (v4.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals- Downloading cocur/slugify (v4.0.0)- Installing cocur/slugify (v4.0.0): Extracting archive
Generating autoload files从输出中可以看出Composer 自动决定了要使用的软件包的版本。如果现在检查您的项目目录它将包含两个新文件composer.json 和 composer.lock以及一个 vendor 目录
ls -ltotal 12
-rw-rw-r-- 1 sammy sammy 59 Oct 26 19:04 composer.json
-rw-rw-r-- 1 sammy sammy 3411 Oct 26 19:04 composer.lock
drwxrwxr-x 4 sammy sammy 4096 Oct 26 19:04 vendorcomposer.lock 文件用于存储有关安装了哪些软件包的版本信息并确保如果其他人克隆您的项目并安装其依赖项时使用相同的版本。vendor 目录是项目依赖项的所在地。vendor 文件夹不需要提交到版本控制 —— 您只需要包含 composer.json 和 composer.lock 文件。
让我们快速看一下版本约束。如果检查您的 composer.json 文件的内容您将看到类似于以下内容
cat composer.json{require: {cocur/slugify: ^4.0}
}您可能会注意到 composer.json 中版本号前面的特殊字符 ^。Composer 支持几种不同的约束和格式来定义所需的软件包版本以提供灵活性同时保持项目的稳定性。由自动生成的 composer.json 文件使用的插入符^运算符是最大互操作性的推荐运算符遵循语义化版本。在这种情况下它将 4.0 定义为最低兼容版本并允许更新到 5.0 以下的任何未来版本。
一般来说您不需要在 composer.json 文件中修改版本约束。但是某些情况可能需要您手动编辑约束 —— 例如当您需要升级所需库的一个主要新版本时或者您想要使用的库不遵循语义化版本时。
以下是一些示例以便更好地理解 Composer 版本约束的工作原理
约束含义允许的示例版本^1.0 1.0 2.01.0, 1.2.3, 1.9.9^1.1.0 1.1.0 2.01.1.0, 1.5.6, 1.9.9~1.0 1.0 2.0.01.0, 1.4.1, 1.9.9~1.0.0 1.0.0 1.11.0.0, 1.0.4, 1.0.91.2.11.2.11.2.11.* 1.0 2.01.0.0, 1.4.5, 1.9.91.2.* 1.2 1.31.2.0, 1.2.3, 1.2.9
有关 Composer 版本约束的更深入视图请参阅官方文档。
接下来让我们看一下如何使用 Composer 自动加载依赖项。
步骤 4 — 包含自动加载脚本
由于 PHP 本身不会自动加载类Composer 提供了一个自动加载脚本你可以在项目中包含它从而免费获得自动加载功能。这样可以更轻松地处理项目的依赖关系。
你需要做的唯一一件事就是在 PHP 脚本中在任何类实例化之前包含 vendor/autoload.php 文件。当你添加第一个依赖项时Composer 会自动生成这个文件。
让我们在我们的应用程序中尝试一下。创建文件 test.php 并在文本编辑器中打开它
nano test.php添加以下代码引入 vendor/autoload.php 文件加载 cocur/slugify 依赖项并使用它创建一个 slug
?php
require __DIR__ . /vendor/autoload.php;use Cocur\Slugify\Slugify;$slugify new Slugify();echo $slugify-slugify(Hello World, this is a long sentence and I need to make a slug from it!);保存文件并退出编辑器。
现在运行脚本
php test.php这将产生输出 hello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it。
当新版本发布时依赖项需要更新让我们看看如何处理这个问题。
步骤 5 — 更新项目依赖项
每当你想要将项目依赖项更新到更新版本时运行 update 命令
composer update这将检查你项目中所需的库的更新版本。如果找到更新版本并且它与 composer.json 文件中定义的版本约束兼容Composer 将替换先前安装的版本。composer.lock 文件将被更新以反映这些更改。
你也可以通过像这样指定它们来更新一个或多个特定的库
composer update vendor/package vendor2/package2确保在更新依赖项后检查你的 composer.json 和 composer.lock 文件以便其他人可以安装这些更新版本。
结论
Composer 是每个 PHP 开发人员都应该在其工具箱中拥有的强大工具。在本教程中你安装了 Composer 并在一个简单的项目中使用了它。你现在知道如何安装和更新依赖项。
除了提供一种简单可靠的管理项目依赖关系的方式之外它还为社区创建的 PHP 包的共享和发现建立了一个新的事实标准。