All Projects → artkonekt → Concord

artkonekt / Concord

Licence: mit
Laravel extension for building modular applications where modules are decoupled, re-usable and easily customizable

Projects that are alternatives of or similar to Concord

Cursor Pagination
Cursor pagination for your Laravel API
Stars: ✭ 47 (-65.19%)
Mutual labels:  laravel, laravel5
Laravel Email Verification
Laravel package to handle user verification using an activation mail
Stars: ✭ 63 (-53.33%)
Mutual labels:  laravel, laravel5
Wl Bootstrap
Integrating Laravel into WordPress
Stars: ✭ 54 (-60%)
Mutual labels:  laravel, laravel5
Scrutiny
Ensure your laravel-based project is running in the correct server environment
Stars: ✭ 36 (-73.33%)
Mutual labels:  laravel, laravel5
Ecommerce Laravel Bootstrap
Responsive, Multi-Vendor, MultiLanguage Online Store Platform (shopping cart solution)
Stars: ✭ 99 (-26.67%)
Mutual labels:  laravel, laravel5
Laravel Settings
Simple Settings package for a laravel application
Stars: ✭ 45 (-66.67%)
Mutual labels:  laravel, laravel5
Lara shop v2
Single store shopping system developed with laravel5_7.
Stars: ✭ 61 (-54.81%)
Mutual labels:  laravel, laravel5
Laravel Restaurant Pos
Restaurant POS
Stars: ✭ 27 (-80%)
Mutual labels:  laravel, laravel5
Laravel Pdf
A Simple package for easily generating PDF documents from HTML. This package is specially for laravel but you can use this without laravel.
Stars: ✭ 79 (-41.48%)
Mutual labels:  laravel, laravel5
Laravel Vue Starter
Well Documented Laravel Starter App From Development to Production. For Full Blown RESTFUL API and SPA with Beautiful UI Using Buefy / ElementUi For Reusable Vue Components
Stars: ✭ 76 (-43.7%)
Mutual labels:  laravel, laravel5
Laravel Highcharts
Laravel 5 Highcharts Package
Stars: ✭ 31 (-77.04%)
Mutual labels:  laravel, laravel5
Eye
Eyewitness.io package for Laravel 5 applications
Stars: ✭ 114 (-15.56%)
Mutual labels:  laravel, laravel5
Easyhttp
A Laravel HTTP-client to make HTTP request easier and log requests and responses
Stars: ✭ 20 (-85.19%)
Mutual labels:  laravel, laravel5
Larrock Core
Core components for LarrockCMS
Stars: ✭ 46 (-65.93%)
Mutual labels:  laravel, laravel5
Foocart
A Laravel 5 eCommerce application with integrated Stripe payments.
Stars: ✭ 8 (-94.07%)
Mutual labels:  laravel, laravel5
Notifier
NO LIBRARIES socket per page bridge for your Laravel application. (CLIENT PART INCLUDED)
Stars: ✭ 57 (-57.78%)
Mutual labels:  laravel, laravel5
Barryvanveen
📰 Personal blog of Barry van Veen. Focuses on Laravel Framework, website optimization and natural computing.
Stars: ✭ 24 (-82.22%)
Mutual labels:  laravel, laravel5
Blade Migrations Laravel
An intelligent alternative version of Laravel 5/6 Database Migrations - uses raw-sql syntax, transactions, auto-rollback, UP-DOWN-UP testing
Stars: ✭ 25 (-81.48%)
Mutual labels:  laravel, laravel5
Laravel Vue Tasks
📝 Task app built with Laravel 5.5 and Vue 2
Stars: ✭ 66 (-51.11%)
Mutual labels:  laravel, laravel5
Kongqi laravel admin
快速laravel后台管理系统,集成了,图片上传,多图上传,批量Excel导入,批量插入,修改,添加,搜索,权限管理RBAC,验证码,插件一个综合完善后台,助你开发快人一步。
Stars: ✭ 109 (-19.26%)
Mutual labels:  laravel, laravel5

Concord

Concord is a Laravel Extension that helps building Modules for Laravel Applications on top of Laravel's built in Service Providers.

Travis Packagist version Packagist downloads StyleCI Code Quality MIT Software License

Concord at first is a Laravel 6.x - 8.x 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+
7.x 1.5+
8.x 1.8+

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.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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].