Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/07/2013, 01:42
eternoaprendiz
 
Fecha de Ingreso: junio-2013
Ubicación: Madrid
Mensajes: 73
Antigüedad: 10 años, 11 meses
Puntos: 27
Respuesta: multple sitios con laravel

Se puede hacer perfectamente y efectivamente los módulos son la solución.

Los módulos de terceros, que instalas con composer, van a /vendor, pero Laravel además nos permite tener módulos propios, que no tienen porqué compartirse con otros proyectos, pero que nos permiten dividir nuestra aplicación.

Lo apropiado sería que tuvieras un módulo para cada festival y otro para el admin. El comando sería algo así:

Código:
$ php artisan workbench festival/admin --resources
$ php artisan workbench festival/edicion2011 --resources
$ php artisan workbench festival/edicion2012 --resources
...
en la nueva carpeta /workbench tendrás todos los módulos. Es posible tener en cada uno su propio routes.php y sus propias carpetas views, controllers, config, ...

Además, desde esos módulos puedes usar modelos y plantillas del framework principal. O sea que puedes hacer algo como:

Código PHP:
View::make('edicion2012::home'); 
Que cargaría /app/workbench/festival/edicion2012/src/views/home.blade.php

Y en esa plantilla del módulo puedes tener algo como

Código PHP:

@include('partials.footer'
Que cargaría /app/views/partials/footer.blade.php.

Precisamente estoy con una web que organiza congresos, y cada congreso tiene su propia "estructura" pero comparten ciertas plantillas y modelos.

Como decía, en cada módulo puedes tener un routes.php, que podría tener este aspecto:

Código PHP:
<?php

Route
::group(array("prefix" => "festival-2012"), function()
{
    
Route::get(
        
"/",
        array(
            
'as' => 'f2012.home',
            function() { return 
View::make("festival2012::home"); },
        )
    );
Y luego en la vista puedes tener:
Código PHP:
{{ link_to_route("f2012.home""Ir al inicio del Festival 2012") }} 
Así que es fácil cambiar rutas sin tener que reescribir todo.

De aquí puedes sacar más información. No todo lo que pone tendrías que aplicarlo, pero es un buen comienzo:

http://jasonlewis.me/article/laravel-4-develop-packages-using-the-workbench