我正在考虑制作一个可以用作微框架的精简版Laravel版本,有点像Symfony世界的Silex。
我想我需要使用Laravel的Illuminate \ Routing组件(可通过Packagist获得)并创建一个新的Router实例,然后使用Request对象调用 - >在路由器上调度,但我不确定是否是正确的方法。
我很感激您的建议/解决方案。
答案 0 :(得分:7)
Mohammad Gufran的博客文章“ DRIVE YOUR APPLICATION WITH ILLUMINATE ROUTER ”可以让您预览可以做些什么。
总结一下:
Etvoilà!
$app['router']->get('/', function() {
// Because 'Hello, World!' is too mainstream
return 'Are you looking for me ?';
});
答案 1 :(得分:5)
Lumen “Laravel惊人的快速微框架”曝光。
摘录:
<?php
/**
* Reimagine what you expect...
*/
$app->get('/', function() {
return view('lumen');
});
/**
* From your micro-framework...
*/
$app->post('framework/{id}', function($framework) {
$this->dispatch(new Energy($framework));
});
答案 2 :(得分:4)
好吧,为了制作Laravel的“剥离”版本,你将不得不深入挖掘。 Laravel由几种经过验证的建筑和设计模式组成。
我们可以在里面找到:
服务提供商形式的面向服务架构
当然以扩展的形式实现客户端/服务器实现 Symfony HTTP组件
巧妙使用事件驱动设计
通过CLI命令与应用程序通信
使用Blade模板和Eloquent ORM的MVC特定实现 数据库层。
路由器作为独立单元。
Levereging Composer包功能。
最后,在Laravel中,一切都与自定义应用层连接在一起。我对Laravel的设计非常着迷。没有框架能够教会我更多。所以,回答你的问题 - 可以创建你的Laravel版本,但更好的解决方案是接受Laravel提供的东西,加入社区并用你自己的想法改进它。
答案 3 :(得分:3)
Laravel发布了Lumen,这是Laravel的官方微框架。它使用nikic/fast-route
代替Symfony的路由组件进行路由,以获得更好的性能。
答案 4 :(得分:1)
实际上Laravel使用Symfony components(以及其他人),HTTP Foundation建立在Symfony HTTP Foundation上,路由器也来自Symfony。
因此,不要深入研究Laravel,检查Symfony组件,您可以使用Symfony组件轻松构建一个微框架(使用composer)。
要构建基础,您可能需要以下组件:
阅读手册,这很容易,您可以轻松完成,也可以按照使用Symfony
组件的框架来了解如何使用这些组件。
答案 5 :(得分:1)
查看 Laravel框架的微型版本 here。