首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >调用Flysystem,为什么我得到PHP致命错误:找不到类‘Adapter\Flysystem\Adapter\Local’?

调用Flysystem,为什么我得到PHP致命错误:找不到类‘Adapter\Flysystem\Adapter\Local’?
EN

Stack Overflow用户
提问于 2018-06-05 12:22:06
回答 1查看 7.1K关注 0票数 4

我尝试为Local适配器运行Flysystem的基本示例代码,但得到一个Class 'League\Flysystem\Adapter\Local' not found错误。这是我的流程:

版本检查:

代码语言:javascript
复制
php -v
PHP 5.5.9-1ubuntu4.23 (cli) (built: Feb  8 2018 21:59:47)

安装Flysystem:

代码语言:javascript
复制
composer require league/flysystem

输出显示我是最新的(这是我第二次运行它):

代码语言:javascript
复制
Using version ^1.0 for league/flysystem
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files

现在在web根目录下有一个vendor文件夹。在./web/vendor/league/flysystem/src/Adapter$中有以下文件:

代码语言:javascript
复制
AbstractAdapter.php
AbstractFtpAdapter.php
CanOverwriteFiles.php
Ftpd.php
Ftp.php
Local.php
NullAdapter.php
Polyfill/
SynologyFtp.php

显示似乎已正确安装的...just (?)我在web根目录下创建了一个测试文件和一个测试目录:

  1. fly-local.php
  2. myfiles/

我将他们的文档(https://flysystem.thephpleague.com/docs/adapter/local/)中的文本粘贴到fly-local.php中:

代码语言:javascript
复制
<?php

use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local;

$adapter = new League\Flysystem\Adapter\Local(__DIR__.'/myfiles');
$filesystem = new Filesystem($adapter);

...and将适配器的根文件夹更改为myfiles (正确吗?)。然后我运行它:

代码语言:javascript
复制
php fly-local.php

它输出:

代码语言:javascript
复制
PHP Fatal error:  Class 'League\Flysystem\Adapter\Local' not found in /[PROJECT DIR]/web/fly-local.php on line 6
PHP Stack trace:
PHP   1. {main}() /[PROJECT DIR]/web/fly-local.php:0

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-05 12:31:09

如果使用了composer,则需要包含composer autoload.php文件。

fly-local.php应为:

代码语言:javascript
复制
<?php

require __DIR__.'/vendor/autoload.php';

use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local;

$adapter = new League\Flysystem\Adapter\Local(__DIR__.'/myfiles');
$filesystem = new Filesystem($adapter);

如果你使用一个框架,你可以看到它包含了自动加载的php文件(通常是index.php)。如果您的测试/自定义文件未包含在框架中,则需要手动包含该文件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50691994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档