7
votes

Normes strictes: redéfinir le constructeur déjà défini pour l'objet de classe dans le chemin \ gâteau \ libs \ objet.php à la ligne 54

J'essaie de configurer la base de données MS-MSQL sur CakePHP (pas MySQL).

Mon wamserver est 2.2e-php5.4.3-httpd2.2.22-mysql5.5.24-32b sur mon ordinateur portable (qui est Windows X64- Bit.
p>

J'ai déjà invité ces deux dlls à exécuter SQL Server
Extension = php_sqlsrv_54_ts.dll
Extension = php_pdo_sqlsrv_54_ts.dll
p>

J'ai ces deux erreurs dans l'exécution de CakePHP 1.3 P>

Strict standards: Redefining already defined constructor for class Object in C:\wamp\www\project\cake\libs\object.php on line 54<br/>
Strict standards: Non-static method Configure::getInstance() should not be called statically in C:\wamp\www\project\cake\bootstrap.php on line 38


0 commentaires

4 Réponses :


6
votes

Votre version CakePHP est ancienne et pose des problèmes avec la dernière version de PHP.

Vous pouvez essayer de mettre à jour votre version CakePHP. Semble que vous utilisez la version 1.3, alors mettez à jour le dernier. Vous pourriez le trouver

https://github.com/cakephp/cakephp/archives/1.3 << / p>

remplaçant uniquement le dossier CAKE / avec le nouveau, vous corrigez ce problème.

Si vous êtes nouveau à CakePHP, il est préférable d'apprendre le dernier cadre 2.2.1. Vous serez facilement installé ce cadre avec votre wamp.


6 commentaires

Merci pour votre réponse je vais essayer ça. Mais ce cadre (c'est-à-dire CakePHP 1.3) est un cadre existant et fonctionne correctement avec Wamserver2.1e-X32 .... Ce que j'impose est Il ne peut pas se connecter à la base de données SQL Server correctement


Au ci-dessous de l'erreur que vous obtenez, il pourrait y avoir un lien contexte . Cliquez dessus et vérifiez. N'oubliez pas que vous avez fourni la chaîne de connexion de base de données correcte dans $ par défaut ou sinon, vous devrez utiliser $ usagconfig .


J'ai essayé la nouvelle version de CakePHP 2.2.1. Il me donne une erreur de base de données: Avis (8): Index non défini: DataSource [CORE \ CAKE \ MODER \ CONNECTMANAGER.PHP, LIGNE 258] CATECTEUR n'est pas capable de se connecter à la base de données. < / code> La classe de données n'a pas pu être trouvé.


Salut Arun! Il n'y a pas de lien pour le contexte.


Cela aurait dû être marqué comme la bonne réponse. Avait le même problème après la mise à jour à PHP 5.4. Mise à jour du gâteau de 1,3.12 à 1.3.17 Correction du problème. Garder votre gâteau à jour devrait être une meilleure pratique


Le CakePHP / Archives / 1.3 est parti, mais vous pouvez obtenir des versions plus anciennes que vous clonez le projet CakePHP sur GitHub: Github. COM / CakePHP / CakePHP puis Checkout la bonne révision pour votre version.



23
votes

Vous utilisez une version PHP plus récente. Dans PHP 5.4, e_strict fait partie de e_all

dans le gâteau 1.3, ouvrez le fichier /cake/bootstrap.php et modifient l'erreur_Reporting comme celle-ci

error_rporting (e_all & ~ e_strict & ~ e_depecated);


5 commentaires

après avoir utilisé ce error_rporting (e_all & ~ ~strict & ~ e_depecated); Cela me donne une page vierge ... J'utilise xampp v3.1.xx avec PHP version 5.4.7 et je travaille avec CakePHP 1.2


Assurez-vous que votre DISPLAY_ERROR est activé dans PHP.INI ou à l'aide d'INI_SET ('"Display_Errors', 1);


Cacher des erreurs n'est pas une solution réalisable. Selon moi, il est plus important de résoudre les erreurs fatales / avertissements / notification d'abord si cela est possible. Merci


Oui Arun, résoudre toutes les erreurs est la priorité numéro une, mais il y a un cas lorsque vous êtes au milieu de la date limite et que vous devez exécuter l'application dès que possible pour votre entreprise / client, et que les applications construites par une personne que vous ne connaissez pas. Cela doit être une solution temporaire. Merci pour votre suggestion


N'y a-t-il pas une solution pour modifier les sources de gâteau, de sorte que l'erreur soit corrigée au lieu de l'ignorer? Comment alliez-vous corriger objet.php à la ligne 54 afin qu'il ne jette donc pas l'avertissement strict?



0
votes

Allez dans votre configuration / core.php et recherchez la configuration du gestionnaire d'erreur: xxx

et remplacer "niveau" avec ceci: xxx


0 commentaires

0
votes

La solution consiste à mettre à jour la version du gâteau 1.3 à la dernière version actuellement du 1.3.21.

Cliquez ici pour télécharger la dernière version:

https://github.com/cakephp/cakephp/tags


0 commentaires