public function createService(ServiceLocatorInterface $serviceLocator) { $config = $serviceLocator->get('Config'); if (!isset($config['zf2_assetic'])) { throw new InvalidArgumentException('Missing zf2assetic config key'); } $resolver = new ContentTypeResolver(); if (isset($config['zf2_assetic']['contentTypeMap'])) { foreach ($config['zf2_assetic']['contentTypeMap'] as $extension => $contentType) { $resolver->addMapping($extension, $contentType); } } return $resolver; }
public function setUp() { $this->controller = new AssetController(); $this->request = new Request(); $this->routeMatch = new RouteMatch(array('controller' => 'assetic', 'action' => 'index')); $this->event = new MvcEvent(); $this->assetManager = new AssetManager(); $this->event->setRouteMatch($this->routeMatch); $this->controller->setEvent($this->event); $this->controller->setAssetManager($this->assetManager); $contentTypeResolver = new ContentTypeResolver(); $contentTypeResolver->addMapping('css', 'text/css'); $contentTypeResolver->addMapping('js', 'application/javascript'); $contentTypeResolver->addMapping('png', 'image/png'); $this->controller->setContentTypeResolver($contentTypeResolver); }
public function indexAction() { $response = $this->getResponse(); $resourcePath = $this->params()->fromRoute('resourcePath'); $asset = $this->findAsset($resourcePath); if (!$asset) { $response->setStatusCode(404); return; } $response->setContent($asset->dump()); $headers = $response->getHeaders(); if (null !== $asset->getLastModified()) { $headers->addHeaderLine('Last-Modified', '@' . $asset->getLastModified()); } $extension = pathinfo($resourcePath, PATHINFO_EXTENSION); if ($extension && $this->contentTypeResolver->hasMapping($extension)) { $headers->addHeaderLine('Content-Type', $this->contentTypeResolver->resolve($extension)); } return $response; }