Ejemplo n.º 1
0
 public function setUp()
 {
     $this->controller = $controller = new RestController();
     $this->router = $router = new SimpleRouteStack();
     $route = new Segment('/resource[/[:id]]');
     $router->addRoute('resource', $route);
     $this->event = $event = new MvcEvent();
     $event->setRouter($router);
     $event->setRouteMatch(new RouteMatch(array()));
     $controller->setEvent($event);
     $controller->setRoute('resource');
     $pluginManager = new PluginManager();
     $pluginManager->setService('bodyParams', new BodyParams());
     $controller->setPluginManager($pluginManager);
     $urlHelper = new UrlHelper();
     $urlHelper->setRouter($this->router);
     $serverUrlHelper = new ServerUrlHelper();
     $serverUrlHelper->setScheme('http');
     $serverUrlHelper->setHost('localhost.localdomain');
     $linksHelper = new HalHelper();
     $linksHelper->setUrlHelper($urlHelper);
     $linksHelper->setServerUrlHelper($serverUrlHelper);
     $pluginManager->setService('Hal', $linksHelper);
     $linksHelper->setController($controller);
     $this->resource = $resource = new Resource();
     $controller->setResource($resource);
 }
Ejemplo n.º 2
0
 public function setUp()
 {
     $this->router = $router = new TreeRouteStack();
     $route = new Segment('/resource[/[:id]]');
     $router->addRoute('resource', $route);
     $route2 = new Segment('/help');
     $router->addRoute('docs', $route2);
     $router->addRoute('hostname', ['type' => 'hostname', 'options' => ['route' => 'localhost.localdomain'], 'child_routes' => ['resource' => ['type' => 'segment', 'options' => ['route' => '/resource[/:id]'], 'may_terminate' => true, 'child_routes' => ['children' => ['type' => 'literal', 'options' => ['route' => '/children']]]], 'users' => ['type' => 'segment', 'options' => ['route' => '/users[/:id]']], 'contacts' => ['type' => 'segment', 'options' => ['route' => '/contacts[/:id]']], 'embedded' => ['type' => 'segment', 'options' => ['route' => '/embedded[/:id]']], 'embedded_custom' => ['type' => 'segment', 'options' => ['route' => '/embedded_custom[/:custom_id]']]]]);
     $this->event = $event = new MvcEvent();
     $event->setRouter($router);
     $router->setRequestUri(new Http('http://localhost.localdomain/resource'));
     $controller = $this->controller = $this->getMock('Zend\\Mvc\\Controller\\AbstractRestfulController');
     $controller->expects($this->any())->method('getEvent')->will($this->returnValue($event));
     $this->urlHelper = $urlHelper = new UrlHelper();
     $urlHelper->setRouter($router);
     $this->serverUrlHelper = $serverUrlHelper = new ServerUrlHelper();
     $serverUrlHelper->setScheme('http');
     $serverUrlHelper->setHost('localhost.localdomain');
     $this->plugin = $plugin = new HalHelper();
     $plugin->setController($controller);
     $plugin->setUrlHelper($urlHelper);
     $plugin->setServerUrlHelper($serverUrlHelper);
     $linkExtractor = new LinkExtractor($serverUrlHelper, $urlHelper);
     $linkCollectionExtractor = new LinkCollectionExtractor($linkExtractor);
     $plugin->setLinkCollectionExtractor($linkCollectionExtractor);
 }
    public function setupHelpers()
    {
        if (!$this->router) {
            $this->setupRouter();
        }

        $urlHelper = new UrlHelper();
        $urlHelper->setRouter($this->router);

        $serverUrlHelper = new ServerUrlHelper();
        $serverUrlHelper->setScheme('http');
        $serverUrlHelper->setHost('localhost.localdomain');

        $linksHelper = new HalHelper();
        $linksHelper->setUrlHelper($urlHelper);
        $linksHelper->setServerUrlHelper($serverUrlHelper);

        $this->helpers = $helpers = new HelperPluginManager();
        $helpers->setService('url', $urlHelper);
        $helpers->setService('serverUrl', $serverUrlHelper);
        $helpers->setService('hal', $linksHelper);

        $this->plugins = $plugins = new ControllerPluginManager();
        $plugins->setService('hal', $linksHelper);
    }
 public function setUpHelpers()
 {
     if (isset($this->helpers)) {
         return;
     }
     $this->setupRouter();
     $urlHelper = new UrlHelper();
     $urlHelper->setRouter($this->router);
     $serverUrlHelper = new ServerUrlHelper();
     $serverUrlHelper->setScheme('http');
     $serverUrlHelper->setHost('localhost.localdomain');
     $this->linksHelper = $linksHelper = new HalHelper();
     $linksHelper->setUrlHelper($urlHelper);
     $linksHelper->setServerUrlHelper($serverUrlHelper);
     $this->helpers = $helpers = new HelperPluginManager();
     $helpers->setService('url', $urlHelper);
     $helpers->setService('serverUrl', $serverUrlHelper);
     $helpers->setService('hal', $linksHelper);
 }
 public function setUpHelpers()
 {
     // need to setup routes
     // need to get a url and serverurl helper that have appropriate injections
     $this->router = $router = new TreeRouteStack();
     $this->entityRoute = new Segment('/resource[/[:id]]');
     $this->router->addRoute('resource', $this->entityRoute);
     $this->helpers = $helpers = new HelperPluginManager();
     $serverUrl = $helpers->get('ServerUrl');
     $url = $helpers->get('url');
     $url->setRouter($router);
     $serverUrl->setScheme('http');
     $serverUrl->setHost('localhost.localdomain');
     $halLinks = new HalHelper();
     $halLinks->setServerUrlHelper($serverUrl);
     $halLinks->setUrlHelper($url);
     $helpers->setService('Hal', $halLinks);
     $this->renderer->setHelperPluginManager($helpers);
 }
Ejemplo n.º 6
0
 /**
  * @group 125
  */
 public function testSetServerUrlHelperRaisesExceptionIndicatingDeprecation()
 {
     $this->setExpectedException(Exception\DeprecatedMethodException::class, 'can no longer be used to influence URL generation');
     $this->plugin->setServerUrlHelper(function () {
     });
 }
Ejemplo n.º 7
0
 /**
  * Defines the "Hal" view helper
  *
  * @return array
  */
 public function getViewHelperConfig()
 {
     return array('factories' => array('Hal' => function ($helpers) {
         $serverUrlHelper = $helpers->get('ServerUrl');
         $urlHelper = $helpers->get('Url');
         $services = $helpers->getServiceLocator();
         $config = $services->get('Config');
         $metadataMap = $services->get('ZF\\Hal\\MetadataMap');
         $hydrators = $metadataMap->getHydratorManager();
         $helper = new Plugin\Hal($hydrators);
         $helper->setMetadataMap($metadataMap);
         $helper->setServerUrlHelper($serverUrlHelper);
         $helper->setUrlHelper($urlHelper);
         if (isset($config['zf-hal']) && isset($config['zf-hal']['renderer'])) {
             $config = $config['zf-hal']['renderer'];
             if (isset($config['default_hydrator'])) {
                 $hydratorServiceName = $config['default_hydrator'];
                 if (!$hydrators->has($hydratorServiceName)) {
                     throw new Exception\DomainException(sprintf('Cannot locate default hydrator by name "%s" via the HydratorManager', $hydratorServiceName));
                 }
                 $hydrator = $hydrators->get($hydratorServiceName);
                 $helper->setDefaultHydrator($hydrator);
             }
             if (isset($config['render_embedded_resources'])) {
                 $helper->setRenderEmbeddedEntities($config['render_embedded_resources']);
             }
             if (isset($config['render_embedded_entities'])) {
                 $helper->setRenderEmbeddedEntities($config['render_embedded_entities']);
             }
             if (isset($config['render_collections'])) {
                 $helper->setRenderCollections($config['render_collections']);
             }
             if (isset($config['hydrators']) && is_array($config['hydrators'])) {
                 $hydratorMap = $config['hydrators'];
                 foreach ($hydratorMap as $class => $hydratorServiceName) {
                     $helper->addHydrator($class, $hydratorServiceName);
                 }
             }
         }
         return $helper;
     }));
 }