Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

routes dans zf2


Sujet :

Zend Framework PHP

  1. #1
    Nouveau membre du Club
    routes dans zf2
    Bonsoir tout le monde .j'ai pu installer zend framework 2.4.9.mais lorsque j'essaie d'afficher ma page index(exemple:http://zend/public/index.php) voici l'erreur que ca m'affiche:
    A 404 error occurred
    Page not found.
    The requested URL could not be matched by routing.
    No Exception available

    voici le contenu de mon fichier http-vhosts:
    ##NameVirtualHost *:80
    #
    # VirtualHost example:
    # Almost any Apache directive may go into a VirtualHost container.
    # The first VirtualHost section is used for all requests that do not
    # match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
    #
    ##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
    ##ServerName dummy-host.example.com
    ##ServerAlias www.dummy-host.example.com
    ##ErrorLog "logs/dummy-host.example.com-error.log"
    ##CustomLog "logs/dummy-host.example.com-access.log" common
    ##</VirtualHost>

    ##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host2.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host2.example.com"
    ##ServerName dummy-host2.example.com
    ##ErrorLog "logs/dummy-host2.example.com-error.log"
    ##CustomLog "logs/dummy-host2.example.com-access.log" common
    ##</VirtualHost>
    <VirtualHost *:80>
    DocumentRoot "C:\xampp\apache\xampp\htdocs\zend\public"
    ServerName zend
    ServerAlias www.zend
    SetEnv APPLICATION_ENV "development"
    <Directory "C:\xampp\apache\xampp\htdocs\zend\public">
    DirectoryIndex index.php
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
    </VirtualHost>

    voici le contenu de mon fichier module.config.php

    <?php
    /**
    * @link http://github.com/zendframework/Zend...tonApplication for the canonical source repository
    * @copyright Copyright (c) 2005-2016 Zend Technologies USA Inc. (http://www.zend.com)
    * @license http://framework.zend.com/license/new-bsd New BSD License
    */

    namespace Application;

    use Zend\Router\Http\Literal;
    use Zend\Router\Http\Segment;
    use Zend\ServiceManager\Factory\InvokableFactory;

    return [ 'router' => [ 'routes' => [ 'home' => [ 'type' => Literal::class, 'options' => [ 'route' => '/', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'index', ],
    ],
    ],
    'application' => [ 'type' => Segment::class, 'options' => [ 'route' => '/application[/:action]',
    'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'index', ],
    ],
    ],
    ],
    ],
    'controllers' => [ 'factories' => [ Controller\IndexController::class => InvokableFactory::class, ],
    ],
    'view_manager' => [ 'display_not_found_reason' => true, 'display_exceptions' => true, 'doctype' => 'HTML5', 'not_found_template' => 'error/404', 'exception_template' => 'error/index', 'template_map' => [ 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', 'application/index/index' => __DIR__ . '/../view/application/index/index.phtml', 'error/404' => __DIR__ . '/../view/error/404.phtml', 'error/index' => __DIR__ . '/../view/error/index.phtml', ],
    'template_path_stack' => [ __DIR__ . '/../view', ],
    ],
    ];

    j'ai fouille un peu sur le net on me parle de routes.j'avoue que je n'ai pas compris grand chose.j'aimerais savoir comment regler ce problème la.merci d'avance

  2. #2
    Membre éprouvé
    Bonjour,

    Pourrais-tu utiliser la balise code pour une meilleur lisibilité (#) ?

    Sinon, concernant le problème ici ce n'est pas un problème de route mais de configuration d'apache. En gros, navigateur web => apache => index.php => routing.

    Dans ton virtualhost, ton document root est C:\xampp\apache\xampp\htdocs\zend\public, donc tu pointes dans le dossier public, dans lequel le .htaccess dit qu'on passe directement dans l'index.php.

    Donc au niveau url, http://zend => C:\xampp\apache\xampp\htdocs\zend\public, ce qui veut dire que http://zend/public => C:\xampp\apache\xampp\htdocs\zend\public\public, ce qui n'existe pas.

    Essaye juste avec http://zend pour voir !