找不到与作曲家一起安装的 phpleague Csv 库中的类


class from thephpleague Csv library installed with composer not found

我安装了作曲家,我能够按照基本使用指南的说明安装和使用monolog。但它不适用于 The Php League 的 Csv 库。

以下是我执行的步骤:

1) 创建一个空目录

2)安装在那里独白

$ composer require monolog/monolog

3)检查它是否有效

遵循作曲家文档。

从 php 交互式控制台(使用 php -a 初始化):

php > require __DIR__ . '/vendor/autoload.php';
php > $log = new Monolog'Logger('name');
php > $log->pushHandler(new Monolog'Handler'StreamHandler('app.log', Monolog'Logger::WARNING));
php > $log->addWarning('Foo');

然后,我从控制台验证了app.log内容:

$ cat app.log
[2016-02-09 00:55:06] name.WARNING: Foo [] []

4) 从 leage 安装 csv

$ composer require league/csv

5)检查它是否有效

以下联赛/csv 文档。

从 php 交互式控制台(你知道,php -a):

php > require __DIR__ . '/vendor/autoload.php';
php > use League'Csv'Reader;
php > $reader = Reader::createFromPath('file.csv');

我收到此错误:

PHP Fatal error:  Class 'Reader' not found in php shell code on line 1

为什么以及如何?

  • 为什么它适用于monolog/monolog但不适用于league/csv
  • 如何使用 php 交互式控制台中的league/csv

使用 PHP 交互式 shell 时,use 语句似乎无法正常工作。否则,Reader的 use 语句将被捕获,错误将是类似于"PHP 致命错误:在第 1 行的 php shell 代码中找不到类'联盟''Csv''Reader'"

要在外壳中试用它,请使用 FQCN(或 QCN),就像处理单日志示例一样:

php > require __DIR__ . '/vendor/autoload.php';
php > $reader = League'Csv'Reader::createFromPath('file.csv');