Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
je reviens vers vous suite un une erreur que je rencontre après basculement de mon serveur local au serveur de prod
Sur mes formulaires contenant champ date de la forme suivante
$date_livraison = new Zend_Form_Element_Text('date_livraison'); $date_livraison ->setLabel('Date de livraison') ->setRequired(true) ->setAttrib('onFocus','champsur(this)') ->setAttrib('onClick','NewCal("date_livraison")') ->addValidator( 'Date', true, array( 'YYYY-MM-dd HH:mm:ss' ) ) ->addDecorator('Label', array('class' => 'tabaide','requiredSuffix' => ' <em>*</em>', 'escape' => false,'tag' => 'dt'));
j'obtiens l'erreur suivante:
An exception occured while bootstrapping the application. cache_dir must be a directory Stack Trace: #0 D:\web\cdl\library\Zend\Cache\Backend\File.php(153): Zend_Cache::throwException('cache_dir must ...') #1 D:\web\cdl\library\Zend\Cache\Backend\File.php(122): Zend_Cache_Backend_File->setCacheDir('/ms4w/tmp\', false) #2 D:\web\cdl\library\Zend\Cache.php(152): Zend_Cache_Backend_File->__construct(Array) #3 D:\web\cdl\library\Zend\Cache.php(93): Zend_Cache::_makeBackend('File', Array, false, false) #4 D:\web\cdl\library\Zend\Locale\Data.php(299): Zend_Cache::factory('Core', 'File', Array, Array) #5 D:\web\cdl\library\Zend\Locale\Format.php(690): Zend_Locale_Data::getList('fr', 'day') #6 D:\web\cdl\library\Zend\Locale\Format.php(990): Zend_Locale_Format::_parseDate('2009-07-18 11:5...', Array) #7 D:\web\cdl\library\Zend\Date.php(4389): Zend_Locale_Format::getDate('2009-07-18 11:5...', Array) #8 D:\web\cdl\library\Zend\Validate\Date.php(153): Zend_Date::isDate('2009-07-18 11:5...', 'YYYY-MM-dd HH:m...', NULL) #9 D:\web\cdl\library\Zend\Form\Element.php(1318): Zend_Validate_Date->isValid('2009-07-18 11:5...', Array) #10 D:\web\cdl\library\Zend\Form.php(1987): Zend_Form_Element->isValid('2009-07-18 11:5...', Array) #11 D:\web\cdl\application\controllers\JournaliereController.php(727): Zend_Form->isValid(Array) #12 D:\web\cdl\library\Zend\Controller\Action.php(512): JournaliereController->ajouterdemandeAction() #13 D:\web\cdl\library\Zend\Controller\Dispatcher\Standard.php(288): Zend_Controller_Action->dispatch('ajouterdemandeA...') #14 D:\web\cdl\library\Zend\Controller\Front.php(936): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #15 D:\web\cdl\index.php(43): Zend_Controller_Front->dispatch() #16 {main}
le probleme viens plus précisement de là selon moi
#1 D:\web\cdl\library\Zend\Cache\Backend\File.php(122): Zend_Cache_Backend_File->setCacheDir('/ms4w/tmp\', false)
Peut-on définir cet élément dans le bootstrap et si oui comment ???
Dernière modification par matdev (17-07-2009 14:49:59)
Hors ligne
Le problème viens de la librairie Zend. Dans le fichier Zend\Cache\Backend\File.php ligne 122 on trouve ceci :
$this->setCacheDir(self::getTmpDir() . DIRECTORY_SEPARATOR, false);
or la fonction getTmpDir() reccupère un repertoire defini dans la conf d'apache (variable d'environnement TMP) que je souhaite différent pour mon application.
Est-il possible de redéfinir cette variable d'environnement pour mon application unniquement ? où ?
Dernière modification par matdev (17-07-2009 14:25:53)
Hors ligne
Finalement j'ai trouvé une solution :
dans le bootstrap je redefinie la variable d'environnement $_ENV avec mon chemin
Hors ligne
Bonjour,
Meme jour meme problème....
Je n'ai pas compris ce que tu as défini dans ton bootstrap. Enfin surtout comment tu l'as fait, la variable $_ENV tu lui met quoi?
Pour le moment j'ai essayé le repertoire en mode absolu soit "$_ENV['TMPDIR'] = "/home/tests/tmp";" => dans le boostrap ....
Ce chemin m'est fournit par l'hébergeur (il m'a ouvert un espace de test);
Dernière modification par Sid_la_chouette (17-07-2009 16:54:02)
Hors ligne
Bonjour Sid_la_chouette désolé de la réponse si tardive à ta question mais je m'étais pris quelques jours loin des pc et prêts du soleil
"$_ENV['TMPDIR'] = "/home/tests/tmp";" => dans le boostrap
oui c'est ce que j'ai fait pour mon application et donc ce qui a résolu mon problème de validation de formulaire avec les dates
Hors ligne
Merci,
J'avais trouvé avec ce que tu avais indiqué dans un de tes posts, étrange cette erreur quand meme.
J'étais arrivé à la meme $_ENV['TMPDIR'] = "/home/tests/tmp/";
Cordialement.
Hors ligne
Etrange oui et non car pour ma part la variable tmp était configuré dans Apache pour une autre application beaucoup plus ancienne est donc il fallait que je la redéfinisse correctement pour l'aplli en court c'est tout.
Enfin content d'avoir pu t'aider
Dernière modification par matdev (27-07-2009 16:06:51)
Hors ligne
Pages: 1