Created
August 28, 2015 09:31
-
-
Save geerteltink/6cfb459dcd1adcaebb24 to your computer and use it in GitHub Desktop.
zend-service-manager abstract class container injection
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| namespace Application\Action; | |
| use Interop\Container\ContainerInterface; | |
| use Psr\Http\Message\ResponseInterface; | |
| use Psr\Http\Message\ServerRequestInterface; | |
| use Zend\Expressive\Template\TemplateInterface; | |
| use Zend\Stratigility\MiddlewareInterface; | |
| /** | |
| * Action abstract class | |
| */ | |
| abstract class AbstractAction implements MiddlewareInterface | |
| { | |
| /** | |
| * @var ContainerInterface | |
| */ | |
| protected $container; | |
| /** | |
| * Constructor | |
| * | |
| * @param ContainerInterface $container | |
| */ | |
| public function __construct(ContainerInterface $container) | |
| { | |
| $this->container = $container; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| abstract public function __invoke( | |
| ServerRequestInterface $request, | |
| ResponseInterface $response, | |
| callable $next = null | |
| ); | |
| /** | |
| * Get services | |
| * | |
| * @return ContainerInterface | |
| */ | |
| public function getContainer() | |
| { | |
| return $this->container; | |
| } | |
| /** | |
| * Get template renderer | |
| * | |
| * @return TemplateInterface | |
| */ | |
| public function getRenderer() | |
| { | |
| return $this->getContainer()->get('Zend\Expressive\Template\TemplateInterface'); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| namespace Application\Action; | |
| use Psr\Http\Message\ResponseInterface as Response; | |
| use Psr\Http\Message\ServerRequestInterface as Request; | |
| use Zend\Stratigility\MiddlewareInterface; | |
| class HomePageAction extends AbstractAction implements MiddlewareInterface | |
| { | |
| public function __invoke(Request $request, Response $response, callable $next = null) | |
| { | |
| $renderer = $this->getRenderer(); | |
| var_dump($renderer); | |
| $response->getBody()->write('Hello, world!'); | |
| return $next($request, $response); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment