在laravel中,我们可以使用存储Facade来保存和读取文件,但在lumen 7.0中,一开始没有可用的文件系统配置。
到目前为止我做了什么:
composer require league/flysystem
- 在
composer.json
文件中,我在自动加载部分添加了以下内容:
"files": [
"app/helpers.php"
],
- 然后在应用程序目录中,我创建了
helpers.php
并添加了以下内容:
if (! function_exists('public_path')) {
/**
* Get the path to the public folder.
*
* @param string $path
* @return string
*/
function public_path($path = '')
{
return app()->make('path.public').($path ? DIRECTORY_SEPARATOR.ltrim($path, DIRECTORY_SEPARATOR) : $path);
}
}
if (! function_exists('storage_path')) {
/**
* Get the path to the storage folder.
*
* @param string $path
* @return string
*/
function storage_path($path = '')
{
return app('path.storage').($path ? DIRECTORY_SEPARATOR.$path : $path);
}
}
- 我创建了config目录,并从其中的laravel复制了filesystems.php
- 则为了注册配置,我向CCD_ 4添加了以下内容:
$app->singleton('filesystem', function ($app) {
return $app->loadComponent('filesystems', 'IlluminateFilesystemFilesystemServiceProvider', 'filesystem');
});
$app->instance('path.config', app()->basePath() . DIRECTORY_SEPARATOR . 'config');
$app->instance('path.storage', app()->basePath() . DIRECTORY_SEPARATOR . 'storage');
$app->instance('path.public', app()->basePath() . DIRECTORY_SEPARATOR . 'public');
在对流明进行了所有更改之后,当我尝试使用存储立面时,例如:
Storage::file($dir);
它会抛出一个错误,上面写着:
未找到类"League \Flysystem\Adapter\Local">
我的配置有什么问题?
我认为您使用了flysystem 2.0版
我也遇到了同样的问题,然后使用了v1.1,它就成功了。
所以运行composer require --dev league/flysystem=^1.1
来源:https://github.com/barryvdh/laravel-ide-helper/issues/1105