Search code examples
phpzend-framework2

How to get baseUrl in ZF2 controller?


In my zf2 controller I want to retrieve the application base URL (for example http://example.com).

I tried the following call but it returns an empty string.

$this->request->getBasePath();

How can I then get the http://example.com part of URL in my controller?


Solution

  • I know this is not the prettiest way of doing it but, hey, it works:

    public function indexAction()
    {
        $uri = $this->getRequest()->getUri();
        $scheme = $uri->getScheme();
        $host = $uri->getHost();
        $base = sprintf('%s://%s', $scheme, $host);
    
        // $base would be http://example.com
    }
    

    Or if you don't mind shortening everything you could do it in two lines:

    public function indexAction()
    {
        $uri = $this->getRequest()->getUri();
        $base = sprintf('%s://%s', $uri->getScheme(), $uri->getHost());
    }