concord maintained by konekt
- konekt/enum ^2.1|^3.0|^4.0
- konekt/enum-eloquent ^1.7
- php ^8.1
- illuminate/support ^10.49|^11.46.2|^12.38
- illuminate/console ^10.49|^11.46.2|^12.38
- php ^8.1
- illuminate/support ^10.49|^11.46.2|^12.38
- illuminate/console ^10.49|^11.46.2|^12.38
- konekt/enum ^2.1|^3.0|^4.0
- konekt/enum-eloquent ^1.7
- php ^8.1
- illuminate/support ^10.49|^11.0|^12.0
- illuminate/console ^10.49|^11.0|^12.0
- konekt/enum ^2.1|^3.0|^4.0
- konekt/enum-eloquent ^1.7
- php ^8.1
- illuminate/support ^10.0|^11.0|^12.0
- illuminate/console ^10.0|^11.0|^12.0
- konekt/enum ^2.1|^3.0|^4.0
- konekt/enum-eloquent ^1.7
- php ^8.0
- illuminate/support ^9.2|^10.0|^11.0
- illuminate/console ^9.2|^10.0|^11.0
- konekt/enum ^2.1|^3.0|^4.0
- konekt/enum-eloquent ^1.7
- php ^8.0
- illuminate/support ^9.2|^10.0|^11.0
- illuminate/console ^9.2|^10.0|^11.0
- konekt/enum ^2.1|^3.0|^4.0
- konekt/enum-eloquent ^1.7
- php ^8.0
- illuminate/support ^9.2|^10.0
- illuminate/console ^9.2|^10.0
- konekt/enum ^2.1|^3.0|^4.0
- konekt/enum-eloquent ^1.7
- php ^8.0
- illuminate/support ^9.2|^10.0
- illuminate/console ^9.2|^10.0
- konekt/enum ^2.1|^3.0|^4.0
- konekt/enum-eloquent ^1.7
- php ^8.0
- konekt/enum ^3.0|^4.0
- konekt/enum-eloquent ^1.7
- illuminate/support ^9.2
- illuminate/console ^9.2
- php ^8.0
- illuminate/support ^9.2
- illuminate/console ^9.2
- konekt/enum ^2.1|^3.0|^4.0
- konekt/enum-eloquent ^1.7
- php ^8.0
- illuminate/support ^v8.22.1|^9.0
- illuminate/console ^v8.22.1|^9.0
- konekt/enum ^2.1|^3.0|^4.0
- konekt/enum-eloquent ^1.7
- php ^7.3 | ^8.0
- illuminate/support ~6.0|~7.0|~8.0|~9.0
- illuminate/console ~6.0|~7.0|~8.0|~9.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.3 | ^8.0
- illuminate/support ~6.0|~7.0|~8.0
- illuminate/console ~6.0|~7.0|~8.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.3 | ^8.0
- illuminate/support ~6.0|~7.0|~8.0
- illuminate/console ~6.0|~7.0|~8.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.3 | ^8.0
- illuminate/support ~6.0|~7.0|~8.0
- illuminate/console ~6.0|~7.0|~8.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.3 | ^8.0
- illuminate/support ~6.0|~7.0|~8.0
- illuminate/console ~6.0|~7.0|~8.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.3 | ^8.0
- illuminate/support ~6.0|~7.0|~8.0
- illuminate/console ~6.0|~7.0|~8.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.2
- illuminate/support ~5.5|~6.0|~7.0|~8.0
- illuminate/console ~5.5|~6.0|~7.0|~8.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.2
- illuminate/support ~5.5|~6.0|~7.0|~8.0
- illuminate/console ~5.5|~6.0|~7.0|~8.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.2
- illuminate/support ~5.5|~6.0|~7.0
- illuminate/console ~5.5|~6.0|~7.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.2
- illuminate/support ~5.5|~6.0|~7.0
- illuminate/console ~5.5|~6.0|~7.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.2
- illuminate/support ~5.5|~6.0|~7.0
- illuminate/console ~5.5|~6.0|~7.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.2
- illuminate/support ~5.5|~6.0|~7.0
- illuminate/console ~5.5|~6.0|~7.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.2
- illuminate/support ~5.5|~6.0|~7.0
- illuminate/console ~5.5|~6.0|~7.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.2
- illuminate/support ~5.5|~6.0|~7.0
- illuminate/console ~5.5|~6.0|~7.0
- konekt/enum ~2.1|~3.0
- konekt/enum-eloquent ^1.3.1
- php ^7.2
- illuminate/support ~5.5|~6.0|~7.0
- illuminate/console ~5.5|~6.0|~7.0
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.3.1
- php ^7.1.3
- illuminate/support ~5.5|~6.0
- illuminate/console ~5.5|~6.0
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.3.1
- php ^7.1.3
- illuminate/support ~5.5|~6.0
- illuminate/console ~5.5|~6.0
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.3.1
- php ^7.1.3
- illuminate/support ~5.4
- illuminate/console ~5.4
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.1.3
- php ^7.1.3
- illuminate/support ~5.4
- illuminate/console ~5.4
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.1.3
- php ^7.1.3
- illuminate/support ~5.4
- illuminate/console ~5.4
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.1.3
- php >=7.0.0
- illuminate/support ~5.4
- illuminate/console ~5.4
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.1.3
- php >=7.0.0
- illuminate/support ~5.4
- illuminate/console ~5.4
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.1.3
- php >=7.0.0
- illuminate/support ~5.4
- illuminate/console ~5.4
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.1.3
- php >=7.0.0
- illuminate/support ~5.4
- illuminate/console ~5.4
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.1.3
- php >=7.0.0
- illuminate/support ~5.4
- illuminate/console ~5.4
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.1.3
- php >=7.0.0
- illuminate/support ~5.4
- illuminate/console ~5.4
- konekt/enum ~2.1
- konekt/enum-eloquent ^1.1.2
- php >=7.0.0
- illuminate/support ~5.4
- illuminate/console ~5.4
- konekt/enum ^2.0.2
- konekt/enum-eloquent ~1.0
- php >=7.0.0
- illuminate/support ~5.3
- illuminate/console ~5.3
- konekt/enum ^2.0.2
- konekt/enum-eloquent ~1.0
- php >=7.0.0
- illuminate/support ~5.3
- illuminate/console ~5.3
- konekt/enum ~2.0
- php >=7.0.0
- illuminate/support ~5.3
- illuminate/console ~5.3
- konekt/enum ~2.0
- php >=7.0.0
- illuminate/support ~5.3
- illuminate/console ~5.3
- konekt/enum ~1.2
- php >=7.0.0
- illuminate/support ~5.3
- illuminate/console ~5.3
- konekt/enum ~1.2
- php >=7.0.0
- illuminate/support ~5.3
- illuminate/console ~5.3
- konekt/enum ~1.2
- php >=7.0.0
- illuminate/support ~5.3
- illuminate/console ~5.3
- konekt/enum ~1.2
Concord
Concord is a Laravel Extension that helps to build Modules for Laravel Applications on top of Laravel's built-in Service Providers.
Concord at first is a Laravel package. It also offers some conventions that help you to better structure complex systems.
Version Compatibility
| Laravel | Concord |
|---|---|
| 5.4 | 1.0 - 1.3 |
| 5.5 | 1.0 - 1.8 |
| 5.6 | 1.1 - 1.8 |
| 5.7 | 1.3 - 1.8 |
| 5.8 | 1.3 - 1.8 |
| 6.x | 1.4 - 1.10 |
| 7.x | 1.5 - 1.10 |
| 8.x | 1.8 - 1.11 |
| 9.x | 1.10.2 - 1.15 |
| 10.x | 1.13 - 1.17 |
| 11.x | 1.14+ |
| 12.x | 1.16+ |
| 13.x | 1.18+ |
Basics
Modular Architecture is exactly what you think it is - a way to manage the complexity of a problem by breaking them down to smaller manageable modules. -- Param Rengaiah
Concord itself (this library) manages the modules.
Concord modules are isolated fractions of the business logic, built around a single topic.
There are two kinds of modules from the usage perspective:
- in-app modules,
- external modules.
Concord is not aware of this difference at all, but they represent two different approaches of modularization.
In-app Modules
- They are part of the application's codebase;
- are located in
app/Modules/<ModuleName>; - being decoupled is a less strict requirement;
- code reuse and customization is not an aspect.
External Modules
- They are libraries,
- are typically managed with composer, thus they live in the
vendor/folder; - should be as decoupled as possible;
- contain basic or boilerplate functionality for applications;
- they are designed to be used by multiple, different applications;
- their behavior is subject to customization in the application.
Either module types are always coupled to Laravel and Concord;
Installation
Refer to the Installation Section of the Documentation.
Create Your First Module
php artisan make:module ShinyModule
This will create a very basic in-app module in the app/Modules/ShinyModule folder.
In order to activate the module add it to the config/concord.php file:
return [
'modules' => [
App\Modules\ShinyModule\Providers\ModuleServiceProvider::class
]
];
Documenatation
See the Concord Documentation for all the nasty details ;)
Plans For Version 2.0
- Artisan Console command names will be de-branded (eg.
concord:modules->module:list) - The central
config/concord.phpfile will be eliminated, or split:- modules can specify their own config file name (like normal Laravel packages);
- therefore several modules can share config files (see vanilo.php);
- if we keep concord.php, then it'll contain concord specific settings.
- Modules will be loaded as normal packages, using auto-discovery instead of listing modules with concord.
- Custom names for service providers eg. CartServiceProvider instead of ModuleServiceProvider.
- Question to the prior item is how to do the same with in-app modules.
- Re-think the concept of boxes vs. modules.
- Remove surplus items from Documentation.
- Remove helpers (?).
- Remove custom view namespace support.
- Will we ever use Controller overriding?
- Add make:request, make:model, make:enum commands that scaffold with interface, proxy etc.
- Fix AddressType -> address_type kind of style problem in route parameters