在之前的文章中,我们了解了 composer 是什么、谁使用它以及如何安装它。 在这里,我们将介绍一些基本用例示例,说明如何使用我们之前设置的 composer 工具获取包。
这 example 本文中记录的内容可以在本地完成,也可以在您的 Liquid Web 全托管 cPanel 服务器上完成,在任何一种情况下,这些说明都应该以拥有网站文件的用户身份运行。 在 cPanel 服务器上,这意味着您通过 SSH 以 cPanel 用户身份登录来运行这些,并且您将从 public_html 中开始。
示例 #1:使用 Composer 获取 GuzzleHTTP
作为最流行的 PHP HTTP 客户端之一,Guzzle 是一个可以让发送 HTTP 请求变得简单而容易的库。 作为一个广泛使用且文档齐全的库,Guzzle 是一个易于任何开发人员或设计人员利用的软件包。
要试用 Guzzle,请运行以下命令:
$ mkdir guzzleTest
$ cd ./guzzleTest/
$ composer require guzzlehttp/guzzle
然后在同一文件夹中创建一个 index.php 文件,内容如下:
<?php require_once 'vendor/autoload.php'; $client = new GuzzleHttpClient(); // Make a request $res = $client->request('GET', 'https://www.timeapi.org/utc/now.json'); // Output the status code of the response echo 'Page response code: '.$res->getStatusCode(); echo "<hr/>"; // "200" // Output headers of the response echo 'Response Content-Type header: '; print_r( $res->getHeader('content-type') ); echo "<hr/>"; // 'application/json; charset=utf8' // Output the actual content (body) of the response echo 'Response Body content: '; echo $res->getBody(); echo "<hr/>"; ?>
在上面的 PHP 代码中,以 ‘//’ 开头的行被认为是注释,它们只是用来帮助详细说明脚本的每个步骤。
在浏览器中打开新的 index.php 文件应该会产生一个页面,其中显示:HTTP 响应代码、所提供响应的“Content-Type”标头以及响应的实际内容。
示例 #2:获取框架
虽然 composer 主要用于获取站点运行所需的特定库和包,但也可以使用 composer 提供整个框架或 CMS。 Laravel 是众多使用 composer 分发其核心文件的流行 PHP 框架之一。 一个 example 使用 composer 获取 Laravel 可以通过以下命令完成:
$ composer create-project --prefer-dist laravel/laravel ./laraTest
执行此命令后,composer 将为您做很多事情; 它将创建“laraTest”文件夹,初始化 composer.json 文件,获取任何必要的依赖项,然后设置 Laravel 特定的文件。
为了验证这一点 example 你需要熟悉 Laravel 框架,但是你可以通过检查文件结构来验证 composer 是否完成了它的工作。 要检查文件结构,请运行以下命令:
$ ls -lah
您应该会看到类似于以下内容的结构:
total 200K drwxr-xr-x 11 user users 4.0K Aug 8 13:17 . drwxr-xr-x 10 user nginx 4.0K Aug 8 13:16 .. drwxr-xr-x 10 user users 4.0K Apr 27 09:01 app -rwxr-xr-x 1 user users 1.7K Apr 27 09:01 artisan drwxr-xr-x 3 user users 4.0K Apr 27 09:01 bootstrap -rw-r--r-- 1 user users 1.3K Apr 27 09:01 composer.json -rw-r--r-- 1 user users 111K Aug 8 13:17 composer.lock drwxr-xr-x 2 user users 4.0K Apr 27 09:01 config drwxr-xr-x 5 user users 4.0K Apr 27 09:01 database -rw-r--r-- 1 user users 458 Aug 8 13:17 .env -rw-r--r-- 1 user users 423 Apr 27 09:01 .env.example -rw-r--r-- 1 user users 61 Apr 27 09:01 .gitattributes -rw-r--r-- 1 user users 73 Apr 27 09:01 .gitignore -rw-r--r-- 1 user users 503 Apr 27 09:01 gulpfile.js -rw-r--r-- 1 user users 212 Apr 27 09:01 package.json -rw-r--r-- 1 user users 1.1K Apr 27 09:01 phpunit.xml drwxr-xr-x 2 user users 4.0K Apr 27 09:01 public -rw-r--r-- 1 user users 1.9K Apr 27 09:01 readme.md drwxr-xr-x 5 user users 4.0K Apr 27 09:01 resources -rw-r--r-- 1 user users 567 Apr 27 09:01 server.php drwxr-xr-x 5 user users 4.0K Apr 27 09:01 storage drwxr-xr-x 2 user users 4.0K Apr 27 09:01 tests drwxr-xr-x 29 user users 4.0K Aug 8 13:17 vendor