Hi guys, From this article I'm starting to describe you to about Laravel [PHP] coding Standards with PSR .
To make this tutorials much easier, I will divide full tutorial as number or articles. So this is first articles of them.
Article 1 : Naming Conventions. β Here we will talk about naming conventions about PHP. Following conventions have accepted by Laravel community.
01.01 Controller π Name should be in singular form. Should use PascalCase . Should Do Should't Do CustomerController.php
CustomersController.php
01.02 Route π 01.02.01 Route Url π Url should be in plural form. Can use kebab-case if there are two words in single part For best Practice. Should Do Should't Do /customers/25
customer/25
/customers/password-reset
/customers/password_reset
"
/customers/passwordReset
01.02.02 Route Name π Should use snake_case with dot notation. Better to use same name like in URL. Should Do Should't Do ->('customers.view')
->('customers-view')
"
->('customers_view')
->('customers.password_reset')
->('customers.password.reset')
"
->('customers.password-reset')
"
->('customer-password-reset')
01.03 DataBase Related π 01.03.01 Migration π Should use name as what you want to do with snake_case . Should Do Should't Do 2021_03_19_033513_create_customers_table.php
2021_03_19_033513_customers.php
2021_03_19_033513_add_image_id_to_customers_table.php
2021_03_19_033513_add_image_id_customers.php
2021_03_19_033513_drop_image_id_from_customers_table.php
2021_03_19_033513_remove_image_id_customers.php
01.03.02 Table π Table name must be in plural form. Should use snake_case . Should Do Should't Do customers
customer
cart_items
cartItems
, CartItems
, Cart_item
01.03.03 Pivot Table π Table name must be in singular form. Should use snake_case Names should be in alphabetical Order. Should Do Should't Do course_student
student_courses
, students_courses
,course_students
01.03.04 Table Columns π Should use snake_case . Should not use table name with column names. Readable name can use for better practice. Should Do Should't Do first_name
user_first_name
, FirstName
01.03.05 Foreign key π Should use snake_case . Should use singular table name with id prefix. Should Do Should't Do course_id
courseId
, id
,courses_id
,id_course
01.03.06 Primary key π Should Do Should't Do id
custom_name_id
01.03.07 Model π Model name must be in singular form. Should Use PascalCase Model name must be a singular form or table name. Should Do Should't Do Customer
Customers
,customer
01.03.08 Model Single relations [Has One, Belongs To] π Method name must be in singular form. Should Use camalCase Should Do Should't Do studentCourse
StudentCourse
,student_course
,studentCourses
01.03.09 Model all other relations and methods [Has Many,other] π Method name must be in plural form. Should use camalCase Should Do Should't Do cartItems
CartItem
,cart_item
,cartItem
01.04 Functions π Should Do Should't Do show_route
showRoute
,ShowRoute
01.05 Methods in resources controller π Should use camelCase Must use singles words related to action Should Do Should't Do store
saveCustomer
show
viewCustomer
destroy
deleteCustomer
index
allCustomersPage
01.06 Variables π Should use camelCase Must use readable words which are describe about value. Should Do Should't Do $customerMessages
$CustomerMessages
,$customer_messages
, $c_messages
, $c_m
01.07 Collection π Must described about the value. Must be plural Should Do Should't Do $verifiedCustomers = $customer->verified()->get()
$verified
,$data
, $resp
, $v_c
01.07 Object π Must described about the value. Must be singular Should Do Should't Do $verifiedCustomer = $customer->verified()->first()
$verified
,$data
, $resp
, $v_c
01.08 Configs π Should use snake_case Must described about the value. Should Do Should't Do comments_enabled
CommentsEnabled
,comments
, c_enabled
, $ce
01.09 Traits π Should Do Should't Do Utility
UtilityTrait
,Utilities
01.10 Interface π Should be adjective or a noun. Should Do Should't Do Authenticable
AuthenticationInterface
,Authenticate
So above I have talked about naming convetion in Laravel projects. not only Laravel you guys can use this rules with any other PHP framework.
With next article I will talk about another main topic of coding standards.
I hope you find my post useful! Any feedback is greatly appreciated!
below I mentioned my other articles. you may also read them.
You may Find my Fiver Gig Here. https://www.fiverr.com/s2/0c68721323
Other Articles Here I'm Adding Public GitHub Repository which will store all of my tutorials. you may clone it and see every tutorials what I will publish π€.
GitHub Repository
Tutorials Here I will show all the code blocks of my tutorials. you can copy anything or learn anything.
Articles Thank You Very much . --Lathindu Pramuditha--
GitHub Profile
It's About Lathindu Pramuditha's Account ΰΆΰΆΊΰ·ΰΆΆΰ·ΰ·ΰΆ±ΰ· (Welcome)ππ», I'm Lathindu Pramuditha Amarasekara!
Founder, CEO AT Axcertro
A little more about me... namespace App \Models use Illuminate \Database \Eloquent \Factories \HasFactory ; use Illuminate \Database \Eloquent \Life ; class ProfileOfLathindu extends Life { use HasFactory ; const LANGUAGES = [ 'JAVASCRIPT ' => 1 , 'PHP ' => 2 , 'PYTHON ' => 3 , 'SOLIDITY ' => 4 , 'DART ' => 5 ]; const FRAMEWORKS = [ 'NextJs ' => 1 , 'LARAVEL ' => 2 , 'FLUTTER ' => 3 , 'DJANGO ' => 4 , 'ANGULAR ' => 5 , 'IONIC ' => 6 ]; const EXPERIENCE = 'xxxxxxxxxx of hours from 2017 ' ; const MORE_EXPERIENCE = [ 'PAYPAL_API ' => 1 , 'STRIPE_API ' => 2 , ' β¦
Enter fullscreen mode Exit fullscreen mode
Top comments (3)
Great post! You should repost it on the DevDojo site and you will have the chance to win a weekly prize!
Thank you very much Bobby lliev
I love the insight. Thank you.