jbo*_*ins 5 php codeigniter-2 flysystem
我尝试运行 Flysystem 的适配器基本示例代码Local,但出现Class 'League\Flysystem\Adapter\Local' not found错误。这是我的过程:
版本检查:
php -v
PHP 5.5.9-1ubuntu4.23 (cli) (built: Feb 8 2018 21:59:47)
Run Code Online (Sandbox Code Playgroud)
安装飞行系统:
composer require league/flysystem
Run Code Online (Sandbox Code Playgroud)
输出显示我是最新的(这是我第二次运行它):
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
Run Code Online (Sandbox Code Playgroud)
现在网络根目录中有一个vendor文件夹。其中./web/vendor/league/flysystem/src/Adapter$有这些文件:
AbstractAdapter.php
AbstractFtpAdapter.php
CanOverwriteFiles.php
Ftpd.php
Ftp.php
Local.php
NullAdapter.php
Polyfill/
SynologyFtp.php
Run Code Online (Sandbox Code Playgroud)
...只是表明它似乎安装正确(?)我在我的 Web 根目录中创建一个测试文件和一个测试目录:
fly-local.php我将他们的文档中的文本粘贴到其中( https://flysystem.thephpleague.com/docs/adapter/local/):
<?php
use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local;
$adapter = new League\Flysystem\Adapter\Local(__DIR__.'/myfiles');
$filesystem = new Filesystem($adapter);
Run Code Online (Sandbox Code Playgroud)
...并将适配器的根文件夹更改为myfiles(正确吗?)。然后我运行它:
php fly-local.php
Run Code Online (Sandbox Code Playgroud)
它输出:
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
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
你使用了composer,那么你需要包含composerautoload.php文件。
应该fly-local.php是:
<?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);
Run Code Online (Sandbox Code Playgroud)
如果您使用框架,您可以看到它包含为您自动加载的 php 文件(通常为 index.php)。如果您的测试/自定义文件未包含在框架中,则需要手动包含该文件。
| 归档时间: |
|
| 查看次数: |
11582 次 |
| 最近记录: |