Laravel es uno de los Frameworks de PHP mas utilizados, por lo tanto, hay miles de programadores que lo utilizan y cada uno tienen sus formas de nombrar las clases, métodos y variables sin seguir una convención.
Cuando recibes el código de una de estas persona que no siguió ningún tipo de convención, automáticamente sentís que las modificaciones que tenes que hacer te van a costar mas de lo que tenias pensado.
Así que, acá en Laravel Tip vamos a repasar algunas de las mejores convenciones de nombres para Laravel. 😉
Nombrando a los Controllers
Los controladores deben estar en singular, sin espacios entre palabras, la primer letra de cada palabra debe ser mayuscula y deben terminar con la palabra «Controller».
Bien: UserController, CreatePostController, BlogController
Mal: UsersController, User, usercontroller
Nombrando a los Métodos
Los métodos en tus proyectos de Laravel deben ser camelCase, pero con el primer carácter en minúscula.
Bien: public function get()
, public function getAll()
Mal: public function GetPosts()
, public function get_posts()
Nombrando Variables
Las variables normales deben estar en camelCase (pero con primer letra en minúscula).
Bien: $user, $allPosts
Mal: $User, $all_posts
Por otro lado, si la variable es un array o una colección de elementos, la variable debe estar en plural. De lo contrario, debería estar en singular.
Bien: $users = User::all(), $user = User::first()
Nombrando tablas de bases de datos en Laravel
Las tablas de base de datos deben estar en minúsculas, con guiones bajos para separar las palabras (snake_case), y deben estar en forma plural.
Bien: posts
, project_tasks
, uploaded_images
all_posts
, Posts
, post
,blogPosts
Tablas Pivot
Las tablas intermedias deben estar en minúsculas, cada modelo a los que hagan referencia deben estar en orden alfabético. Y, deben estar separadas por un guión bajo (snake_case).
Bien: post_user
, task_user
users_posts
, UsersPosts
Nombres de columnas
Los nombres de las columnas de las tablas deben estar en minúsculas, y snake_case (los guiones bajos entre palabras). Y no debes hacer referencia al nombre de la tabla.
Bien: body
, id
, created_at
blog_content_created_at
, forum_thread_title
, postTitle
Nomenclatura para Modelos en Laravel
Los modelos debe estar en singular, sin espacios entre palabras y en mayúscula.
Bien: User
, ForumThread
,Comment
Users
, ForumPosts
, blogpost
, blog_post
, Blog_posts
php artisan make:model -m Post
. Esto generará automáticamente el archivo de migración.Nomenclatura para Relaciones en Laravel
Relaciones hasOne y belongsTo
Estos deben estar en singular y seguir las mismas convenciones de nomenclatura de los métodos del modelo (camelCase, con primera letra en minúscula)
Por ejemplo: public function postAuthor()
, public function phone()
Relaciones hasMany, belongsToMany, hasManyThrough
Su nomenclatura deben ser igual a las anteriores, pero deben estar en plural.
Por ejemplo: public function comments()
, public function roles()
Relaciones Polimorfas
Para estas relaciones es recomendable utilizar la nomenclatura que nos recomienda Laravel. Si por ejemplo, tenemos este código:
public function category()
{
return $this->morphMany(Category::class, 'categoryable');
}
Archivos Blade
Los archivos blade deben estar en minúsculas, snake_case (subrayado entre palabras). Y, si son templates de elementos que normalmente se renderizan por medio de una interación (con @foreach, por ejemplo), se les debe agregar un guion bajo al comienzo.
Por ejemplo: all.blade.php
, _item.blade.php
Conclusión
Seguir una norma de nomenclatura nos ayuda a tener un código prolijo, entendible y estandarizado. Veras que si te acostumbras a utilizar estas normas, el código de otra personas se sentirá como propio y no nos generara esa sensación de caos que aveces nos da cuando leemos el desarrollo de alguien mas.
Si conoces mas formas de nomenclaturas, déjalas en los comentarios y las iré agregando al artículo. Hasta la próxima! 😉🤙