@@ -150,7 +150,7 @@ class IndexPackagesCommand extends ContainerAwareCommand
$document->setField('replacementPackage', '');
$update->addDocument($document);
} catch (\Exception $e) {
- $output->writeln('<error>Exception: '.$e->getMessage().', skipping package '.$package->getName().':provide:'.$provide->getPackageName().'</error>');
+ $output->writeln('<error>'.get_class($e).': '.$e->getMessage().', skipping package '.$package->getName().':provide:'.$provide->getPackageName().'</error>');
}
@@ -94,7 +94,7 @@ class PackageController extends Controller
$form->bind($request->request->get('package'));
if ($form->isValid()) {
$package->setAbandoned(true);
- $package->setReplacementPackage($form->get('replacement')->getData());
+ $package->setReplacementPackage(str_replace('https://packagist.org/packages/', '', $form->get('replacement')->getData()));
$package->setIndexedAt(null);
$em = $this->getDoctrine()->getManager();
@@ -0,0 +1,18 @@
+<?php
+
+namespace Packagist\WebBundle\EventListener;
+use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
+class CacheListener
+{
+ public function onResponse(FilterResponseEvent $e)
+ {
+ $resp = $e->getResponse();
+ // add nginx-cache compatible header
+ if ($resp->headers->hasCacheControlDirective('public') && ($cache = $resp->headers->getCacheControlDirective('s-maxage'))) {
+ $resp->headers->set('X-Accel-Expires', $cache);
+ }
+}
@@ -10,6 +10,11 @@ services:
tags:
- { name: twig.extension }
+ packagist.cache_listener:
+ class: Packagist\WebBundle\EventListener\CacheListener
+ tags:
+ - { name: kernel.event_listener, event: kernel.response, method: onResponse }
packagist.package_dumper:
class: Packagist\WebBundle\Package\SymlinkDumper
arguments: [ @doctrine, @filesystem, @router, "%kernel.root_dir%/../web/", "%packagist_metadata_dir%" ]