1212namespace  Symfony \Bundle \AsseticBundle \Controller ;
1313
1414use  Assetic \Asset \AssetCache ;
15- use  Assetic \AssetManager ;
15+ use  Assetic \Factory \ LazyAssetManager ;
1616use  Assetic \Cache \CacheInterface ;
1717use  Symfony \Component \HttpFoundation \Request ;
1818use  Symfony \Component \HttpFoundation \Response ;
@@ -29,7 +29,7 @@ class AsseticController
2929 protected  $ am
3030 protected  $ cache
3131
32-  public  function  __construct (Request $ requestAssetManager $ amCacheInterface $ cache
32+  public  function  __construct (Request $ requestLazyAssetManager $ amCacheInterface $ cache
3333 {
3434 $ this request  = $ request
3535 $ this am  = $ am
@@ -43,25 +43,36 @@ public function render($name)
4343 }
4444
4545 $ asset$ this getAsset ($ name
46+  $ response$ this createResponse ();
4647
47-  $ responsenew  Response ();
48- 
49-  // validate if-modified-since 
48+  // last-modified 
5049 if  (null  !== $ lastModified$ assetgetLastModified ()) {
5150 $ datenew  \DateTime ();
5251 $ datesetTimestamp ($ lastModified
5352 $ responsesetLastModified ($ date
53+  }
54+ 
55+  // etag 
56+  if  ($ this am ->hasFormula ($ name
57+  $ formula$ this am ->getFormula ($ name
58+  $ formula'last_modified ' ] = $ lastModified
59+  $ responsesetETag (md5 (serialize ($ formula
60+  }
5461
55-  if  ($ responseisNotModified ($ this request )) {
56-  return  $ response
57-  }
62+  if  ($ responseisNotModified ($ this request )) {
63+  return  $ response
5864 }
5965
6066 $ responsesetContent ($ assetdump ());
6167
6268 return  $ response
6369 }
6470
71+  protected  function  createResponse ()
72+  {
73+  return  new  Response ();
74+  }
75+ 
6576 protected  function  getAsset ($ name
6677 {
6778 return  new  AssetCache ($ this am ->get ($ name$ this cache );
0 commit comments