Sujet : Hoa_Controller_Exception_ControllerIsNotFound ne marche pas pour n app

Hey,

J'ai un projet Hoa avec 3 dossiers d'application.

Applications

  • Http_Sites

  • Http_Store

  • Http_BackOffice

Je voudrais faire une redirection vers l'accueil en cas d'echec du controller grâce à la classe Hoa_Controller_Exception_ControllerIsNotFound.

try {
    $controller->dispatch();

}
catch ( Hoa_Controller_Exception_ControllerIsNotFound $e ) {

    $parametre = array(
        'data.array.personal' => array(
            'module' => 'index',
            'action' => 'index'
        )
    );
    
    $controller->addRequest(0, $parametre);
    $controller->dispatch();
}

Si je vais sur http://hoatest.dev/aaa/, il me monte une exception alors que ce fichier existe bien.

Uncaught exception: Hoa_Controller_Dispatcher_Abstract::dispatch: (0) Primary controller IndexController should be in the file hoa://http_sites/Controller/Index.php, but this last is not found. in C:\wamp\www\Hoa_test\Framework\Library\Controller\Dispatcher\Abstract.php at 290.


Cette erreur n'apparaît pas les architecture simple avec le MVC directement dans Application/

J'ai même essayé de renommer mon fichier /Controller/Index.php en IndexController.php au cas où ça serait les règles de nommage des fichiers mais non c'est pas ça.

Dernière fois dit par Ecureuil Virtuel (01 Jun. 2010 15:47)

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

2

Re : Hoa_Controller_Exception_ControllerIsNotFound ne marche pas pour n app

essaye en ligne de commande :

hoa Protocol:resolve hoa://http_sites/Controller/Index.php


Voir où il pointent , sinon attend le gourou big_smile
Bye Hawk

Apprend Hoa et est heureux smile

Re : Hoa_Controller_Exception_ControllerIsNotFound ne marche pas pour n app

hoa://http_sites/Controller/Index.php is equivalent to : http_sites/Controller/Index.php

Il manque pas le dossier Applications/http_sites/.... ??

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

4

Re : Hoa_Controller_Exception_ControllerIsNotFound ne marche pas pour n app

Hey smile,

Où déclares-tu tes configurations de protocole ? Si tu le fais dans Data/Etc/Configuration/HoaFramework.json, alors la commande

hoa protocol:resolve hoa://...

saura correctement dérouler le chemin. (Note : les majuscules au nom du groupe des commandes sont inutiles cher thehawk wink). En revanche, si tu déclares ses configurations dans un fichier PHP (comme un fichier d'amorçage par exemple), c'est normal que cette commande ne sache pas retrouver le chemin. Comment peut-elle avoir connaissance de ce fichier smile ?

Attention, tu es un cas un peu particulier où les applications doivent parler/communiquer entre elles. Fait attention à "répéter" les chemins dans chaque configuration de chaque application. Tu comprends pourquoi ?

Je vois à ton message d'erreur que tu n'utilises pas une version récente de Hoa (uè, la classe, la matrice est une réalité mec cool). Tu veux un blam ou un kick wink ?

« 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 : Hoa_Controller_Exception_ControllerIsNotFound ne marche pas pour n app

LOL oui en effet, c'est pas un projet récent ^^. Je regarde ça tout à l'heure.
Oui ma configuration de HoaFramework.json est bien établie, les applications marchent très bien.
Oui je dois bien spécifier les chemins, c'est pour le protocole. Mais pas de soucis au niveau de la config.
Ça doit être la version du Framework qui va pas.

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

6

Re : Hoa_Controller_Exception_ControllerIsNotFound ne marche pas pour n app

Peux-tu nous montrer le résultat de

$ hoa configuration:view Hoa_Framework

? Bien sûr, ne met pas tout wink.

Et que donne

$ hoa version -v -V

?

« 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 : Hoa_Controller_Exception_ControllerIsNotFound ne marche pas pour n app

La première commande me donne :

Keywords

    root.ofFrameworkDirectory =>

Parameters

    root                            => (:root.ofFrameworkDirectory:)
    root.framework                  => (:%root:)
    root.data                       => (:%root:h:)/Data
    root.application                => (:%root:h:)/Applications
    framework.core                  => (:%root.framework:)/Core
    framework.library               => (:%root.framework:)/Library
    framework.module                => (:%root.framework:)/Module
    framework.optional              => (:%root.framework:)/Optional
    data.module                     => (:%root.data:)/Module
    data.optional                   => (:%root.data:)/Optional
    protocol.Application            => (:%root.application:)/
    protocol.Application/Sites      => (:%root.application:)/Http_sites/
    protocol.Application/Extranet   => (:%root.application:)/Http_extranet/
    protocol.Data                   => (:%root.data:)/
    protocol.Data/Etc               => (:%protocol.Data:)Etc/
    protocol.Data/Etc/Configuration => (:%protocol.Data/Etc:)Configuration/
    protocol.Data/Etc/Locale        => (:%protocol.Data/Etc:)Locale/
    protocol.Data/Lost+found        => (:%protocol.Data:)Lost+found/
    protocol.Data/Module            => (:%data.module:)/
    protocol.Data/Optional          => (:%data.module:)/
    protocol.Data/Variable          => (:%protocol.Data:)Variable/
    protocol.Data/Variable/Cache    => (:%protocol.Data/Variable:)Cache/
    protocol.Data/Variable/Database => (:%protocol.Data/Variable:)Database/
    protocol.Data/Variable/Log      => (:%protocol.Data/Variable:)Log/
    protocol.Data/Variable/Private  => (:%protocol.Data/Variable:)Private/
    protocol.Data/Variable/Test     => (:%protocol.Data/Variable:)Test/
    protocol.Framework              => (:%root.framework:)/

Et la version de Framework est 0.5.1b tongue Tu veux que je test de passer l'appli en 0.5.5b ??
Par contre pas le temps ce soir, pas sur le pc.

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

8

Re : Hoa_Controller_Exception_ControllerIsNotFound ne marche pas pour n app

C'est normal que ça ne fonctionne pas. Tu as oublié un composant dans ton URL hoa://.
Si tu veux accéder aux contrôleurs de l'application http_sites, il faut que tu aies l'URL :

hoa://Application/Sites/Controller/...

Mais attention, Hoa_Controller_Front utilise le fichier Data/Etc/Configuration/HoaControllerFront.json et il va chercher les contrôleurs dans hoa://Application/Controller/. Donc tu devrais peut-être redéfinir ça également.

Ce que je te conseille en fait, le plus propre et pour changer le moins de chose, c'est que la racine de l'application hoa://Application/ pointe sur l'application courante : si on est dans http_sites, ça travaille sur http_sites, et que tu crées une seconde racine : hoa://Mount/ (ou hoa://Dev, hoa://External, ce que tu veux), et qu'à l'intérieur, on trouve les liens vers les autres applications.
Exemple :

  • hoa://Application/ pointe sur l'application courante, donc tu ne changes rien

  • hoa://External/Sites/ pointe sur ton dossier http_sites

  • hoa://External/Extranet/ pointe sur ton dossier http_extranet

Les avantages sont nombreux. Déjà, tu n'as pas à changer toutes les valeurs par défaut des configurations des différents paquetages. Ensuite, le chemin le plus utilisé sera hoa://Application/, donc plus rapide car des composants en moins à dérouler (certes c'est négligeable, mais il faut penser à tout wink). Mais également, ça paraîtra plus logique à lire. Et enfin, pour la maintenance, tu n'auras rien à faire si jamais tu changes ton application de place, de nom, ou que tu déplaces des contrôleurs dans d'autres applications. Il faut penser à ce tout dernier point : tu prends un contrôleur, tu le places dans une autre application, ça fonctionnera sans même revoir le code ; pas besoin de modifier les chemins.

Les inconvénients : aucun. hoa://External/ va t'assurer les ponts et tu ne l'utiliseras que quand tu en auras besoin ; théoriquement assez peu souvent, me trompe-je ?

Voilà mes impressions sur ton problème 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. »

Re : Hoa_Controller_Exception_ControllerIsNotFound ne marche pas pour n app

Merci pour ta réponse je regarde ça se weekend smile

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant