Create A Module
Creating An In-app Module
- 
Create the module folder
app/Modules/Demo - 
Create the file
app/Modules/Demo/Providers/ModuleServiceProvider.php:namespace App\Modules\Demo\Providers; use Konekt\Concord\AbstractModuleServiceProvider; class ModuleServiceProvider extends AbstractModuleServiceProvider { } - 
Create
app/Modules/Demo/resources/manifest.php:<?php return [ 'name' => 'Demo App Module', 'version' => '1.3.9' ]; - 
Add the module to
config/concord.php:<?php return [ 'modules' => [ App\Modules\Demo\Providers\ModuleServiceProvider::class, ] ]; 
Now if you run the php artisan concord:modules command it shows the newly added module:
+----+------------------+--------+---------+------+-------------------+
| #  | Name             | Kind   | Version | Id   | Namespace         |
+----+------------------+--------+---------+------+-------------------+
| 1. | Demo App Module  | Module | 1.3.9   | demo | App\Modules\Demo  |
+----+------------------+--------+---------+------+-------------------+
Creating An External Module (With Git And Composer)
- 
Init a git repo in an empty folder:
git init . - 
Add composer.json:
{ "name": "vendor/mymodule", "description": "My Module Rulez", "type": "library", "require": { "php": "^7.2", "konekt/concord": "^1.5" }, "autoload": { "psr-4": { "Vendor\\MyModule\\": "src/" } } } - 
Create the file
src/Providers/ModuleServiceProvider.php:namespace Vendor\MyModule\Providers; use Konekt\Concord\BaseModuleServiceProvider; class ModuleServiceProvider extends BaseModuleServiceProvider { } - 
Create
src/resources/manifest.php:<?php return [ 'name' => 'My Module', 'version' => '1.0.0' ]; - 
Commit all the stuff, and publish it (github and packagist if it's open source)
 - 
In the host application:
composer require vendor/mymodule - 
Add the module to
config/concord.php:<?php return [ 'modules' => [ Vendor\MyModule\Providers\ModuleServiceProvider::class, ] ]; 
You're done.
Next: Boxes Explained »