• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

ServerUrl und BasePath auch in der Konsole nutzen

JanMalte

New member
Hallo zusammen,

die automatische Erkennung der Server URL läuft ja recht gut und für eine normale Webanwendung passt das ja auch soweit ganz gut.

Es kommt aber durchaus vor, dass manche Aufgaben über die Konsole durchgeführt werden. Hier kann dann keine serverUrl oder basePath gefunden werden.

Beim basePath ist eine Einstellung über die Konfiguration ja bereits möglich:
PHP:
'view_manager' => array(
    'base_path' => '/test/some/path',
),
Also könnte man das ja auch auf die ServerUrl ausweiten:
PHP:
'view_manager' => array(
    'scheme' => 'http',
    'port' => null,
    'host' => 'maxi.com',
    'base_path' => '/test/some/path',
),
Hierfür dann eine eigene Factory:
PHP:
class ServerUrlFactory implements FactoryInterface
{

    /**
     * Create service
     *
     * @param ServiceLocatorInterface $serviceLocator
     *
     * @return ServerUrl
     */
    public function createService(ServiceLocatorInterface $serviceLocator)
    {
        $serverUrlHelper = new ServerUrl();

        $config = $serviceLocator->getServiceLocator()->get('Config');
        if (isset($config['view_manager']) && isset($config['view_manager']['scheme'])) {
            $serverUrlHelper->setScheme($config['view_manager']['scheme']);
        }
        if (isset($config['view_manager']) && isset($config['view_manager']['port'])) {
            $serverUrlHelper->setPort($config['view_manager']['port']);
        }
        if (isset($config['view_manager']) && isset($config['view_manager']['host'])) {
            $serverUrlHelper->setHost($config['view_manager']['host']);
        }

        return $serverUrlHelper;
    }
}
Das Problem ist jetzt aber, dass der URL Helper sich nicht an die Einstellungen hält, da der ja seine URL selber aus dem Request aufbaut.
Code:
serverUrl: http://maxi.com
basePath: /test/some/path
urlHelper: /zf2/public/ (URL Aufruf: http://localhost/zf2/public/)
Die Frage ist, wie habt ihr das gelöst, damit ihr auch über die Konsole die URL benutzen könnt, zum Beispiel E-Mail Versand über einen Cron Job, und auch die Unit Tests laufen?
 
Zuletzt bearbeitet:

domeb

New member
Hallo Jan,

ich weiß das ist schon eine Weile her, aber hast du dafür jemals eine Lösung gefunden? Sitze gerade vor dem selben Problem...
 
Oben