/** * @param Slim $app * @param Resolver $resolver */ public function register(Slim $app, Resolver $resolver) { $app->get('/', function () use($app) { $app->redirectTo('transfer_form'); }); $app->get('/transfer-form', $resolver->resolve($app, 'ewallet.transfer_form_controller:showForm', function () { return [Identifier::fromString('ABC')]; }))->name('transfer_form'); $app->post('/transfer-funds', $resolver->resolve($app, 'ewallet.transfer_funds_controller:transfer', function () use($app) { /** @var \EwalletModule\Bridges\Zf2\InputFilter\TransferFundsInputFilterRequest $request */ $request = $app->container->get('ewallet.transfer_filter_request'); $request->populate($app->request->post()); return [$request]; }))->name('transfer_funds'); }
/** @test */ function it_should_allow_extending_a_service_definition_more_than_once() { $resolver = new Resolver(); $app = new Slim(); $app->container->singleton('service', function () { return new stdClass(); }); $resolver->extend($app, 'service', function (stdClass $service) { $service->first = true; return $service; }); $resolver->extend($app, 'service', function (stdClass $service) { $service->second = true; return $service; }); $service = $app->container->get('service'); $this->assertObjectHasAttribute('first', $service); $this->assertTrue($service->first); $this->assertObjectHasAttribute('second', $service); $this->assertTrue($service->second); }