src/Skymark/UtilitiesBundle/Extension/Twig/UriExtension.php line 61

Open in your IDE?
  1. <?php
  2. namespace Skymark\UtilitiesBundle\Extension\Twig;
  3. use Skymark\UtilitiesBundle\Tools\UriDiscovery;
  4. use Skymark\UtilitiesBundle\Generic\PathableInterface;
  5. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  6. use Skymark\UtilitiesBundle\Tools\HTMLFactory;
  7. class UriExtension extends \Twig_Extension implements \Twig\Extension\GlobalsInterface
  8. {
  9.     private static $uriDiscovery null;
  10.     public function setUriDiscovery(UriDiscovery $uriDiscovery)
  11.     {
  12.         // called many times !
  13.         //s33 still? .. optimize
  14.         // error_log( "UriExtension:  setUriDiscovery called." );
  15.         self::$uriDiscovery $uriDiscovery;
  16.     }
  17.     public static function uriDiscovery($contextPathableInterface $object)
  18.     {
  19.         return self::$uriDiscovery->discoverUri($object$context);
  20.     }
  21.     public static function uriLink($contextPathableInterface $target$title$linkAttributes = array())
  22.     {
  23.         $linkAttributes['href'] = self::$uriDiscovery->discoverUri($target$context);
  24.         return HTMLFactory::tag('a'$linkAttributesfalse$title);
  25.     }
  26.     public function getGlobals()
  27.     {
  28.         //s33 is this correct?
  29.         // also causes the err
  30.         // print_r( $uriDiscovery);
  31.         // $defaultUriInformation = self::$uriDiscovery->getGlobalDefaultUriInformation();
  32.         $p1 self::$uriDiscovery;
  33.         // error_log("getGlobalDefaultUriInformation()   = " . $p1->getGlobalDefaultUriInformation() );
  34.         // error_log( "said i was a string .. $p1 ?" );
  35.         // $defaultUriInformation = $p1->getGlobalDefaultUriInformation();
  36.         // actually, it is
  37.         // error_log(" 1604 - maybe getGlobalDefaultUriInformation really isnt used?? ");
  38.         return array(
  39.             'root_domain' => 'the.root.domain' //  implode('.', $defaultUriInformation['domain'])
  40.         );
  41.     }
  42.     public function getName()
  43.     {
  44.         return 'uris';
  45.     }
  46.     public function getFunctions()
  47.     {
  48.         return array(
  49.             'uri' => new \Twig_Function_Function(
  50.                 '\Skymark\UtilitiesBundle\Extension\Twig\UriExtension::uriDiscovery',
  51.                 array('needs_context' => true)
  52.             ),
  53.             'link' => new \Twig_Function_Function(
  54.                 '\Skymark\UtilitiesBundle\Extension\Twig\UriExtension::uriLink',
  55.                 array('needs_context' => true)
  56.             )
  57.         );
  58.     }
  59. }