merophp / bundle-manager
0.1-beta
2022-02-03 14:41 UTC
Requires
- php: >=7.4
Requires (Dev)
- mockery/mockery: ^1.4
- phpunit/phpunit: ^9.5
README
Bundle manager for the merophp framework.
Installation
Via composer:
composer require merophp/bundle-manager
Basic Usage
require_once 'vendor/autoload.php';
use Merophp\BundleManager\BundleManager;
use Merophp\BundleManager\Collection\BundleCollection;
use Merophp\BundleManager\Provider\BundleProvider;
use Merophp\BundleManager\Bundle;
$collection = new BundleCollection();
$collection->addMultiple([
new Bundle('MyOrganization\\MyBundlename'),
new Bundle('MyOrganization\\MyBundlename2', ['myconfigKey'=>'myConfigValue']),
]);
$provider = new BundleProvider($collection);
$bundleManager = new BundleManager($provider);
$bundleManager->startRegisteredBundles();
Bundle Bootstrapping
A bundle must have a bootstrapper class which implements Merophp\BundleManager\BundleBootstrapper\BundleBootstrapperInterface. The bootstrapper class name is a compound of the bundle identifier as the namespace prefix and Bootstrapping/Bootstrapper. For the example above the fully qualified bootstrapper class name is MyOrganization\MyBundlename\Bootstrapping\Bootstrapper:
namespace MyOrganization\MyBundlename\Bootstrapping;
use Merophp\BundleManager\BundleBootstrapperInterface;
class Bootstrapper implements BundleBootstrapperInterface
{
public function setConfiguration(array $configuration = [])
{}
public function setup()
{}
public function tearDown()
{}
}
A bundle bootstrapper has the two lifecycle methods 'setup' and 'tearDown', which are called by the bundle manager. 'setup' will be called, when the bundle gets started and 'tearDown' will be called at the very end of the PHP execution.