Skip to content

alanpich/Slender-ModuleLoader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slender Module Loader

Packagist.org Package Latest Stable Version License

Build Status Coverage Status


Simple Module loading for decoupled application components


Installation

Install via composer:

composer require slender/module-loader

Usage

<?php
    
use \Slender\ModuleLoader\ModuleLoader;
use \Slender\ModuleLoader\ModuleInterface;


$app = new \Slim\App();

/**
 * An example module class
 */
class MyModule implements ModuleInterface
{
	public function invokeModule( \Slim\App $slim )
	{
		$slim->get('/foo',function(){
			/* ... */
		});
	}
}

// Create the module loader instance
$moduleManager = new SimpleModuleLoader();

// Try to load the module
$moduleManager->loadModule('\Acme\Example\MyModule', $slim);

Module Locators

Module Locators are responsible for translating a module identifier string into a callable object that can be invoked to load the module. Module Locators must implement Slender\ModuleLoader\ModuleLocatorInterface

ModuleManager includes two default Locators, which are loaded by default when using the SimpleModuleLoader.

Slender Module Locator

Slender\ModuleLoader\Locator\SlenderModuleLocator This locator will use the module identifier as a fully-qualified class name and attempt to load the class as long as it implements Slender\ModuleLoader\ModuleInterface.

Invokable Class Locator

Slender\ModuleLoader\Locator\InvokableClassModuleLocator This locator will use the module identifier as a fully-qualified class name and attempt to load the class and then invoke it.

About

Simple, de-coupled application modules

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages