Sujet : Ebauche MVC

Bonjour,

Je fais une ébauche de MVC pour essayer Hoa.

Je bloque sur un extends, il me manque je pense un protocol et je ne sais comment le mettre en place


donc je crée une classe Controller dans hoa/Module/Maitrepylos/Controller.php

Ensuite dans root/Application/Controller/tuto.php, je crée la classe suivante :

from('Hoathis')
        ->import('Maitrepylos.Controller');


class tuto extends \Hoathis\Maitrepylos\Controller{

    public function index(){

        echo 'premier test';
    }

    
}

et voici le message d'erreur

Fatal error: Class 'Hoathis\Maitrepylos\Controller' not found in hoa://Application/Controller/tuto.php on line 21 

J'imagine que je dois déclarer un protocol pour

hoa://Application/Controller

Merci de votre aide.

2

Re : Ebauche MVC

Hey smile,

Si tu fais

$ Data/Bin/myapp protocol:resolve hoa://Application/Controller

est-ce que ça pointe bien vers le bon dossier (j'imagine root/Application/Controller/tuto.php) ?
Tu utilises bien Hoa 1.0.0b5 (ou le trunk) ? Tu utilises Hoa framework ?
Comment déclares-tu la classe Hoathis\Maitrepylos\Controller ?
Quelles sont les paramètres de Hoa\Core et Hoa\Dispatcher ?

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : Ebauche MVC

Alors,

Première question :  oui c'est bon

./myapp protocol:resolve hoa://Application/Controller
hoa://Application/Controller is equivalent to: 
/opt/www/testHoa/Application/Controller

Pour la version cela me semble bon :

./myapp Main:version
Hoa 1.0.0b (998).
Copyright © 2007-2011 Ivan Enderlin. All rights reserved.
New BSD License.

Oui, j'utilise la Framework !

Voici comment je déclare ma classe, actuellement vide.

namespace Hoathis\Maitrepylos\Controller {
class Controller {
    //put your code here
}
}

Je ne voit pas de quoi tu parles pour Hoa\Core et Hoa\Dispatcher ?

4

Re : Ebauche MVC

Que t'affiche :

Hoa\Core::getInstance()->getParameters()->getFormattedParameter('namespace.prefix.Hoathis');

s'il te plaît ? J'essaye de localiser l'erreur en fait. Sinon tu peux m'envoyer ton projet par email en archive et je te trouve l'erreur aujourd'hui smile.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

5

Re : Ebauche MVC

Ok, je n'avais pas bien compris ton problème.

Il faut renommer ton espace de nom \Hoathis\Maitrepylos\Controller en \Hoathis\Maitrepylos. En effet, ton fichier est dans le dossier Module/Maitrepylos et s'appelle Controller.php. Regarde plutôt ceci :

class Hoathis \ Maitrepylos \ Controller
dir.  Module  / Maitrepylos
file                        / Controller.php

En revanche, si Controller.php était rangé dans le dossier Module/Maitrepylos/Controller/Controller.php, là tu aurais l'espace de nom Hoathis\Maitrepylos\Controller et ta classe s'appellerait Hoathis\Maitrepylos\Controller\Controller. Tu remarques qu'on deux fois le même nom à la fin. C'est parce que la classe à le même nom que l'espace. Dans Hoa, on appelle ça une classe d'entrée de paquetage et un alias se crée automatiquement : Hoathis\Maitrepylos\Controller est alors suffisant.

Tu comprends ? Relis calmement sinon tongue.

Au fait, tu sais que tu as déjà de quoi faire du MVC dans Hoa ?

$ hg clone --branche default http://hg.hoa-project.net/W3 /tmp/hoaw3
$ php-cgi -b localhost:8888&
$ /tmp/hoaw3/Data/Bin/hoaw3 bhoa --root hoa://Application/Public

Et tu te rends ici : http://localhost:8888/Literature/Learn/ … tcher.html. La branche « default » est plus avancée pour le manuel. Sinon regarde : le blog du sandbox pour un exemple concret (car la doc n'est pas encore terminée).

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : Ebauche MVC

Au boulot, je n'arrive pas à faire fonctionner Mercurial et le proxy, donc je regarde la doc ce soir.

J'ai compris pour les namespaces.

Je vais continuer mes explorations, puis je me baserais sur le Sandox pour faire quelque chose de plus générique que le blog smile

Merci de ton aide.

7

Re : Ebauche MVC

Tu as les archives ici sinon : http://download.hoa-project.net/Sandbox/

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : Ebauche MVC

Oki merci

Re : Ebauche MVC

$ hg clone --branche default http://hg.hoa-project.net/W3 /tmp/hoaw3
$ php-cgi -b localhost:8888&
$ /tmp/hoaw3/Data/Bin/hoaw3 bhoa --root hoa://Application/Public


Sous Fedora 15 avec Zend Server cela tourne en rond et je n'arrive à rien. tu sais où je peux voir la doc plus à jour ?

10

Re : Ebauche MVC

Tu as quoi qui s'affiche dans la console ?

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »