Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 03-04-2014 22:07:10

Orfeo
Membre
Date d'inscription: 02-04-2014
Messages: 13

Erreur : Class not found

Bonjour,

J'ai une erreur class not found dans un controller et je n'arrive pas comprendre pourquoi, j'ai du oublier quelque chose ...
J'ai une entité User dans "module/Application/src/Application/Entity/User/User.php"

Code:

[lang=php]
<?php
namespace Application\Entity;

use Doctrine\ORM\Mapping as ORM;
/** @ORM\Entity */

class User {
    
    /**
     * @ORM\id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\Column(type="integer")
     */
    protected $id;
    
    /**
     * @ORM\Column(type="string")
     */    
    protected $fullname;

    public function getId(){
        return $this->id;
    }
    public function setId($id){
        $this->id = $id;
    }

    public function getFullname(){
        return $this->fullname;
    }
    public function setFullname($fullname){
        $this->fullname = $fullname;
    }
    
}
?>

L'erreur survient quand je tente d'utiliser cette entité dans mon controller : "module/Application/src/Application/Controller/IndexController.php"

Code:

[lang=php]
<?php
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class IndexController extends AbstractActionController
{
    public function indexAction()
    {
    $em = $this
        ->getServiceLocator()
        ->get('Doctrine\ORM\EntityManager');

    $user = new \Application\Entity\User();
    $user->setFullname('Marco Pivetta');

    $em->persist($user);
    $em->flush();

    }
}

J'ai l'impression que tout est bon, j'ai bien spécifié le namespace dans l'entité User, je l'appelle bien dans le controller avec le chemin complet, je suis un peu perdu...
La page m'affiche cette erreur :
"Fatal error: Class 'Application\Entity\User' not found in /Site Internet/zf2-tutorial/module/Application/src/Application/Controller/IndexController.php on line 24"

Merci de votre aide !

Dernière modification par Orfeo (03-04-2014 22:26:28)

Hors ligne

 

#2 04-04-2014 00:22:34

JGreco
Administrateur
Date d'inscription: 22-12-2012
Messages: 432

Re: Erreur : Class not found

Bonjour,
J'ai un doute mais essaye d'enlever le \Application lorsque tu fait ton new User() pour ton indexController, tu te trouve déjà dans ton namespace Application... c'est sur cette ligne que ça va pas... je pense.

Dernière modification par JGreco (04-04-2014 00:43:49)


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#3 04-04-2014 07:34:48

Orfeo
Membre
Date d'inscription: 02-04-2014
Messages: 13

Re: Erreur : Class not found

Non c'est pas ça, j'ai déjà essayé tous les chemins possibles même les plus improbables !
Pour compléter ma demande, j'ai également bien defini mon autoloader dans le fichier Module.php

Code:

[lang=php]

    public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        );
    }

Dernière modification par Orfeo (04-04-2014 07:36:12)

Hors ligne

 

#4 04-04-2014 08:53:36

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: Erreur : Class not found

Bonjour,

Quel est l’erreur en entière? la ligne de l’appelle ainsi que la classe qui n'est pas trouver n'est pas indiquer?
Sa dit juste "class not found" ?

Hors ligne

 

#5 04-04-2014 08:55:48

Orfeo
Membre
Date d'inscription: 02-04-2014
Messages: 13

Re: Erreur : Class not found

Orfeo a écrit:

La page m'affiche cette erreur :
"Fatal error: Class 'Application\Entity\User' not found in /Site Internet/zf2-tutorial/module/Application/src/Application/Controller/IndexController.php on line 24"

Hors ligne

 

#6 04-04-2014 09:01:12

JGreco
Administrateur
Date d'inscription: 22-12-2012
Messages: 432

Re: Erreur : Class not found

Je pense que tu dois mettre le use Application\Entity\User. Si tu peux essayer.

Dernière modification par JGreco (04-04-2014 09:02:46)


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#7 04-04-2014 09:03:49

Orfeo
Membre
Date d'inscription: 02-04-2014
Messages: 13

Re: Erreur : Class not found

Non c'est pas ça, j'ai déjà essayé puis de toute façon j'appelle l'entité avec le chemin complet

Code:

[lang=php]$user = new \Application\Entity\User();

Le pire c'est quand dans l'autocomplétion de NetBeans, il me la trouve cette entité

Dernière modification par Orfeo (04-04-2014 09:04:54)

Hors ligne

 

#8 04-04-2014 09:06:43

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Erreur : Class not found

Même si tu déclare le namespace, tu doit déclarer ton User
(Use ...\User; : ça t'évitera de mettre le chemin de ton fichier à chaque new wink

Ensuite il est plus que probable que la déclaration de ton user se fasse grâce à :

Code:

[lang=php]
$user = new \Application\Entity\User\User();

Dernière modification par flobrflo (04-04-2014 09:10:38)

Hors ligne

 

#9 04-04-2014 09:10:22

Orfeo
Membre
Date d'inscription: 02-04-2014
Messages: 13

Re: Erreur : Class not found

flobrflo a écrit:

Même si tu déclare le namespace, tu doit déclarer ton User
(ça t'évitera de mettre le chemin de ton fichier à chaque new wink

Ensuite il est plus que probable que la déclaration de ton user se fasse grâce à :

Code:

[lang=php]
$user = new \Application\Entity\User\User();

Oui je sais, en fait j'ai testé un peu tous les cas de figure, avec et sans le use, avec et sans le chemin complet, j'ai copié collé le code source à un instant donné mais dans n'importe quel cas, j'ai l'erreur class not found... J'ai même essayé ce que tu m'as dit, sans succès ...
Il y a quelque chose, je sais pas quoi qui m'échappe ...

Hors ligne

 

#10 04-04-2014 09:11:49

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

Re: Erreur : Class not found

Salut, c'est normal qu'il te trouve ton entité. A partir du moment où tu utilises les namespace l'IDE te faut l'autocomplétion à partir du namespace. Le problème c'est ton namespace :

module/Application/src/Application/Entity/User/User.php

namespace Application\Entity;

Non seulement ton entité user n'est pas dans le bon dossier. Elle devrait être dans module/Application/src/Application/Entity/User.php. Donc changes ta classe de dossier ou alors changes ton namespace pour être cohérent avec le dossier wink.

Hors ligne

 

#11 04-04-2014 09:15:50

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Erreur : Class not found

Alors.. j'essairai bien de changer le namespace de ton fichier User.php

Code:

[lang=php]
namespace Application\Entity\User;

Hors ligne

 

#12 04-04-2014 09:17:06

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Erreur : Class not found

ah ben Orkin l'a dit avant moi smile

Hors ligne

 

#13 05-04-2014 00:01:23

Orfeo
Membre
Date d'inscription: 02-04-2014
Messages: 13

Re: Erreur : Class not found

C'était bien ça, merci beaucoup :-)

J'ai honte quand même c'était pas bien difficile mais je pense que par moment que le cache m'induit en erreur ...

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