Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour tout le monde
Je cherches a mettre des classes (classes abstraites communes a tous les modules, helpers, ...) dans /vendor
Je me retrouve du coup avec une arbo de ce type :
vendor
Tribord
Controller
AbstractController
J'ai modifié le composer.json :
{ "name": "zendframework/skeleton-application", "description": "Skeleton Application for ZF2", "license": "BSD-3-Clause", "keywords": [ "framework", "zf2" ], "homepage": "http://framework.zend.com/", "require": { "php": ">=5.3.3", "zendframework/zendframework": "2.*" }, "autoload": { "psr-0": { "Tribord" : "vendor/Tribord/" } } }
Executé un php composer.phar update
Mais quand sur mes controlleurs j'étend de ces nouvelles classes :
class SuperController extends \Tribord\Controller\AbstractController{}
J'ai une erreur php comme quoi il ne trouve pas AbstractController
Quelqu'un a une idée ?
Merci d'avance
Dernière modification par lepiou (30-01-2013 09:45:25)
Hors ligne
Qu'en est t'il de ton fichier config/application.config.php ? Tu peux nous le montrer ?
Hors ligne
<?php return array( 'modules' => array( 'Application', 'Stats', ), 'module_listener_options' => array( 'config_glob_paths' => array( 'config/autoload/{,*.}{global,local}.php', ), 'config_cache_enabled' => false, 'cache_dir' => 'data/cache', 'module_paths' => array( './module', './vendor', ), ), 'service_manager' => array( 'use_defaults' => true, 'factories' => array( ), ), );
Merci !
Hors ligne
<?php return array( 'modules' => array( 'Application', 'Stats', [b]'Tribord',[/b] ), 'module_listener_options' => array( 'config_glob_paths' => array( 'config/autoload/{,*.}{global,local}.php', ), 'config_cache_enabled' => false, 'cache_dir' => 'data/cache', 'module_paths' => array( './module', './vendor', ), ), 'service_manager' => array( 'use_defaults' => true, 'factories' => array( ), ), );
.
Je ne suis pas encore expérimenté en ZF2, mais de ce que j'en ai compris, il ne va pas instancier ton module si tu ne lui demande pas expressément.
Hors ligne
C'est normalement ça tu dois l'indiquer dans l'application.config.php
Hors ligne
Ce n'est pas un module, juste des classes en dehors de l'appli
Si je rajoute tribord j'ai cette erreur :
Fatal error: Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException' with message 'Module (Tribord) could not be initialized.' in C:\wamp\www\tribord\vendor\zendframework\zendframework\library\Zend\ModuleManager\ModuleManager.php on line 144
Hors ligne
Ca ne peux pas fonctionner le ZF2 fonctionne par système de module avec une arborescence à respecter si celle-ci n'est pas respecter ça ne fonctionnera pas. Tu peux donc faire un module que tu vas appeler "Common" ou un truc du genre que tu vas mettre soit dans vendor soit dans Module par contre celui-ci doit respecter les règles d'un module.
Hors ligne
Ca fonctionnait ainsi dans la boite ou j'etais en mission le mois dernier, helas je n'ai pas les sources.
Je vais continuer a chercher
Merci
Hors ligne
C'était pas du ZF1 que tu faisais ? Parce qu'avec le ZF1 c'était possible.
Hors ligne
Non ZF2
J'ai réussi en les mettant a la racine, pas pigé pourquoi ca ne fonctionne pas dans vendor.
Tant pis !
Hors ligne