IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

ZF2 - Tutoriel D


Sujet :

Zend Framework PHP

  1. #1
    Membre éprouvé Avatar de Shuty
    Homme Profil pro
    Ingénieur en développement
    Inscrit en
    Octobre 2012
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur en développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 630
    Points : 1 174
    Points
    1 174
    Par défaut ZF2 - Tutoriel D
    Bonjour à tous,

    Dans le cadre du travail, je travail actuellement sur ZF2. J'ai suivis votre tuto (qui est par ailleurs très bien rédigé) mais j'obtiens une erreur lorsque je crée mes models de base de donnée.

    Php m'indique que la classe User est introuvable...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PHP Fatal error:  Class 'Zend\\Db\\ResultSet\\Row' not found in /UNXDEVCKT01/www/firewall/ZendFramework/module/Firewall/src/Firewall/Model/User.php on line 7, referer: https://firewall-dev.fr.local/Service/list


    /module/Firewall/Module.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
    namespace Firewall;
     
    use Zend\Mvc\ModuleRouteListener;
    use Zend\Mvc\MvcEvent;
    use Firewall\Model\UserTable;
    //use Zend\Db\ResultSet\ResultSet;
    //use Zend\Db\TableGateway\TableGateway;
     
    class Module
    {
        public function onBootstrap(MvcEvent $e)
        {
            $eventManager        = $e->getApplication()->getEventManager();
            $moduleRouteListener = new ModuleRouteListener();
            $moduleRouteListener->attach($eventManager);
        }
     
        public function getConfig()
        {
            return include __DIR__ . '/config/module.config.php';
        }
     
        public function getAutoloaderConfig()
        {
            return array(
                'Zend\Loader\StandardAutoloader' => array(
                    'namespaces' => array(
                        __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                    ),
                ),
            );
        }
     
        public function getServiceConfig()
        {
            return array(
            'factories' => array(
                'user-table' => function($sm) {
                    $dbAdapter = $sm->get('db-adapter');
                    $table = new UserTable($dbAdapter);
                    return $table;
                },
            ),
            );
        }
    }
    /module/Application/Module.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
    namespace Application;
     
    use Zend\Mvc\ModuleRouteListener;
    use Zend\Mvc\MvcEvent;
    use Zend\Db\Adapter\Adapter as DbAdapter;
     
    class Module
    {
        public function onBootstrap(MvcEvent $e)
        {
            $eventManager        = $e->getApplication()->getEventManager();
            $moduleRouteListener = new ModuleRouteListener();
            $moduleRouteListener->attach($eventManager);
        }
     
        public function getConfig()
        {
            return include __DIR__ . '/config/module.config.php';
        }
     
        public function getAutoloaderConfig()
        {
            return array(
                'Zend\Loader\StandardAutoloader' => array(
                    'namespaces' => array(
                        __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                    ),
                ),
            );
        }
     
        public function getServiceConfig()
        {
            return array(
                'factories' => array(
                    'db-adapter' => function($sm) {
                        $config = $sm->get('config');
                        $config = $config['db'];
                        $dbAdapter = new DbAdapter($config);
                        return $dbAdapter;
                    },
                ),
            );
     
        }
    }
    /module/Firewall/src/Firewall/Model/User.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    namespace Firewall\Model;
    use Zend\Db\ResultSet\Row;
     
    class User extends Row
    {}
    /module/Firewall/src/Firewall/Model/UserTable.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
     
    namespace Firewall\Model;
    use Zend\Db\TableGateway\AbstractTableGateway;
    use Zend\Db\Adapter\Adapter;
    use Zend\Db\ResultSet\ResultSet;
     
     
    class UserTable extends AbstractTableGateway
    {
        protected $table ='t_user';
        protected $tableName ='t_user';
     
        public function __construct(Adapter $adapter)
        {
            $this->adapter = $adapter;
            $this->resultSetPrototype = new ResultSet(new User);
            $this->initialize();
        }
     
        // Autres methodes....
     
    }
    /module/Firewall/src/Firewall/Controller/ServiceController.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        public function addAction()
        {
            if (!$this->userTable) {
                $sm = $this->getServiceLocator();
                $this->userTable = $sm->get('user-table');
            }
            return $this->userTable;
         }

    Je vous remercie beaucoup pour votre aide... Ca fait 2 jours que je cherche à comprendre mais rien à faire... J'arrive à executer des requete directement par l'adapter mais impossible comme votre tuto...

    Cordialement,
    Agence web Dim'Solution, créateur de solutions numériques
    Sites internet, ecommerce, logiciels, applications mobiles, référencement (SEO), plugin Prestashop, Magento, WordPress, Joomla!...

    Cours de trading gratuit | Envoyer des sms gratuitement | Envoyer des fax gratuitement | Plateforme de Fax à l'international

  2. #2
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    Bonsoir,

    Ce n'est pas la classe User qu'il ne trouve pas mais Zend\Db\ResultSet\Row.

    J'ai regardé rapidement, il semblerait que cette classe ait disparu entre la beta 4 et la beta 5 de ZF2... en gros une version qui date de mai 2012. Il date un peu le tutoriel j'imagine ?

    Tu as possibilité de mettre un lien du dit tuto pour voir quelle est la logique derrière ?

  3. #3
    Membre éprouvé Avatar de Shuty
    Homme Profil pro
    Ingénieur en développement
    Inscrit en
    Octobre 2012
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur en développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 630
    Points : 1 174
    Points
    1 174
    Par défaut
    http://zend-framework.developpez.com...amework-2/#LXX

    Je viens de vérifier dans les libs et effectivement, la class DB n'existe plus...

    Du coup je suis la doc et j'utilise TableGateway & RowGatewayFeature.

    Merci pour ton petit coup de pouce
    Agence web Dim'Solution, créateur de solutions numériques
    Sites internet, ecommerce, logiciels, applications mobiles, référencement (SEO), plugin Prestashop, Magento, WordPress, Joomla!...

    Cours de trading gratuit | Envoyer des sms gratuitement | Envoyer des fax gratuitement | Plateforme de Fax à l'international

  4. #4
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    You're welcome !

Discussions similaires

  1. Tutoriel zf2 : composer.phar ne fait rien du tout !
    Par CinePhil dans le forum Zend Framework
    Réponses: 4
    Dernier message: 16/05/2013, 02h16
  2. [ZF2] Tutoriels sur le Zend Framework 2
    Par blanchonvincent dans le forum Zend Framework
    Réponses: 4
    Dernier message: 28/04/2013, 14h14
  3. [ZF2.0.0beta3] tutoriels sur le ZF2
    Par blanchonvincent dans le forum Zend Framework
    Réponses: 0
    Dernier message: 09/05/2012, 17h14
  4. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 22h33
  5. F.A.Q, Doc, cours, tutoriels sur JBuilder
    Par Ricky81 dans le forum JBuilder
    Réponses: 0
    Dernier message: 14/03/2002, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo