Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour a tous,
Je suis face a un probleme que je ne comprends pas vraiment, et j'aimerais solliciter votre aide.
Je suis en train de développé une application zend, avec Zend_application (très utile et pratique), et j'obtiens de manière systématique une erreur :
Warning: Attempt to assign property of non-object in C:\Users\Public\Documents\workspace\coursvpV2\library\Zend\Application.php on line 78 Warning: Attempt to assign property of non-object in C:\Users\Public\Documents\workspace\coursvpV2\library\Zend\Loader\Autoloader.php on line 458 Warning: Attempt to assign property of non-object in C:\Users\Public\Documents\workspace\coursvpV2\library\Zend\Application.php on line 81 Fatal error: Class 'Zend_Config_Ini' not found in C:\Users\Public\Documents\workspace\coursvpV2\library\Zend\Application.php on line 383
Cette erreur survient depuis que j'ai mis en place le module d'authentification. Cependant, depuis que j'ai l'erreur, j'ai retiré énormément de ligne de code pour essayer de savoir d'ou ca vient, mais j'ai pas trouvé.
Je pourrais mettre quelques lignes de code, mais je voulais déja savoir si c'était un probleme connu ou pas.
Merci
Dernière modification par kalote (29-04-2010 11:03:05)
Hors ligne
J'ai tendance à penser que ton Zend_Application est mal initialisé. Il faudrait que tu nous envoie plus d'infos (index.php, Bootstrap)
A+, Philippe
Hors ligne
Ok alors voici mon application.ini :
[production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 phpSettings.date.timezone = "Europe/France" includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.params.displayExceptions = 0 resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/" ;initialize database resources.db.adapter = "pdo_mysql" resources.db.params.host = "localhost" resources.db.params.username = "root" resources.db.params.password = "" resources.db.params.dbname = "coursvp" resources.db.params.date_format = "YYYY-MM-ddTHH:mm:ss" resources.db.isDefaultTableAdapter = true [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 bootstrap :
<?php /* * Classe principale de chargement et de paramétrage de l'application. * * @author johann BICH */ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { /* * Surchage de la méthode run pour avoir la config dans le registre partout * dans notre application. */ public function run(){ if (!Zend_Registry::isRegistered('config')) Zend_Registry::set('config',new Zend_Config($this->getOptions())); parent::run(); } /* * Chargement automatique des classes. */ protected function _initAutoload(){ $loader = new Zend_Application_Module_Autoloader(array( 'namespace' => '', 'basePath' => APPLICATION_PATH )); return $loader; } /* * Gestion des sessions */ /* protected function _initSession(){ $session = new Zend_Session_Namespace('coursvp',true); Zend_Registry::set('session',$session); return $session; } */ /* * Gestion des vues : doctype / titre / meta / css / favicon / script */ protected function _initView(){ $view = new Zend_View(); $view->doctype('HTML4_LOOSE'); $view->headTitle('Cours VP') ->setSeparator(' | '); $view->headMeta()->appendHttpEquiv('Content-Type','text/html; charset=UTF-8') ->appendHttpEquiv('description','') ->appendHttpEquiv('keywords',''); $view->headScript()->appendFile('http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'); $view->headScript()->appendFile(BASE_URL . '/js/facebox.js'); $view->headScript()->appendFile(BASE_URL . '/js/function.js'); $view->headScript()->appendFile(BASE_URL . '/js/jquery.validate.js'); $view->headLink()->appendStylesheet(BASE_URL . '/styles/coursvp.css'); $view->headLink()->appendStylesheet(BASE_URL . '/styles/facebox.css'); $view->addHelperPath(APPLICATION_PATH . '/helpers'); $viewrenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer'); $viewrenderer->setView($view); return $view; } /* * Gestion des routes : se réfère au fichier application/config/routes.ini * Définition de la baseUrl. */ protected function _initRoutes() { $this->bootstrap('frontController'); $fc = $this->getResource('frontController'); $routeur = $fc->getRouter(); $fc->setBaseUrl(BASE_URL); return $routeur; } }
et voici le index.php :
<?php // Define path to application directory defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); // Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); // Define application environment defined('BASE_URL') || define('BASE_URL', 'http://newcoursvp.local'); // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), get_include_path(), ))); /** Zend_Application */ require_once 'Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap() ->run();
Apres avoir chercher (depuis déja hier) sur google and co, il semble que ca soit un probleme lié a php et a la persistence d'un objet ... mais peut etre tu pourras m'en dire un peu plus apres avoir vu tout ca
Merci encore
Hors ligne
Bon, j'ai toujours pas trouvé de solution, donc si quelqu'un comprends un truc a ce probleme ... je suis preneur o/
Le probleme est apparu quand j'ai fait mumuse avec du AJAX et mon form de login, mais jpense pas que ca soit lié.
Help !
Hors ligne
Hum... pas trop de up SVP... les contributeurs n'ont pas à lire le forum toutes les 5mn...
A+, Philippe
Hors ligne
C'est quelle version du ZF (avec le 3e nombre) ? C'est pour aller voir dans le code ce qu'il y a aux lignes concernées...
A+, Philippe
Hors ligne
Version 1.10.2 quand je fais un zf show version en ligne de commande.
Désolé pour le nombre de up, promis j'arrete
Le probleme viens de l'attribution de $this ... alors je sais pas pourquoi ca part en vrille, mais quand je tape
"Warning: Attempt to assign property of non-object in zend" dans google, j'ai pas mal de bug report de php qui ressortent ... est ce que ya une solution quand meme ??
Merci pour l'aide
Hors ligne
Up !
Hors ligne
Elle est super bizarre ton erreur :
elle apparaît ici dans Zend_Application :
public function __construct($environment, $options = null) { $this->_environment = (string) $environment; <---- ici
En d'autres termes $this n'est pas considéré comme un objet (ce qui paraît bien étrange dans un constructeur).
Là j'aurais quelques questions :
- quelle version de PHP utilises-tu (j'en suis à me demander si tu n'utilises pas un PHP4...) ?
- est-ce que tu es bien sur que le index.php est celui qui est lancé ?
- est-ce que tu as touché au code du ZF chez toi ?
- es-tu sur de la version du ZF que tu utilises (et les erreurs que tu nous as envoyées viennent bien de cette version du ZF ?)
Bref, là en l'état, soit j'ai raté un gros truc, soit c'est impossible. Il y a un problème dans les hypothèses de départ...
A+, Philippe
Hors ligne
Salut,
Alors, j'ai toujours pas mis la main sur l'erreur ... : (
J'utilise PHP 5.3
Mon htaccess pointe sur le répertoire "public" donc a priori, vu qu'il n'y a pas d'autre index.php dedans, ca doit etre le bon.
Je n'ai rien modifié dans le code ZF.
Et oui, la version de ZF est la toute derniere (téléchargersur le site, juste avant de commencer ce projet.
Donc un probleme bien sympa auquel je ne trouve pas de solution -_-'
Hors ligne
T'as d'autre bug similaire sur d'autre projet PHP ?
As tu modifié la conf de PHP (php.ini ou via .htaccess) ?
On dirait que $this n'est pas reconnu totalement (du mois partiellement.. car $this->_loadConfig($options) appel bien la fonction _loadConfig)
C'est assez étrange comme erreurs..
public function __construct($environment, $options = null) { $this->_environment = (string) $environment; // 78 require_once 'Zend/Loader/Autoloader.php'; $this->_autoloader = Zend_Loader_Autoloader::getInstance(); // 81 if (null !== $options) { if (is_string($options)) { $options = $this->_loadConfig($options); // renvoi à _loadConfig qui apelle la class Zend_Config_Ini (et fatal error)
Dernière modification par nORKy (11-05-2010 15:35:18)
Hors ligne
Bonjour,
J'ai moi aussi depuis cet après-midi ces fameux messages d'erreurs qui apparaissent.
Ma version de Zend Framework est la 1.10.2. Je ne comprends pas réellement quelle en est la source.
Cela arrive à priori dans chaque script qui fait appel à une connexion à une base de données (phpmyadmin et mon projet), donc pas nécessairement dans mon projet en cours, ni lié à Zend Framework, je pense.
Lorsque cette erreur apparaît la page d'accueil index.php de WampServer 2 s'affiche toujours sans problème ainsi que le phpinfo aussi.
Ma version de PHP est la 5.3.0 et j'utilise MySQL 5.1.36.
Depuis, le nombre d'année que je développe avec PHP (7 ans) et MySQL, c'est la première fois que je vois ce genre de comportement étrange.
Je précise qu'en redémarrant les services Wamp ou en redémarrant l'ordinateur, cela refonctionne mais le message apparaît ensuite assez vite.
Dernière modification par calvey (17-06-2010 10:26:01)
Hors ligne
Il semblerait que le problème soit lié à la version de PHP 5.3 qui comporte des bugs sur l'objet PDO : http://bugs.php.net/search.php?cmd=disp … r=PDO+2002
En passant à une version antérieure, par exemple, PHP 5.2.13, le problème devrait ne plus apparaître.
Pour moi, plus de soucis (du moins, pour le moment)
Hors ligne
Pages: 1