コード例 #1
0
ファイル: InjectorTest.php プロジェクト: tomlerendu/microapi
 public function testInjectingMethod()
 {
     $injector = Injector::getInstance();
     $testService = new TestService(1, 2);
     $injector->addService($testService);
     $this->assertEquals($injector->injectMethod(new TestClass(), 'testMethod'), 3);
 }
コード例 #2
0
ファイル: _start.php プロジェクト: tomlerendu/microapi
<?php

// PSR-4 autoloader
require MICROAPI_PATH . DIRECTORY_SEPARATOR . 'Autoloader.php';
$autoloader = new \MicroAPI\Autoloader();
$autoloader->addNamespace('App', APP_PATH);
$autoloader->addNamespace('MicroAPI', MICROAPI_PATH);
// Create the dependency injector
$injector = \MicroAPI\Injector\Injector::getInstance();
$config = new \MicroAPI\Config();
$injector->addService($injector);
$injector->addService($config);
$injector->addService($autoloader);
// Run the app defined config function
$injector->injectFunction(require APP_PATH . DIRECTORY_SEPARATOR . 'config.php');
// Add all required dependencies
$injector->addService(MicroAPI\Database::class, $config->get('microapi.database'));
$injector->addService(MicroAPI\Request::class, ['subDirectory' => $config->get('microapi.subDirectory')]);
$injector->addService(MicroAPI\Response::class, $config->get('microapi.response'));
$injector->addService(MicroAPI\Route::class);
// Run the app defined setup function
$injector->injectFunction(require APP_PATH . DIRECTORY_SEPARATOR . 'run.php');
// Create the router and load the App routes file
$router = new \MicroAPI\Router($injector);
$routeFunction = (require APP_PATH . DIRECTORY_SEPARATOR . 'routes.php');
$routeFunction($router);