laravel中的后端/前端分离

问题描述 投票:9回答:2

我来自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中使用相同的逻辑还是有更好的方法来做到这一点?

php laravel laravel-4
2个回答
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 {

}

2
投票

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

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

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.