Write your own Application
- Ole Ernst
- Torsten Schmidt
- Robin Sachse
Owned by Ole Ernst
This is intended to be a step-by-step guide for creating a new module. It is based on the VoipMon module (
Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.
)1.) Add new module called "VoipMon"
php artisan module:make VoipMon
Commit: ee4935f
2.) Use external database generated by voipmonitor daemon (only if external database will be used)
- add new database entry to connections in config/database.php
- add used variables to .env
Commit: 0c55073
3.) Add database migration
php artisan module:make-migration create_Cdr_table VoipMon
Commit: c8c2225
3.1.) Change the default migration according to your needs (extends BaseMigration)
Commit: 06ca7dc
3.2.) Run the migration
php artisan module:migrate VoipMon
4.) Add database seeder (not used here, extends BaseSeeder)
php artisan module:make-seed Cdr VoipMon
and change it according to your needs
5.) Add model according to the database table
php artisan module:make-model Cdr VoipMon
Commit: 795f808
5.1.) Change the default model according to your needs (extends BaseModel)
implement:
- view_headline()
- rules()
- view_index_label()
- all relations to other tables (e.g. view_belongs_to(), view_has_many(), ...) --> Commit: e702a50
Commit: 97ab080
6.) Add controller
php artisan module:make-controller Cdr VoipMon
Commit: ef16e82
6.1.) Change the default controller according to your needs (extends BaseController)
comment index() function to use the one from the BaseController
Commit: b6acf55
7.) Add header and route to controller
Commit: 519f79f
8.) Add artisan module command
php artisan module:make-command matchRecordsCommand VoipMon
Commit: 3a6387a
8.1) Change the default module according to your needs (extends BaseController)
Commit: 80cb36f
9.) Implement Edit View of Controller
Commit: 04eb454
Laravel Internals
We use Laravel Modules to support basic module usage. "A Laravel Module is like a laravel package, it have some views, controllers or models."