backend/frontend separation in laravel

If you want to create thinks like Taylor Otwell and 'the core' is trying to teach people do things in Laravel, this is a good start:

Your files could be organized as

├── 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

Configure a PSR-0 or PSR-4 (better) to autoload your classes:

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

Create namespaces to all tour classes, according to your source tree:

<?php namespace ZIP\Controllers\Admin

class User extends Base {

}


<?php namespace ZIP\Controllers\Front

class Blog extends Base {

}

And create your base controllers

<?php namespace ZIP\Controllers\Admin

use Controller;

class Base extends Controller {

}

You can certainly do it the two controllers way or if you like even more separation (and a more 'laravel' way), write your front end and backend as separate packages (previously called bundles in Laravel 3).

They basically behave like standalone applications within your main app. They can have their own routes, models, controllers etc. You can also write 'core code' at the main application level which can be shared across the packages.

If you are moving to Laravel as you want to learn a new framework, then you should definitely try and get a handle on packages - very powerful.

If you are being 'made' to move to Laravel, or have some time pressure, just do it as you have normally done. Laravel is flexible and will be fine either way you do it.

For more info, see the docs.

Laravel current version (4 at time of writing) - http://laravel.com/docs/packages

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