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);
 }
Beispiel #3
0
 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;
 }