Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-01-2013 17:31:39

lepiou
Membre
Date d'inscription: 17-10-2012
Messages: 19

Externaliser des classes dans /vendor

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 :

Code:

{
    "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 :

Code:

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

 

#2 29-01-2013 21:29:52

serutan
Membre
Date d'inscription: 23-01-2013
Messages: 15

Re: Externaliser des classes dans /vendor

Qu'en est t'il de ton fichier config/application.config.php ? Tu peux nous le montrer ?

Hors ligne

 

#3 30-01-2013 09:19:22

lepiou
Membre
Date d'inscription: 17-10-2012
Messages: 19

Re: Externaliser des classes dans /vendor

Code:

<?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

 

#4 30-01-2013 19:16:43

serutan
Membre
Date d'inscription: 23-01-2013
Messages: 15

Re: Externaliser des classes dans /vendor

Code:

<?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

 

#5 31-01-2013 09:28:42

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Externaliser des classes dans /vendor

C'est normalement ça tu dois l'indiquer dans l'application.config.php wink

Hors ligne

 

#6 31-01-2013 13:48:33

lepiou
Membre
Date d'inscription: 17-10-2012
Messages: 19

Re: Externaliser des classes dans /vendor

Ce n'est pas un module, juste des classes en dehors de l'appli

Si je rajoute tribord j'ai cette erreur :

Code:

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

 

#7 31-01-2013 15:24:02

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Externaliser des classes dans /vendor

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

 

#8 31-01-2013 17:03:33

lepiou
Membre
Date d'inscription: 17-10-2012
Messages: 19

Re: Externaliser des classes dans /vendor

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

 

#9 01-02-2013 09:19:09

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Externaliser des classes dans /vendor

C'était pas du ZF1 que tu faisais ? Parce qu'avec le ZF1 c'était possible.

Hors ligne

 

#10 01-02-2013 10:29:51

lepiou
Membre
Date d'inscription: 17-10-2012
Messages: 19

Re: Externaliser des classes dans /vendor

Non ZF2 wink

J'ai réussi en les mettant a la racine, pas pigé pourquoi ca ne fonctionne pas dans vendor.

Tant pis !

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