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 »