Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-03-2017 11:53:49

samziceliza
Membre
Date d'inscription: 29-03-2017
Messages: 12

Appel à un controller non trouvé

Bonjour,

J'ai pris un exemple ZF3 https://github.com/olegkrivtsov/using-z … helloworld que j'ai voulu adapter à mon site déjà développé en ZF1.
J'ai renommé le DownloadController en ClientController dans les fichiers suivants :
- module/Application/src/Controller/ClientController et j'ai renommé le nom de la class
- module/Application/view/application/client
- module/Application/config/module.config.php et voici le contenu de ce fichier :

Code:

<?php

namespace Application;

use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;
use Zend\Router\Http\Regex;
use Zend\ServiceManager\Factory\InvokableFactory;
use Application\Route\StaticRoute;

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',
                    ],
                ],
            ],
            'about' => [
                'type' => Literal::class,
                'options' => [
                    'route'    => '/about',
                    'defaults' => [
                        'controller' => Controller\IndexController::class,
                        'action'     => 'about',
                    ],
                ],
            ],
            'download' => [
                'type'    => Segment::class,
                'options' => [
                    'route'    => '/download[/:action]',
                    'defaults' => [
                        'controller'    => Controller\ClientController::class,
                        'action'        => 'index',
                    ],
                ],
            ],
            'doc' => [
                'type' => Regex::class,
                'options' => [
                    'regex'    => '/doc(?<page>\/[a-zA-Z0-9_\-]+)\.html',
                    'defaults' => [
                        'controller' => Controller\IndexController::class,
                        'action'     => 'doc',
                    ],
                    'spec'=>'/doc/%page%.html'
                ],
            ],
            'static' => [
                'type' => StaticRoute::class,
                'options' => [
                    'dir_name'         => __DIR__ . '/../view',
                    'template_prefix'  => 'application/index/static',
                    'filename_pattern' => '/[a-z0-9_\-]+/',
                    'defaults' => [
                        'controller' => Controller\IndexController::class,
                        'action'     => 'static',
                    ],                    
                ],
            ],
            'barcode' => [
                'type' => Segment::class,
                'options' => [
                    'route' => '/barcode[/:type/:label]',
                    'constraints' => [
                        'type' => '[a-zA-Z][a-zA-Z0-9_-]*',
                        'label' => '[a-zA-Z0-9_-]*'
                    ],
                    'defaults' => [
                        'controller' => Controller\IndexController::class,
                        'action' => 'barcode',
                    ],
                ],
            ]             
        ],
    ],
    'controllers' => [
        'factories' => [
            Controller\IndexController::class => InvokableFactory::class,
            Controller\ClientController::class => InvokableFactory::class,
        ],
    ],
    // The following registers our custom view 
    // helper classes in view plugin manager.
    'view_helpers' => [
        'factories' => [
            View\Helper\Menu::class => InvokableFactory::class,
            View\Helper\Breadcrumbs::class => InvokableFactory::class,
        ],
        'aliases' => [
            'mainMenu' => View\Helper\Menu::class,
            'pageBreadcrumbs' => View\Helper\Breadcrumbs::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 le message d'erreur suivant:

File: D:\xampp\htdocs\XerfiTest\vendor\zendframework\zend-servicemanager\src\Factory\InvokableFactory.php:30
Message: Class 'Application\Controller\DownloadController' not found
Stack trace:
#0 D:\xampp\htdocs\XerfiTest\vendor\zendframework\zend-servicemanager\src\ServiceManager.php(758): Zend\ServiceManager\Factory\InvokableFactory->__invoke(Object(Zend\ServiceManager\ServiceManager), 'Application\\Con...', NULL)
#1 D:\xampp\htdocs\XerfiTest\vendor\zendframework\zend-servicemanager\src\ServiceManager.php(200): Zend\ServiceManager\ServiceManager->doCreate('Application\\Con...')
#2 D:\xampp\htdocs\XerfiTest\vendor\zendframework\zend-servicemanager\src\AbstractPluginManager.php(141): Zend\ServiceManager\ServiceManager->get('Application\\Con...')
#3 D:\xampp\htdocs\XerfiTest\vendor\zendframework\zend-mvc\src\DispatchListener.php(95): Zend\ServiceManager\AbstractPluginManager->get('Application\\Con...')
#4 D:\xampp\htdocs\XerfiTest\vendor\zendframework\zend-eventmanager\src\EventManager.php(322): Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#5 D:\xampp\htdocs\XerfiTest\vendor\zendframework\zend-eventmanager\src\EventManager.php(179): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure))
#6 D:\xampp\htdocs\XerfiTest\vendor\zendframework\zend-mvc\src\Application.php(332): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent))
#7 D:\xampp\htdocs\XerfiTest\public\index.php(40): Zend\Mvc\Application->run()
#8 {main}

j'ai fait la recherche de download dans tout les autres fichiers de conf et j'ai rien trouvé.
Ce que je ne comprends pas c'est que même si j'efface le contenu du fichier module/Application/config/module.config.php les url de l'exemple fonctionne, et si je fait une modification dans le fichier ça ne s'applique pas.
Je tourne en rond depuis presque une semaine !!

Dernière modification par samziceliza (30-03-2017 11:57:41)

Hors ligne

 

#2 30-03-2017 13:08:19

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 603
Site web

Re: Appel à un controller non trouvé

Bonjour,

Je ne vois pas d'info concernant un Download controller dans le code fourni...

Par contre le fait que les modifications ne s'affichent pas, il se peut que ta config soit en cache. As-tu activé le mode de développement ?

Hors ligne

 

#3 30-03-2017 13:32:01

samziceliza
Membre
Date d'inscription: 29-03-2017
Messages: 12

Re: Appel à un controller non trouvé

Dans le fichier application.config.php j'ai remplacé true par false pour les options config_cache_enabled et module_map_cache_enabled et ça fonctionne.

Merci beaucoup pour ton aide

Dernière modification par samziceliza (30-03-2017 13:33:40)

Hors ligne

 

#4 30-03-2017 13:48:14

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 603
Site web

Re: Appel à un controller non trouvé

Plutôt que de faire ça, il vaut mieux passer en configuration de développement (en gros ajouter un fichier en plus qui override la config de base et charge quelques confs en plus).

Code:

composer development-enable

Hors ligne

 

#5 30-03-2017 13:56:58

samziceliza
Membre
Date d'inscription: 29-03-2017
Messages: 12

Re: Appel à un controller non trouvé

c'est fait, merci beaucoup

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages