如何制作Laravel的微框架版本?

时间:2014-02-15 04:07:07

标签: php laravel silex

我正在考虑制作一个可以用作微框架的精简版Laravel版本,有点像Symfony世界的Silex。

我想我需要使用Laravel的Illuminate \ Routing组件(可通过Packagist获得)并创建一个新的Router实例,然后使用Request对象调用 - >在路由器上调度,但我不确定是否是正确的方法。

我很感激您的建议/解决方案。

6 个答案:

答案 0 :(得分:7)

Mohammad Gufran的博客文章“ DRIVE YOUR APPLICATION WITH ILLUMINATE ROUTER ”可以让您预览可以做些什么。

总结一下:

  1. 使用Composer初始化您的项目。
  2. 定义依赖关系,即:“照亮/路由”:“4.1。*”“照亮/事件”:“4.1。*”
  3. 按照建议创建“index.php”“routes.php”文件。
  4. Etvoilà!

    摘自routes.php:

    $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)。

要构建基础,您可能需要以下组件:

  1. HttpFoundation
  2. Routing
  3. HttpKernel
  4. 阅读手册,这很容易,您可以轻松完成,也可以按照使用Symfony组件的框架来了解如何使用这些组件。

答案 5 :(得分:1)

查看 Laravel框架的微型版本 here