Laravel 和 Lumen ACL 与共享代码库

Posted

技术标签:

【中文标题】Laravel 和 Lumen ACL 与共享代码库【英文标题】:Laravel and Lumen ACL with Shared Codebase 【发布时间】:2017-07-11 05:21:40 【问题描述】:

我有两个独立的项目:

    管理员 (Laravel 5.4) API(流明 5.4)

使用共享代码库(数据库、模型...)

在我的管理项目中,我使用spatie/laravel-permission,但这个包不适用于 Lumen,即当我尝试在我的 Lumen 项目 (API) 中安装包时,我收到了这个错误:

致命错误:未捕获的 ReflectionException:/var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php:681 中不存在类 path.storage 堆栈跟踪:#0 /var/www /html/vendor/laravel/framework/src/Illuminate/Container/Container.php(681): ReflectionClass->__construct('path.storage') #1 /var/www/html/vendor/laravel/framework/src/ Illuminate/Container/Container.php(565): Illuminate\Container\Container->build('path.storage') #2 /var/www/html/vendor/laravel/lumen-framework/src/Application.php(208 ): Illuminate\Container\Container->make('path.storage') #3 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(105): Laravel\Lumen\Application ->make('path.storage') #4 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(800): app('path.storage') #5 /var /www/html/vendor/laravel/lumen-framework/config/view.php(31): storage_path('framework/views') #6 /var/www/html/vendor/laravel/lumen-framework/src/Application .php(575):需要('/var/www/html/v...') #7 /var/www/html/ in /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php 第 681 行

致命错误:未捕获 Symfony\Component\Debug\Exception\FatalErrorException:未捕获 ReflectionException:/var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php 中不存在类 path.storage :681 堆栈跟踪:#0 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(681): ReflectionClass->__construct('path.storage') #1 /var/www /html/vendor/laravel/framework/src/Illuminate/Container/Container.php(565): Illuminate\Container\Container->build('path.storage') #2 /var/www/html/vendor/laravel/ lumen-framework/src/Application.php(208): Illuminate\Container\Container->make('path.storage') #3 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/helpers .php(105): Laravel\Lumen\Application->make('path.storage') #4 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(800): 应用('path.storage') #5 /var/www/html/vendor/laravel/lumen-framework/config/view.php(31): storage_path('framework/views') #6 /var/www/html/ vendor/laravel/lumen-framework/src/Appli 在 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php 第 681 行

问题出在哪里?我可以在 Lumen 中使用这个包吗? 或者你能建议我在 Laravel 和 Lumen 中的角色和权限工作的其他包。

【问题讨论】:

我能问你,如果你共享代码库,为什么你有 2 个单独的项目? 因为 Lumen 对 API 有更好的性能,而且我会有很多用户会使用 API。其他部分是管理仪表板。 【参考方案1】:

我看到 spatie/laravel-permission 仓库不支持 Lumen

试试看这是否适合你 http://www.laraveldoctrine.org/docs/1.2/acl

【讨论】:

以上是关于Laravel 和 Lumen ACL 与共享代码库的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Lumen/Laravel 中的单例?

如何在共享主机(子域)上部署流明框架

为速度而生的LARAVEL框架LUMEN——安装与部署

在共享主机中的 Lumen 项目上找不到类异常

Lumen 5.4 与 Laravel 可邮寄

为速度而生的Laravel框架Lumen-路由与中间件