Php 仅将Laravel/Dingo用于API
我们有一个大规模的PHP应用程序,它基本上是在我们自己的框架中从头开始编写的。现在,对于移动开发,我们需要创建一个API,但问题是是否只使用RESTAPI包,还是使用更强大的API包。从头编写自己的RESTAPI不再是一种选择 我已经考虑了包含该选项的选项。这将很容易实现,但我认为它缺乏良好的结构 我考虑过的另一个选择是,它构建在Laravel之上。一个巨大的优势是它已经有了庞大的结构和大量的工具可供使用 这里的问题是,当我们在同一台服务器上运行自己的框架时,Laravel仅仅用于API是否会有太多的开销。请注意,我们必须包含我们自己框架的很大一部分,以保持事情顺利进行。所有模型和列表将来自我们自己的框架Php 仅将Laravel/Dingo用于API,php,rest,laravel,slim,dingo-api,Php,Rest,Laravel,Slim,Dingo Api,我们有一个大规模的PHP应用程序,它基本上是在我们自己的框架中从头开始编写的。现在,对于移动开发,我们需要创建一个API,但问题是是否只使用RESTAPI包,还是使用更强大的API包。从头编写自己的RESTAPI不再是一种选择 我已经考虑了包含该选项的选项。这将很容易实现,但我认为它缺乏良好的结构 我考虑过的另一个选择是,它构建在Laravel之上。一个巨大的优势是它已经有了庞大的结构和大量的工具可供使用 这里的问题是,当我们在同一台服务器上运行自己的框架时,Laravel仅仅用于API是否会有
我不知道Laravel在进入API部分之前是否会加载很多不必要的项目,或者这是否会像Slim框架那样轻量级。所有框架都在方便构建与性能之间进行权衡 一般来说,除非您的API是高流量的,否则使用哪个框架并不重要,您应该使用您最熟悉的框架。瓶颈通常围绕着数据库的使用,您应该使用探查器来确保解决实际的性能问题 我不知道拉威尔以前是否会装很多不必要的东西 进入API部分,或者这是否会像 Slim框架将是 我很确定这就是为什么Taylor Otwell(Laravel的创造者)让你去看看它是否适合你 如果您决定使用Laravel,从5.2开始,您可以通过指定应使用的中间件,将routes文件中的API端点与通常在对网页的常规调用中加载的组件(如会话、缓存等)分开 如果查看routes文件,例如:
Route::group(['middleware' => ['web']], function () {
//
});
然后查看Http\Kernel.php
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
],
];
您可以看到,它已经在某种程度上为您设置了不加载任何不必要的内容。因此,通过管理路由和中间件,您可以很好地控制API中加载的内容和未加载的内容。谢谢您的回答,我确实查看了Lumen,我认为这将是该项目的发展方向。@SaifBechan-不客气,很高兴我能帮上忙。请记住,如果将来需要,您可以将Lumen项目升级为完整的Laravel应用程序。快乐编码!