PHP 通过 Composer 使用库到不使用 Composer 的现有 PHP 应用程序

PHP Using a Library via Composer To An Existing PHP App That Don't Use Composer

提问人:Ben 提问时间:8/14/2023 更新时间:8/14/2023 访问量:27

问:

我有一个现有的 php 应用程序。我想使用这个库: Name Parser 这个库使用了作曲家。我通过 composer 下载了该库,并将 NameParser 文件夹复制到我现有的 PHP 应用程序中。

当我使用它时,我收到一个错误: PHP 致命错误:未捕获的错误:类“HumanNameParser\Name”... /HumanNameParser/Parser.php:88

我如何在 .php 文件中使用库

<?php
  include_once('includes/HumanNameParser/Parser.php');
  $nameparser = new Parser();
?>

我很确定,我把这件事搞砸了。我不知道命名空间、use、include_once()、include()、require()、require_once()之间的区别。

PHP 命名空间

评论

1赞 naththedeveloper 8/14/2023
require './vendor/autoload.php';应该自动包含您需要的内容,如果它们是由 Composer 安装的,则不需要自己包含或要求内容。
1赞 naththedeveloper 8/14/2023
例如,如果您手动将所有文件从供应商文件夹复制到非 Composer 应用程序,则还需要使用的每个类。include_onceinclude_once('includes/HumanNameParser/Name.php');

答:

2赞 Meezaan-ud-Din 8/14/2023 #1

跑。composer require davidgorges/human-name-parser

然后在您的应用程序中:

include_once('vendor/autoload.php');

然后,您将能够将它与以下功能一起使用:

new HumanNameParser\Parser\Parser();

您可以将自动加载器添加到整个应用程序(它引导的地方)或仅添加到要使用 Parser 包的文件中。