Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Concord Laravel Package

konekt/concord

Laravel extension for building modular applications using conventions on top of service providers. Manage in-app and external modules with isolation-friendly structure, version compatibility across Laravel releases, and tooling around module registration and organization.

View on GitHub
Deep Wiki
Context7

Concord Modules

Modules are decoupled components and are glued together by the application (or by a box). Technically they're a bunch of classes and files wired into the Laravel Application with their own dedicated Service Provider.

Modules can be situated in two ways:

  • as external modules (separate composer packages)
  • in-app modules (usually under app/Modules/<ModuleName>)

Technically there's no difference between the two.

Module Folder Structure

Minimum Fileset For A Concord Module

module-src/
    Providers/
        |-- ModuleServiceProvider.php
    resources/
        |-- manifest.php
    

Full Stack Of Recommended File/Folder Structure

module-src/
    Contracts/
    Events/
    Exceptions/
    Helpers/
    Models/
        |-- Factories/
    Providers/
        |-- ModuleServiceProvider.php
    Services/
    Tests/
        |-- Feature
        |-- Unit
    resources/
        |-- config/
            |-- module.php
        |-- database/
            |-- migrations/
            |-- seeds/
        |-- manifest.php
    

Module Id

Concord automatically calculates the module id based on the module's namespace.

Examples:

Namespace Module Id Type
App\Modules\Billing billing in-app
App\Modules\Analytics analytics in-app
App\Modules\ClientHistory client_history in-app
Vendor\Module\Providers\ModuleServiceProvider vendor.module external
Vanilo\Cart\Providers\ModuleServiceProvider vanilo.cart external
Vanilo\Order\Providers\ModuleServiceProvider vanilo.order external
Konekt\Acl\Providers\ModuleServiceProvider konekt.acl external

Retrieve Modules From Concord By ID:

Using the facade:

use Konekt\Concord\Facades\Concord;

$cartModule = Concord::module('vanilo.cart');

Using the service from the container:

$billingModule = app('concord')->module('billing');

// or if you have an app instance available:
$billingModule = $this->app['concord']->module('billing');

Next: Creating Modules »

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport
twbs/bootstrap4