Sujet : Règles de réécriture...
Bonjour,
Me revoilà pour de nouvelles aventure ![]()
J'attaque une application avec Hoa (la dernière version du trunk... peut-être un peu tôt?)
Je commence par recréer l'arborescence que voilà:
/Application
/Controller
/ErreurController
IndexController.php
/SpectaclesController
IndexController.php
ErreurController.php
IndexController.php
SpectaclesController.php
/Model
/View
/MyTheme
/ErreurView
NotFoundAction.phtml
/IndexView
IndexAction.phtml
TrucAction.phtml
/SpectaclesView
AgendaArchivesAction.phtml
IndexAction.phtml
FrontLayout.phtml
/Design
...
/Hoa_Framework
...
index.php (ne tenez pas compte des différents controlleurs/actions, on va se concentrer pour l'instant sur l'index ![]()
Donc voici mon index.php:
<?php
/**
* On redéfinit le chemin des inclusions de fichiers.
*/
set_include_path('./' . PATH_SEPARATOR .
'./Application' . PATH_SEPARATOR .
'./Hoa_Framework' . PATH_SEPARATOR .
'./Hoa_Framework/Framework' . PATH_SEPARATOR .
'./Hoa_Framework/Framework/Core' . PATH_SEPARATOR .
get_include_path());
/**
* On appelle le fichier principal du framework.
*/
require_once 'Framework.php';
/**
* Définition du chemin d'inclusion client
*/
define('PATH_CLIENT', 'http://localhost/refonte_galap');
$parametre = array(
// Type de routeur.
'route.type' => 'Rewrite',
// Paramètres du routeur.
'route.parameter' => array(
// Base du routeur.
'base' => '/devweb/refonte_galapa',
// Ensemble des règles de réécriture.
'rules' => array(
// Règle par défaut.
'default' => array(
'pattern' => '/(:module)/(:action).html',
'default' => array(
'module' => 'index',
'action' => 'index'
)
),
// Règle simple.
'simple' => array(
'pattern' => '/(:action).html',
'default' => array(
'module' => 'index',
'action' => 'index'
)
)
)
)
);
import('Controller.Front');
$controller = Hoa_Controller_Front::getInstance($parametre);
$controller->setThrowException(true);
try {
$controller->dispatch();
} catch ( Hoa_Controller_Exception_ControllerIsNotFound $e ) {
/**
* Le dispatche n'a pas été possible,
* car le contrôleur est introuvable.
* On lance alors le contrôleur d'erreur.
*/
$parametre = array(
'data.array.personal' => array(
'module' => 'erreur',
'action' => 'notFound'
)
);
/**
* On ajoute notre requête, c'est à dire
* que le seul contrôleur qui sera lancé
* sera ErreurController avec l'action
* PasTrouveAction.
*/
$controller->addRequest(0, $parametre);
$controller->dispatch();
}
exit();
?>Et mon .htaccess:
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.phpJe croit que ça devrait suffire au niveau des fichiers...
Donc lorsque je me rend sur n'importe quelle url de l'application, j'ai le droit à ceci:
Uncaught exception : Hoa_Controller_Router_Rewrite::prepareASetOfRules: (2) Rules must be defined. in /var/www/devweb/refonte_galap/Hoa_Framework/Framework/Library/Controller/Router/Rewrite.php at 191.Merci d'avance pour vos lumières ![]()