Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 31/07/2009 13:16:17

Bubu34
Membre
Lieu : Montpellier
Inscription : 31/07/2009
Messages : 5
Site Web

Arrff "Deprecated: Assigning the return value of new by reference"

salut @ toutes zé tous smile

Voilà j'ai installé Wamp Server pour travailler sur le zite que j'administre. Mais comme beaucoup de personne j'ai ce message d'avertissement

"Deprecated: Assigning the return value of new by reference is deprecated in ...\www\index.php on line 5"

Je pense que de paramétrer le serveur pour ne plus avoir les messages d'erreurs (comme j'en ai vu beaucoup) est une connerie, car perso je préfère m'en prendre à la source du problème.
Si je comprend bien ce que PHP5.3 n'aime pas c'est le fait que la variable $zite soit initialisé avec un chemin ou un nom de fichier, v'là le code de la ligne 5 en cause

$zite = & new zite(__FILE__);

Merci de me reprendre si je dit des bêtises wink

Car je cherche depuis un moment, mais je ne trouve (comprend) pas pourquoi le = suivi de l'esperluette ?

$zite = & new

Bref merci pour les éclairages à venir SVP wink

Hors ligne

#2 31/07/2009 13:42:49

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

essayes de désinstaller et de réinstaller wamp (écraser également le dossier www/) puis installer ton zite dans un dossier zite dans www/ et pas à sa racine car il  est possible ( faudrait vérifier) que wamp ait son propre fichier index.php et que du coup, si tu le remplaces par celui de ton zite, ça te met le bazar.
en tout cas ça peu valoir le coup d'essayer.

autre chose, essayes de remplacer wamp par easyphp (il y en a d'autres, on en a parlé sur le fofo) qui est très bien.

c'est sûr que si ton hébergeur utilise php 5.3, ça va rien arranger!


lien vers une soluce trouvée sur le net


++ vYk

Dernière modification par davyk (31/07/2009 14:16:12)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#3 31/07/2009 15:57:53

Bubu34
Membre
Lieu : Montpellier
Inscription : 31/07/2009
Messages : 5
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

Salut,

Merci pour ta réponse rapide, mais j'ai bien noté que je ne voulais pas faire comme la solution du lien que tu m'a passé tongue et réinstaller Wamp ne changera rien c'est simplement que la méthode utilisé dans le code que j'ai mis est déprécier le message d'erreur est assez clair pourtant wink

cela dit mon hébergeur actuel utilise PHP 5.29 donc sur le site en production tout vas bien mais je voulais essayer de voir pour anticiper le passage au 5.3 smile

Hors ligne

#4 31/07/2009 17:34:02

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

la solution du htaccess est une façon certes détournée de paramétrer php mais évite tout de même de mettre trop les mains dans le camboui, d'autant plus qu'en général, l'hébergeur ne te permet pas de toucher à php.

Je pense que tu as dû essayer d'enlever l'esperluette, juste pour voir ce que cela donnait.

si ça marche sans, tant mieux.
quand à savoir à quoi elle sert, les créateurs de zite et zite+ t'en diront plus que moi (cf Renaud et jpg)

en te souhaitant un bon été.

vYk

PS: c'est quand même aux développeurs de php de faire en sorte que leurs versions soient compatibles, on va pas re-coder parce que tout à coup une ligne de code est dépréciée !

Dernière modification par davyk (31/07/2009 17:39:08)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#5 31/07/2009 18:26:40

Bubu34
Membre
Lieu : Montpellier
Inscription : 31/07/2009
Messages : 5
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

davyk a écrit :

Je pense que tu as dû essayer d'enlever l'esperluette, juste pour voir ce que cela donnait.

si ça marche sans, tant mieux.
quand à savoir à quoi elle sert, les créateurs de zite et zite+ t'en diront plus que moi (cf Renaud et jpg)

en te souhaitant un bon été.

vYk

MDR et bien en fait non, je n'est pas essayé d'enlever l'esperluette smile Voilà qui est fait et ça fonctionne smile
Je préfère cette solution que celle de l'autruche (on affiche pas le message donc ça marche) malgré tout je n'aime pas bien modifier le code sans connaitre les conséquences. Donc si une âme charitable pouvez m'expliquer à quoi sert cette & ce serai top moumout wink car de toute façon cette version modifier ne sera pas mis en production tant que je ne serai pas certain du coup.

Merci M. davyk et bon été à toi aussi smile

Dernière modification par Bubu34 (31/07/2009 18:27:16)

Hors ligne

#6 31/07/2009 18:56:10

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

Bonjour à tous,

Le '&' utilisé ici
      $zite = & new zite(__FILE__);
est un héritage du codage en php4.

Dans ce contexte et depuis php5, new retourne une référence automatiquement => le & n'est plus nécessaire et peut être supprimé à cet endroit du code sans aucun risque.

Pas contre, jusqu'ici, cela produisait une erreur E_STRICT. Ils ont encore changé cela en 5.3 .....

Ceci étant, dans ce cas, il n'y a aucun problème à ignorer l'erreur E_ DEPRECATED

a+
jean-paul

Hors ligne

#7 31/07/2009 19:07:44

Bubu34
Membre
Lieu : Montpellier
Inscription : 31/07/2009
Messages : 5
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

Géant smile

Merci jpg, je venais enfin de mettre la main sur le truc, mais je préfère avoir confirmation smile
j'espère juste que tu comprend pourquoi je n'aime la méthode autruche wink

Bonne soirée.

PS : sorry je ne trouve pas comment éditer le titre pour le marquer (résolu) roll

Dernière modification par Bubu34 (31/07/2009 19:10:10)

Hors ligne

#8 31/07/2009 21:22:32

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

je crois que c'est pas possible dans punbb et c'est con!


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#9 25/11/2009 19:56:57

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 354
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

je viens d'upgrader mon Wamp, avant tout était ok, mais maintenant j'ai le message moi aussi.

jpg a écrit :

Ceci étant, dans ce cas, il n'y a aucun problème à ignorer l'erreur E_ DEPRECATED

Comment "ignorer" ce message, je veux dire : que configurer pour qu'il n'apparaisse pas ?

Stéphane


Stéphane
Webdesign AvantageWeb

Hors ligne

#10 25/11/2009 20:19:49

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

Le mieux c'est de supprimer la cause du message qui est héritée de Zite et php4:

Dans index.php, tu changes la ligne
    $zite = & new zite(__FILE__);
par
    $zite = new zite(__FILE__);

ps: c'est d'ailleurs ce qui figure dans l'index.php du zitePLUS actuel

a+
jean-paul

Hors ligne

#11 25/11/2009 21:17:15

michael79
Membre
Lieu : Bruxelles, Belgique
Inscription : 23/07/2008
Messages : 422

Re : Arrff "Deprecated: Assigning the return value of new by reference"

Bonjour,

Je connais le problème avec PHP5.
Je mettrai à jour le fichier index.php dans les prochaines versions:

L'idéal est d'avoir:

$zite_class = new zite(__FILE__);
$zite = &$zite_class;

Ce code permet d'être compatible avec PHP4 et PHP5.

A bientôt,

Michaël


ZiteCMS rocks !

Hors ligne

#12 25/11/2009 21:59:46

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

michael79 a écrit :

Bonjour,

Je connais le problème avec PHP5.
Je mettrai à jour le fichier index.php dans les prochaines versions:

L'idéal est d'avoir:

$zite_class = new zite(__FILE__);
$zite = &$zite_class;

Ce code permet d'être compatible avec PHP4 et PHP5.

A bientôt,

Michaël

Bien vu pour ZiteCMS

... mais pour ZitePLUS, c'est inutile: il est conçu pour PHP5 uniquement

donc le

    $zite = new zite(__FILE__);

suffit

a+
jean-paul

Hors ligne

#13 25/11/2009 22:15:25

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 354
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

jpg a écrit :

Dans index.php, tu changes la ligne
    $zite = & new zite(__FILE__);
par
    $zite = new zite(__FILE__);

ps: c'est d'ailleurs ce qui figure dans l'index.php du zitePLUS actuel

Le message apparait sur mon site tournant sous  "ZITEPLUS 0.9.0.a14"...

Donc si je passe à "ZITEPLUS 0.9" ... le message disparait ?


Stéphane
Webdesign AvantageWeb

Hors ligne

#14 25/11/2009 23:28:41

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Arrff "Deprecated: Assigning the return value of new by reference"

Stefpei a écrit :
jpg a écrit :

Dans index.php, tu changes la ligne
    $zite = & new zite(__FILE__);
par
    $zite = new zite(__FILE__);

ps: c'est d'ailleurs ce qui figure dans l'index.php du zitePLUS actuel

Le message apparait sur mon site tournant sous  "ZITEPLUS 0.9.0.a14"...

Donc si je passe à "ZITEPLUS 0.9" ... le message disparait ?

Si tu installes un nouveau ZitePLUS, oui tu n'auras plus ce message en 0.9.0 smile

Si tu fait une mise à jour, tu l'auras toujours: il faut faire la modif indiquée à la main

a+
jean-paul

Dernière modification par jpg (25/11/2009 23:29:14)

Hors ligne

Pied de page des forums