网站上没有提供明确的说明GitHub 页面为了php parsecsv
。然而,有一个模糊的提及需要手动包含以下内容:
如果您不使用 Drupal、Laravel、Symfony、Yii 等框架,您可能需要在 PHP 脚本中手动包含 Composer 的自动加载器文件:
> require_once __DIR__ . '/vendor/autoload.php';
我不懂这啥意思。
- 我是否只需将此行批量复制到我的 PHP 脚本中并期望它能够工作?
- 是否需要针对我的目录设置特有的路径编辑 require 行?
- 我需要下载文件并将其放在某个地方吗?绝对来说,还是需要相对于我的PHP脚本位置放置?
- 这是什么
__DIR__
意思?
注意:我使用的是 Centos 7 系统。
答案1
该库需要包含 Composer 的自动加载器才能工作。自动加载是一项使 PHP 解释器能够在系统路径的特定模式下查找类定义的功能。
如果没有自动加载,您必须包含/需要 ( include()
, require()
) 每个包含类定义的文件,然后才能基于这些类实例化对象。
所以不可能出现这样的情况:
$csv = new ParseCsv\Csv('data.csv');
因为ParseCsv\Csv
PHP 解释器不知道类。另一方面,自动加载使 PHP 解释器在某些模式定义的系统路径下查找具有类定义的文件,并在首次使用之前自动加载它。
所以你需要使用 作曲家。您需要在系统或项目范围内安装它。然后使用下载的composer.phar
文件初始化项目(如果尚未完成):
$ composer init
之后您可以使用命令中给出的parsecsv/parse-csv-for-php图书馆:
$ composer require parsecsv/php-parsecsv
那么你必须加载Composer 的自动加载器通过将此行添加到将利用 Composer 功能的每个 PHP 文件(因此至少是您要使用php-parsecsv
库的这些文件),或者将其包含在单个 PHP 文件中,例如index.php
或者bootstrap.php
如果该文件是整个应用程序的公共入口点。
require_once __DIR__ . '/vendor/autoload.php';
现在你可以走了。
回复您的问题:
- 我是否只需将此行批量复制到我的 PHP 脚本中并期望它能够工作?
是的。
- 是否需要针对我的目录设置特有的路径编辑 require 行?
有时。如果您使用 Composer 的默认值,那么此路径就可以了。
- 我需要下载文件并将其放在某个地方吗?绝对来说,还是需要相对于我的PHP脚本位置放置?
您需要下载到
composer.phar
某个地方,但它必须是您的项目目录。此文件只是一个外部应用程序,用于管理项目的依赖项(查看composer.json
项目目录中的依赖项列表和其他与 Composer 相关的信息)。composer.phar
文件本身不是应用程序运行所必需的运行,就像你不需要建房计划就可以住在房子里一样。composer.phar
(可以重命名为 justcomposer
)可以放置在任何地方(即在任何路径下),但将其放置在PATH
环境变量中包含的某个目录下或应用程序的根目录下很方便,因此从命令调用它更容易线。
- 这是什么
__DIR__
意思?
下列的PHP手册:文件的目录。如果在包含内部使用,则返回包含文件的目录。这相当于dirname(
__FILE__
)。该目录名称没有尾部斜杠,除非它是根目录。
祝你好运!
注意:这个问题可能应该在 stackoverflow.com 上问,因为它与 PHP 编程比与 UNIX/Linux 操作系统更相关:)