tutorial started getting español ejemplos php laravel

started - Laravel routes.php se está volviendo grande



laravel tutorial (5)

A medida que continuamente agrega más y más rutas a Routes.php, se vuelve más y más grande. ¿Cómo los organizas?


Usualmente uso rutas grupales (porque los controladores tienden a tener el mismo tipo de filtrado necesario si están relacionadas) para organizarlas o si desea / puede tener un archivo de rutas más pequeño, es posible que desee registrar sus controladores y realizar comprobaciones de validación adicionales. de los parámetros de la URL dentro del controlador mismo.


En realidad, las rutas deben mantenerse escasas. Simplemente mueva su código a los controladores y use las rutas para registrarse y redirigir a ellos. La convención es almacenar un controlador por archivo para que su código se organice automáticamente.

Mira esto

// application/controllers/sample.php class Sample_Controller extends Base_Controller { public function action_index() { echo "Wellcome to the root" //www.testapp.com/sample } public function action_edit() { echo "Some editing functions here." //www.testapp.com/sample/edit } public function action_whatsoever() { echo "Put here whatever you like." //www.testapp.com/sample/whatsoever } }

La ruta de acción del controlador se puede registrar así:

//application/routs.php Route::controller(''admin::home'');

Muy directo y cómodo.

Actualizar:

También puede registrar todos sus controladores con esta línea para toda la aplicación automáticamente:

Route::controller(Controller::detect());

O el controlador con todas las acciones:

Route::controller(Controller::detect(''yourcontroller''));


Alternativamente, puedes simplemente almacenar las rutas en diferentes archivos y luego obtener esos archivos usando include:

Route::group(stuff,function(){ include __DIR__.DS.''routes1.php''; include __DIR__.DS.''routes2.php''; });

Eso da una forma agradable y limpia de ordenar el manejo cuando hay demasiado código, también podrías mencionarlo

Route::controller(Controller::detect());

Y luego estructura tus controladores en consecuencia:

class Account_Controller extends Base_Controller { public function action_login() { //Login } public function action_logout() { ... }

Si tiene que pasar parámetros a alguna función:

public function dosomething($input){ ... }

Puede alcanzar esas funciones de esta manera:

http://yourapp/account/login http://yourapp/account/logout

Luego, puede llamar a la función agregando los parámetros a la URL,

http://yourapp.account/dosomething/somedata

Si necesita algunos métodos para protegerlos, añádalos sin la acción_ para que el público no pueda acceder a ellos.

Alternativamente, puede cambiar a métodos relajantes, que es básicamente una forma de responder a alguna entrada en función del tipo de consulta que recibe, por ejemplo, cuando recibe una solicitud "GET" a la página de inicio de sesión que significa que el usuario necesita ver el pantalla de inicio de sesión, cuando recibe una solicitud "POST" que normalmente significa que el usuario está publicando datos de inicio de sesión y, en consecuencia, puede responder lo que le ayudará a reducir el número de funciones para obtener más información sobre métodos de descanso, puede leer este artículo brillante por Ryan Tomayako en http://tomayko.com/writings/rest-to-my-wife

Para usar métodos relajantes, debe mencionar restful to true y luego agregar la palabra clave action antes del nombre de la función.

public $restful = true; public function get_login() { return View::make(''login''); //This function is accessible using GET request to http://yourapp/login } public function post_login() { $data = Input::get(); //do something using the Input data //This function is accessible using a POST request to http://yourapp/login }

¡De esta forma puede eliminar la necesidad de otra ruta para procesar y verificar las credenciales de los usuarios!

y si no desea que se acceda a ciertos métodos con métodos de descanso, simplemente no incluya la palabra clave de acción, (get, post, ...) en el nombre de la función.

La combinación de métodos relajantes con enrutamiento inteligente es la manera más eficiente de mantener su código limpio y seguro.


Creé un directorio / aplicación / rutas / y agregué archivos allí. Cada archivo es solo un conjunto de rutas. Luego en routes.php agregué el siguiente código para incluirlos a todos:

// Dynamically include all files in the routes directory foreach (new DirectoryIterator(__DIR__.DS.''routes'') as $file) { if (!$file->isDot() && !$file->isDir() && $file->getFilename() != ''.gitignore'') { require_once __DIR__.DS.''routes''.DS.$file->getFilename(); } }


incluso después de adoptar todas las mejores prácticas como se menciona en las otras respuestas, es decir: usar el controlador de recursos, grupos de ruta, etc.

Puedes "incluir" los archivos de ruta de manera simple. como lo menciona Chris G en este comentario.

puede crear una estructura de directorios simple e incluir los archivos de ruta en el archivo route.php.

../myroutes --route-type-1.php --route-type-2.php

En el archivo route.php

include(''myroutes/route-type-1.php'');

No hay nada malo en eso Así es como las rutas están incluidas en los paquetes.

http://laravel.com/docs/packages#package-routing