我用Laravel编写了一个REST API。最重要的是,我想创建一个管理面板,其中包含大量统计信息和“强大”审核工具,这些工具应在服务器端呈现。 虽然REST API使用OAuth2.0并且仅返回JSON + HAL(HATEOAS),但管理面板将使用HTTP Basic身份验证以及基于会话的身份验证的正常凭据登录。
我知道可以很容易地使用第二个auth-filter和Route组来在一个应用程序中完成所有这些操作。我知道只有在需要时才会加载库。但我想创建一个完全独立的第二个应用程序。
为什么呢? 保持REST API轻量级:没有不必要的库,没有第二个auth层,没有其他路由,规则和过滤器等.REST API是Restful,我不想添加额外的混乱。虽然它可能会使测试变得更复杂。
以下是它的样子:
后端
- app
---模特
---- RestapiModel.php
- app
---模特
---- AdminModel.php
问题是:在应用程序2中,我需要使用应用程序1的模型 所以我想做s.th.像
class AdminModel extends RestapiModel {
protected $connection = 'application_1_database';
// Statistical methods
// Database manipulation
// etc.
}
我现在有两个问题:
我怎样才能做到这一点? “AdminModel扩展RestapiModel”将无法正常工作。我是否必须使用名称空间,特征或仅将模型包含在文件的顶部?你会如何解决这个问题?
您如何看待分离API和管理的完整方法?
提前致谢
菲尔
答案 0 :(得分:0)
它不漂亮,但您可以使用require
导入文件
require base_path().`/../rest/models/RestapiModel.php`;
class AdminModel extends RestapiModel {
protected $connection = 'application_1_database';
// Statistical methods
// Database manipulation
// etc.
}
或者您可以使用composer自动加载其余api的所有模型。管理员应用程序中的composer.json
可能如下所示:
// ...
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"../../rest/app/models",
"app/database/migrations",
// ...
]
},
// ...
(更改自动加载部分后,请确保运行composer dump-autoload
)