Laravel 5 Naming Conventions
I am bit confused with Laravel conventions as I am new to this framework. I am following Jeffrey Way Laracasts videos he uses Plural for Controller names.
E.g.: PagesController, Cards Controller, PostsController
But if I refer official documentations of Laravel > Controllers and Laravel > Tutorials > Quick Start > Intermediate Task List it uses Singular names.
E.g.: PhotoController, TaskController
Can anybody please list down the official coding conventions for following entities?
Tables: posts, comments, post_comments or Post, Comment, PostComment
Columns: id, post_id, comment_id or id, postId, commentId
Controllers: PagesController, Cards Controller, PostsController or PhotoController, TaskController
Models: Pages, Cards, Posts or Page, Card, Post
Tables: posts, comments, comment_post
Columns: id, post_id, comment_id
Controllers: PhotoController, TaskController
Models: Page, Card, Post
For more details check out my Laravel naming conventions table.
Remember that "conventions" are just conventions and you could do whatever you want just be constant, however it's better follow the documentation:
-
Table name: plural and
_
to separate words (users, tags, ...) -
Columns name: singular and
_
to separate words (user, tag, ...) - Models: singular with first letter capitalized and capitalization to separate words (User, Tag, ...)
- Controllers: singular with capitalized first letter and capitalization to separate words followed by "Controller" (UserController, TagController, ...)
I know I'm from old school (coding since 1984 on computers, though having evolved with PHP and js/ECMAScript since their first version), but the good old Merise rule "never use plural" had strong and good resasons to be respected. What a pity Eloquent forces us to use table name in plural.
PSR-2 or PSR-1 doesn't indicate anything about plural or singular, but for simplicity sake, I heavily recommend to always use singular, excepte where the "system" needs it (as Eloquent does). In that case, don't mix plural and singular. On the datatables used by laravel, we use table names in plural. That's a singularity (compared to the other developments already made or with which we communicate), but all the tables are in plural on that part.
And NEVER make a typo when naming something (example: 'personnal' i.o. 'personal', etc.). Doublecheck first. Orthograph rules.