Laravel Create Modular Structure using L5Modular Package
Today i am going to share with you how to implement modular design in your laravel application from scratch using L5Modular package.
When i have started working with laravel and i see the structure of laravel like controller, views, model and helpers etc. I was impressed and i liked more. But still i was little bit confuse, thinking we can make it modular then it become more useful and understandable. If you create module for every crud enter level like country, state, city, item, product etc. It could be fantastic because it can re-use in your other laravel application easily. Modular structure approach is good because it more useful for us.
In this example, we will create Modular structure using L5Modular composer package. There are several other packages for create module in laravel application. L5Modular package create "Modules" directory and sub directory module wise. it is very simple and understandable. There are listed things on that folder:
1)Controllers
2)Models
3)Views
4)Translations
5)routes
6)helper
Package will create automatic migration, so you have to just modify or add new fields as you want. So if you want to make modular your application then follow this tutorial, So first we will install L5Modular composer package and service provider. So run bellow command for install L5Modular package.
Install L5Modular Package:
composer require artem-schander/l5-modular
Ok, after install plugin successfully, we will add service provider in app.php configuration file. So let's add as bellow:
config/app.php
<?php
return [
....
'providers' => [
....
ArtemSchander\L5Modular\ModuleServiceProvider::class,
]
.....
]
Ok, now we are ready to create module by using L5Modular package command, So you can simply create new package as like bellow syntax:
Syntax for create module:
php artisan make:module module_name [--no-migration] [--no-translation]
Example for create module:
php artisan make:module Tags
After run above command, you can see new migration and Modules directory on app folder. structure looks like as bellow:
laravel-project/
app/
└── Modules/
└── Tags/
├── Controllers/
│ └── TagsController.php
├── Models/
│ └── Tags.php
├── Views/
│ └── index.blade.php
├── Translations/
│ └── en/
│ └── example.php
├── routes
      │  ├── api.php
│ └── web.php
      └── helper.php
       Â
You also see bellow screen shot for modular structure. I attach as bellow:
Module Screenshot
As you can see there are controllers, models, views, Translations, routes and helper. So you can simply create more module as you require. You can simply run by following command:
php artisan serve
Open in your browser:
http://localhost:8000/tags
I hope it can help you...
Hardik Savani
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- Laravel TCPDF: Generate HTML to PDF File Example
- FCM Push Notification in Laravel Example
- How to Add Two Factor Authentication with SMS in Laravel?
- Laravel Get Next and Previous Record with URL Example
- How to Add Country List in Laravel?
- Laravel Shopping Add to Cart with Ajax Example
- How to Create Custom Model Events in Laravel?
- Laravel Send SMS to Mobile with Nexmo Example
- How to Send SMS using Twilio in Laravel?
- Laravel Carbon Check If Date is Greater Than Other Date
- Laravel Custom User Log Activity Example Tutorial
- Laravel Image Gallery CRUD Example Tutorial
- Laravel Category Treeview Hierarchical Structure Example
- How to Pass Data to All Views using Composer Share in Laravel?
- Laravel Ajax Render View With Data Example