Hello a tous !
Je viens vers vous car ca fait 2 jours que je m'arrache les cheveux sur Zend et je sais que par ici trainent quelques spécialistes du Framework
Je suis donc en train de développer une application modulaire sur un schéma classique backend/frontend, en local sur MAMP.
Tout fonctionne parfaitement, mais lors de la mise sur serveur, ce n'est plus la meme...
Autant dire que je n'y comprends rien.
Mes formulaires qui se chargent bien en local ne veulent pas se charger sur mon serveur, avec erreur de type : Fatal error: Class 'Frontend_Form_Standard_Registration' not found in /var/www/vhosts/it-interaction.com/subdomains/samplesolution/httpdocs/application/modules/frontend/controllers/TestController.php on line 22
Voici tous les elements qui peuvent rentrer dans le probleme :
Je vais prendre pour exemple lorsque je veux acceder a la page :
"http://localhost/SampleSolution/public/frontend/test/form"
Donc voici l'arborescence de mon projet final :
http://samplesolution.it-interaction.com/arbo.png
Voici le fichier application.ini
Voici le fichier global Bootstrap.php (dans le dossier application)
Mon fichier backend/Bootstrap.php
Mon fichier frontend/Bootstrap.php
Mon controller frontend/controllers/TestController.php (j'ai supprimé le traitement du formulaire pour alleger)
Mon formulaire frontend/forms/standard/Registration.php
Et ma vue
Et voici l erreur que j'ai en distant lorsque je veux afficher le formulaire...
Si quelqu'un prend le temps de regarder c'est trop sympa (et si il a la solution, la c'est encore mieux)
Alex
Modifié par JohnNada (24 Sep 2010 - 01:29)
Je viens vers vous car ca fait 2 jours que je m'arrache les cheveux sur Zend et je sais que par ici trainent quelques spécialistes du Framework

Je suis donc en train de développer une application modulaire sur un schéma classique backend/frontend, en local sur MAMP.
Tout fonctionne parfaitement, mais lors de la mise sur serveur, ce n'est plus la meme...
Autant dire que je n'y comprends rien.
Mes formulaires qui se chargent bien en local ne veulent pas se charger sur mon serveur, avec erreur de type : Fatal error: Class 'Frontend_Form_Standard_Registration' not found in /var/www/vhosts/it-interaction.com/subdomains/samplesolution/httpdocs/application/modules/frontend/controllers/TestController.php on line 22
Voici tous les elements qui peuvent rentrer dans le probleme :
Je vais prendre pour exemple lorsque je veux acceder a la page :
"http://localhost/SampleSolution/public/frontend/test/form"
Donc voici l'arborescence de mon projet final :
http://samplesolution.it-interaction.com/arbo.png
Voici le fichier application.ini
[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
autoloaderNamespaces[] = "App_"
resources.view.helperPath.App_View_Helper = "App/View/Helper"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] =
resources.db.adapter = "pdo_mysql"
resources.db.params.username = "root"
resources.db.params.password = "root"
resources.db.params.dbname = "samplesolution"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
Voici le fichier global Bootstrap.php (dans le dossier application)
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
public function run()
{
// Cela permet d'avoir la configuration disponible de partout dans notre application
Zend_Registry::set('config', new Zend_Config($this->getOptions()));
parent::run();
}
/////////////// AUTOLOAD
protected function _initAutoload()
{
$moduleLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH.'/modules'));
$moduleLoader->addResourceType('form','forms/','Form');
}
/////////////// SESSION
protected function _initSession()
{
// On initialise la session
$session = new Zend_Session_Namespace('appli', true);
Zend_Registry::set('session', $session);
return $session;
}
/////////////// LAYOUTS
protected function _initViewHelpers()
{
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$view->doctype('XHTML1_STRICT');
$view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
$view->headTitle()->setSeparator(' - ');
$view->headTitle(' Tutoriel Zend Framework');
$view->headLink();
$view->addHelperPath('ZendX/JQuery/View/Helper', 'ZendX_JQuery_View_Helper');
// Add it to the ViewRenderer
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$viewRenderer->setView($view);
return $view;
}
}
Mon fichier backend/Bootstrap.php
class Backend_Bootstrap extends Zend_Application_Module_Bootstrap
{
}
Mon fichier frontend/Bootstrap.php
class Frontend_Bootstrap extends Zend_Application_Module_Bootstrap
{
}
Mon controller frontend/controllers/TestController.php (j'ai supprimé le traitement du formulaire pour alleger)
class Frontend_TestController extends Zend_Controller_Action
{
public function init()
{
}
public function indexAction()
{
$this->view->path = Zend_Loader_Autoloader::getInstance();
}
public function formAction()
{
$this->view->title = "Ajouter un nouvel utilisateur";
$this->view->headTitle($this->view->title, 'PREPEND');
$form = new Frontend_Form_Standard_Registration(); // On initialise un formulaire correspondant a la classe de formulaire "Album"
$this->view->form = $form; // On balance le formulaire dans la vue
}
}
Mon formulaire frontend/forms/standard/Registration.php
class Frontend_Form_Standard_Registration extends Zend_Form
{
//put your code here
public function init()
{
$this->setAttrib('id', 'registration');
$this->setMethod(Zend_Form::METHOD_POST);
$name = $this->createElement('text', 'name');
$name->setLabel('Enter Name');
$name->setRequired(true);
$name2 = $this->createElement('text', 'name2');
$name2->setLabel('Enter Name');
$name2->setRequired(true);
$this->addElement($name);
$this->addElement($name2);
$this->clearDecorators();
$monDeco = new App_Form_Decorator_Composite();
$this->setElementDecorators(array($monDeco,'FormErrors'));
$submit = $this->createElement('submit', 'submit');
$this->addElement($submit);
}
}
Et ma vue
<?php
echo $this->form;
?>
Et voici l erreur que j'ai en distant lorsque je veux afficher le formulaire...
Fatal error: Class 'Frontend_Form_Standard_Registration' not found in /var/www/vhosts/it-interaction.com/subdomains/samplesolution/httpdocs/application/modules/frontend/controllers/IndexController.php on line 8
Si quelqu'un prend le temps de regarder c'est trop sympa (et si il a la solution, la c'est encore mieux)
Alex
Modifié par JohnNada (24 Sep 2010 - 01:29)