2017 © Pedro Peláez
 

library concord

Concord is a Laravel Extension for building modular Laravel Applications

image

konekt/concord

Concord is a Laravel Extension for building modular Laravel Applications

  • Saturday, March 10, 2018
  • by konekt
  • Repository
  • 10 Watchers
  • 41 Stars
  • 1,756 Installations
  • PHP
  • 10 Dependents
  • 0 Suggesters
  • 3 Forks
  • 0 Open issues
  • 14 Versions
  • 25 % Grown

The README.md

Concord

Concord is a Laravel Extension that helps to build Modules for Laravel Applications on top of Laravel's built-in Service Providers., (*1)

Tests Packagist version Packagist downloads StyleCI Code Quality MIT Software License, (*2)

Concord at first is a Laravel package. It also offers some conventions that help you to better structure complex systems., (*3)

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+
9.x 1.10.2+

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, (*4)

Concord itself (this library) manages the modules., (*5)

Concord modules are isolated fractions of the business logic, built around a single topic., (*6)

There are two kinds of modules from the usage perspective:, (*7)

  • in-app modules,
  • external modules.

Concord is not aware of this difference at all, but they represent two different approaches of modularization., (*8)

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;, (*9)

Installation

Refer to the Installation Section of the Documentation., (*10)

Create Your First Module

php artisan make:module ShinyModule

This will create a very basic in-app module in the app/Modules/ShinyModule folder., (*11)

In order to activate the module add it to the config/concord.php file:, (*12)

return [
    'modules' => [
        App\Modules\ShinyModule\Providers\ModuleServiceProvider::class
    ]
];

Documenatation

See the Concord Documentation for all the nasty details ;), (*13)

Plans For Version 2.0

  • Artisan Console command names will be de-branded (eg. concord:modules -> module:list)
  • The central config/concord.php file 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

The Versions

10/03 2018

dev-master

9999999-dev

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

18/02 2018

1.1.0

1.1.0.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

17/01 2018

1.0.0

1.0.0.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

11/12 2017

0.9.10

0.9.10.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

08/12 2017

0.9.9

0.9.9.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

24/11 2017

0.9.8

0.9.8.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

09/10 2017

0.9.7

0.9.7.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

06/10 2017

0.9.6

0.9.6.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

18/09 2017

0.9.5

0.9.5.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

13/09 2017

0.9.4

0.9.4.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

15/08 2017

0.9.3

0.9.3.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

26/07 2017

0.9.2

0.9.2.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

09/07 2017

0.9.1

0.9.1.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires

14/06 2017

0.9.0

0.9.0.0

Concord is a Laravel Extension for building modular Laravel Applications

  Sources   Download

MIT

The Requires

 

The Development Requires