如何使用和组件来开发一个PHP应用?(一)
2021-11-01
是一个寻找PHP组件的社区,是一个安装PHP组件的工具。它是 PHP 的依赖管理器。它在命令行上运行。您告诉您需要哪些组件,然后您将下载这些组件并将其自动加载到您的项目中。就这么简单。
与您密切合作。如果你告诉你要使用/,你会从中获取/,找到这个组件的仓库地址,确定使用哪个版本,并找出这个组件的依赖,然后下载/及其依赖在您的项目中。
另外,项目中所有的PHP组件都会自动生成一个符合PSR标准的自动加载器,有效地抽象了依赖管理和自动加载。因此,它是 PHP 社区最重要的附加工具。毫不夸张地说,我们不得不使用诸如、、和 r 来手动实现自动加载的痛苦日子。
关于安装和使用,这里不再赘述,请参考中文网站。
示例项目
下面我们通过一个示例项目来演示如何使用和组件来开发一个 PHP 应用程序。此应用程序的作用是扫描 CSV 文件中的 URL 以找出死链接。应用程序将向每个 URL 发送一个 HTTP 请求。如果返回 如果 HTTP 状态码大于等于 400,则将死链接发送到标准输出。这是一个命令行应用程序。开发完成后,我们会执行这个脚本,传入csv文件的路径,在标准输出中显示死链接列表。
安装组件
在开始之前,我们先来看看使用现有的 PHP 组件可以解决哪些任务:我们需要一个可以迭代处理 csv 文件数据的组件。另外,我们需要向csv文件中的每个URL发送HTTP请求,所以我们还需要一个可以发送的。HTTP 请求和检查 HTTP 响应组件。
浏览之后,我们发现了/和/csv两个组件,前者用于处理HTTP报文,后者用于处理CSV数据。下面我们在项目的顶层运行以下命令:
composer require guzzlehttp/guzzle
composer require league/csv
依赖项将安装在根目录中。安装完成后,根目录下会生成.json和.lock文件:
.lock 文件将列出项目使用的所有 PHP 组件,以及组件的具体版本号。这实际上锁定了项目,使项目只能使用特定版本的 PHP 组件。这样做的好处是,无论可用的最新版本如何,都将下载此文件中列出的特定版本。您应该将 .lock 文件放入版本控制中,以便团队成员可以使用与您相同的 PHP 版本。如果本地开发和服务端使用相同版本的PHP组件,可以最大限度的减少不同组件版本带来的bug。
如果你真的想下载最新版本的组件并更新.lock,可以使用命令。
自动加载
接下来我们编写应用代码,在根目录下创建一个scan.php文件,然后使用文件顶部创建的自动加载器:
require 'vendor/autoload.php';
创建的自动加载器实际上是一个名为 .php 的文件,该文件保存在目录中。在下载每个 PHP 组件时,它会检查每个组件的 .json 文件,以确定如何加载该组件。获取到这些信息后,就会在本地为这个组件创建一个符合 PSR 标准的自动加载器。这样我们就可以实例化项目中的任何 PHP 组件,这些组件会根据需要自动加载。
写代码
下面我们正式使用和CSV组件来编写scan.php代码:
下面我们在 urls.csv 中添加一些 URL,每行一个php接口开发,其中至少有一个是死链接:
然后打开终端,执行scan.php脚本:
php scan.php urls.csv
我们传入了两个参数,第一个是脚本文件scan.php的路径,另一个是CSV文件的路径。输出如下:
以上内容希望对大家有所帮助。推进的过程中总会遇到很多问题和瓶颈。写太多业务代码没有方向感。我不知道从哪里开始改进。我整理了这方面的一些资料,包括但不限于:分布式架构php接口开发,高扩展性,高性能,高并发,服务器性能调优,TP6,,YII2,,,,,优化,脚本,微服务,以及其他需要的知识点进阶进阶干货可以免费分享给大家。有需要的可以加入我的官方群。点击这里。