public function module_ValidPathAndSubModule_RegisterSubModuleAndInherit() { // arrange $module = new Module(self::VALID_MODULE_NAME); $subModule = new Module(self::VALID_SUB_MODULE_NAME); $factory = new Factory(self::VALID_FACTORY_NAME, $this->VALID_FACTORY_DEPENDENCIES, $this->VALID_FACTORY_FACTORY); $subModule->factory(self::VALID_FACTORY_NAME, $this->VALID_FACTORY_DEPENDENCIES, $this->VALID_FACTORY_FACTORY); $subModule->get(self::VALID_ENDPOINT_PATH, $this->VALID_ENDPOINT_DEPENDENCIES, $this->VALID_ENDPOINT_HANDLER); $subModule->post(self::VALID_ENDPOINT_PATH, $this->VALID_ENDPOINT_DEPENDENCIES, $this->VALID_ENDPOINT_HANDLER); $subModule->put(self::VALID_ENDPOINT_PATH, $this->VALID_ENDPOINT_DEPENDENCIES, $this->VALID_ENDPOINT_HANDLER); $subModule->delete(self::VALID_ENDPOINT_PATH, $this->VALID_ENDPOINT_DEPENDENCIES, $this->VALID_ENDPOINT_HANDLER); $expectedEndpoint = new Endpoint(self::VALID_ENDPOINT_PATH, $this->VALID_ENDPOINT_DEPENDENCIES, $this->VALID_ENDPOINT_HANDLER); // act $module->module(self::VALID_SUB_MODULE_PATH, $subModule); // assert Assert::areSame($module->modules, [self::VALID_SUB_MODULE_PATH => $subModule]); Assert::areSame($module->factories, [self::VALID_FACTORY_NAME => $factory]); Assert::areSame($module->endpoints, ['GET' => [self::VALID_SUB_MODULE_PATH . self::VALID_ENDPOINT_PATH => $expectedEndpoint], 'POST' => [self::VALID_SUB_MODULE_PATH . self::VALID_ENDPOINT_PATH => $expectedEndpoint], 'PUT' => [self::VALID_SUB_MODULE_PATH . self::VALID_ENDPOINT_PATH => $expectedEndpoint], 'DELETE' => [self::VALID_SUB_MODULE_PATH . self::VALID_ENDPOINT_PATH => $expectedEndpoint]]); }
<?php use Phale\Module; use Phale\Request; use Phale\Response; use PhaleDemo\Database; use PhaleDemo\User\IUserService; use PhaleDemo\User\UserService; $users = new Module('users'); $users->factory('userService', ['database'], function (Database $database) { return new UserService($database); }); /** * @api {get} /user List * @apiName ListUsers * @apiGroup User */ $users->get('', ['userService'], function (Request $request, Response $response, IUserService $userService) { $response->json($userService->findAll()); }); $users->post('', ['userService'], function (Request $request, Response $response, IUserService $userService) { }); require_once 'user.api.php'; $users->module('/:id', $user);