2013-10-24 2 views
1

Я хочу получить serverUrl в модели. Какой класс я должен импортировать и какую функцию мне нужно вызвать в моей модели, чтобы получить URL-адрес сервера. Поэтому в будущем я могу легко изменить свои URL-адреса в http до https только в конфигурации. Что-то вроде этого.Как получить URL-адрес сервера в модели ZF2

use Zend\View\Helper\BasePath; 

abstract class MysqliDB { 

    protected function site_url(){ 

     $object = new BasePath(); 
     return $object->getView(); 
    } 

} 

Просьба предложить мне, если я могу это сделать или есть альтернатива для этого.

+1

Я лично не считаю, что функции, методы и службы, подобные этим, относятся к бизнес-логике. Но вы можете получить яблоко (MvcEvent $ e), затем $ e-> getApplication() -> getServiceManager(); затем получите услугу маршрутизатора, а затем измените URL-адрес сервера внутри него. – cptnk

+2

Ваша модель не должна создавать экземпляр объекта, а затем волшебным образом знает о URL-адресе, и ваша модель должна запрашивать URL-адрес. Затем внешний слой модели должен указывать URL-адрес. – Sven

+0

спасибо cptnk и Sven, поэтому я должен использовать фабрики в module.php для передачи URL-адреса сервера моей модели? –

ответ

1

Вы можете использовать $ _SERVER ['HTTP_HOST'] для получения имени узла/базового URL-адреса для вашего сайта.

+0

Хорошая идея, но что, если мы хотим контролировать https или http из конфигурации? Я имел в виду, что хочу иметь идею подключения конфигурации ZF2 к модели напрямую. В настоящее время я передаю url от контроллера, как параметр для модели. –

+0

Вы можете легко проверить, является ли протокол http или https с помощью этого кода echo isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']! = 'Off'? «HTTPS»: «HTTP»; –

Смежные вопросы