laravel中的后端/前端分离

时间:2014-02-19 13:57:33

标签: php laravel laravel-4

我来自Codeignitor背景。目前我正在Laravel建立一个CMS。

我想知道的是如何将Laravel的后端和前端分开?

在Codeignitor中我用来制作两个控制器Admin_Controller和Front_Controller。

Article extends Admin_Controller
Article extends Front_Controller

,文件结构看起来像这样

controller
--admin
---user
---blog
---news
--user 
--blog
--news

对于管理员控制器我将单独的文件夹和前端控制器保留在控制器文件夹的根目录中。

我应该在Laravel中使用相同的逻辑还是有更好的方法来实现它?

2 个答案:

答案 0 :(得分:31)

如果你想创造像Taylor Otwell这样的思想并且“核心”试图教人们在Laravel做事,这是一个好的开始:

您的文件可以组织为

├── app
│   ├── ZIP
│   │   ├── Controllers
│   │   │   ├── Admin
│   │   │   │   ├── Base.php <--- your base controller
│   │   │   │   ├── User.php
│   │   │   │   ├── Blog.php
│   │   │   │   ├── News.php
│   │   │   ├── Front
│   │   │   │   ├── Base.php <--- your base controller
│   │   │   │   ├── User.php
│   │   │   │   ├── Blog.php
│   │   │   │   ├── News.php

配置PSR-0或PSR-4(更好)自动加载您的课程:

"psr-0": {
    "ZIP": "app/"
},

根据源树创建所有巡视类的命名空间:

<?php namespace ZIP\Controllers\Admin

class User extends Base {

}


<?php namespace ZIP\Controllers\Front

class Blog extends Base {

}

创建基本控制器

<?php namespace ZIP\Controllers\Admin

use Controller;

class Base extends Controller {

}

答案 1 :(得分:2)

你当然可以通过两种控制器方式进行操作,或者如果你想要更多的分离(以及更多'laravel'方式),可以将前端和后端编写为单独的包(之前称为Laravel 3中的捆绑包)。

它们基本上像主应用程序中的独立应用程序一样。他们可以拥有自己的路径,模型,控制器等。您还可以在主应用程序级别编写“核心代码”,这些代码可以在程序包之间共享。

如果你想要学习一个新的框架,那么你要转向Laravel,那么你一定要试着去处理一个包 - 非常强大。

如果你被“转移”到Laravel,或者有时间压力,那就按照平时的做法去做吧。 Laravel很灵活,无论你做什么都会很好。

有关详细信息,请参阅文档。

Laravel当前版本(撰写本文时为4) - http://laravel.com/docs/packages

Laravel 3 - http://three.laravel.com/docs/bundles