- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试了解如何更改 Lumen 项目的默认存储位置(包括其子文件夹)。出于多种原因,考虑到生产 Web 服务器的当前配置,Lumen 在尝试写入日志或编译 Blade View 时抛出权限被拒绝的异常。
在不涉及系统管理员的情况下,唯一的替代方法是将存储文件夹移动到网络服务器上的 tmp 文件夹。
在 laravel 上似乎有一个名为“useStoragePath”的方法,但在 Lumen (5.2.x) 上似乎不可用。
默认路径似乎是“硬编码”的,我发现了这个:
Project\vendor\laravel\lumen-framework\src\Application.php
/**
* Get the storage path for the application.
*
* @param string|null $path
* @return string
*/
public function storagePath($path = null)
{
return $this->basePath().'/storage'.($path ? '/'.$path : $path);
}
对于日志(同一个文件):
/**
* Get the Monolog handler for the application.
*
* @return \Monolog\Handler\AbstractHandler
*/
protected function getMonologHandler()
{
return (new StreamHandler(storage_path('logs/lumen.log'), Logger::DEBUG))
->setFormatter(new LineFormatter(null, null, true, true));
}
底线:是否有任何干净的方法可以在牢记这些限制的情况下覆盖默认存储路径?
最佳答案
On Line 286 of vendor/laravel/lumen-framework/src/helpers.php:
if (! function_exists('storage_path')) {
/**
* Get the path to the storage folder.
*
* @param string $path
* @return string
*/
function storage_path($path = '')
{
return app()->storagePath($path);
}
}
这里的关键是这一行:
if (! function_exists('storage_path'))
这意味着如果尚未定义名为 storage_path
的函数,则 Lumen 将使用其自己的实现。
您只需编写自己的函数来返回您自己的自定义路径。
因为 Lumen 的规则比 Laravel 少得多,所以你如何做到这一点完全取决于你。也就是说,我建议按照以下方式进行:
storage_path
实现确保此文件在 Lumen 本身之前加载。为此,您需要将 require 语句放在 Composer 的自动加载器之前。这可以在 bootstrap/app.php 下的第一行完成:
require_once __DIR__ . '/../app/helpers.php';
require_once __DIR__ . '/../vendor/autoload.php';
try {
(new Dotenv\Dotenv(__DIR__ . '/../'))->load();
} catch (Dotenv\Exception\InvalidPathException $e) {
//
}
....
关于php - Lumen - 更改默认存储路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38384749/
我想在 lumen 中配置文件系统路径,而 lumen 没有提供配置文件夹设置文件系统本地路径怎么办? 最佳答案 在注册服务提供商之前,将以下内容放入您的 bootstrap/app.php 中: $
我想知道如何向 Lumen 中的路由添加查询参数 这是我创建的路线的示例 $app->get('/product/{apikey}','ProductController@getProduct');
我在 Lumen 中有一个类似于 Laravel 的错误消息标准文件夹。问题是没有使用来自那里的消息。如何让 Lumen 使用我的翻译来格式化消息? 现在,当我转储 $validator->error
默认情况下,Lumen “与 Laravel 相同” 有 myApp/public 目录来放置所有公共(public)文件( Assets )。 我想将该目录路径从 myApp/public 更改为
如何在 Lumen 中使用 where 方法 Route::get('/talent/{id}', 'TalentController@talent')->where('id', '[0-9]+');
默认情况下,Lumen “与 Laravel 相同” 有 myApp/public 目录来放置所有公共(public)文件( Assets )。 我想将该目录路径从 myApp/public 更改为
好的,我对 lumen 和 laravel 还很陌生,我正在尝试制作这个 api https://packagist.org/packages/codenexus/lumen-geoip在 lumen
我在 laravel/lumen 中声明了一个路由组,如下所示: $app->group(['middleware' => 'auth'], function () use ($app) {
我正在尝试集成 Oauth2 身份验证,发现 Taylor Otwell 使用 Laravel Passport 为它做了很好的工作。我正在尝试集成相同的内容以创建 REST API,我用谷歌搜索集成
如何在 Lumen 框架中对自定义数组执行验证。例如: 示例数组: $params = array('name' => 'john', 'gender' => 'male'); 我试过类似的方法,
我正在使用 Lumen 队列。要启动正在处理的作业,文档指示要从命令行运行队列监听器,如下所示: php artisan queue:listen 我想直接从我的代码触发我的队列作业进程。怎么做? 最
我在 Lumen 中,在一个 Controller 中,我想以一种简单易行的方式缓存计算结果,而不使用数据库或外部服务,所以我正在寻找将缓存保存在文件系统中。在 Laravel's documenta
流明日志被写入/storage/logs,默认情况下被命名为lumen.log。如何将文件名更改为xyz.log? 最佳答案 如注释中所述,日志文件的位置和名称是硬编码的。 现在,如果出于某些令人信服
我正在尝试在我的 Lumen 应用程序中启用基本用户身份验证用户名和密码。 在 app.php 文件中,以下内容已取消注释,如 https://lumen.laravel.com/docs/5.4/a
我正在尝试了解如何更改 Lumen 项目的默认存储位置(包括其子文件夹)。出于多种原因,考虑到生产 Web 服务器的当前配置,Lumen 在尝试写入日志或编译 Blade View 时抛出权限被拒绝的
我是 Lumen 和 Laravel 的新手,但我必须使用 Lumen 编写 REST API。我已经设置了 Controller ,但在使用记录器时遇到问题。我已遵循文档:Lumen docs 这是
我正在使用 Laravel 的 Lumen 框架学习后端开发,并且正在编写数据库播种类(class) Laravel's documentation 。下面是代码: 模型app\Photo.php n
我正在尝试在我公司的项目中实现单元测试,但我在尝试使用我的数据库中的一组单独数据时遇到了一些奇怪的问题。 由于我希望在受限环境中执行测试,因此我正在寻找在专用数据库中输入数据的最简单方法。长话短说,在
我正在使用 Lumen 和 Fractal 制作 API,但出现错误 Method attempt does not exist 尝试登录时。有人可以帮我解决这个问题吗?这是我的 Controller
我正在查看 Lumen 中的路由,它似乎无法正常工作,我无法确定这是一个问题还是我的理解。 $router->get('{adaptor}[/{id}]', ['uses' => 'MyCon
我是一名优秀的程序员,十分优秀!