8796 sujets

Développement web côté serveur, CMS

Salut tout le monde.

Attention, ça va être technique !! Smiley smile

J'essaye de mettre en place sur mon serveur local la version php du packer 3.1 de Dean Edwards.
(je parle bien de la version 3.1)

Je travaille sur serveur Apache, avec php 5.3.2, et j'ai l'impression qu'il y a un problème de config sur mon serveur, car le script me renvoie une erreur, que je ne parviens pas à élucider.

L'erreur est la suivante :

Notice:  Undefined property: RegGrp::$_item_toString in C:\dossier_de_packer\base2\RegGrp.php on line 32


Ce qui nous renvoit à ce bout de code :


public function __toString() {
	$this->offset = 1;
	return '('.implode($this->map($this->_item_toString), ')|(').')';  // ligne 32
}


En cherchant un peu plus loin, on constate que $this->map est à peu de choses près un alias de la fonction native array_map. (voir Map.php)
On a donc en ligne 32 une manip' un peu spéciale qui consiste utiliser $this dans array_map.

Comme je ne doute pas de la qualité du code de Dean Edwards, je me dis qu'il y a peut-être un réglage php.ini à effectuer pour que ça marche. Le problème est que je ne vois pas lequel.

Quel bonne âme saurait m'aider à résoudre mon problème ?
Modifié par Barbarossa (23 Jun 2010 - 23:47)
Modérateur
Hello,

Ce petit bout de code est trop léger pour regarder là où cela ne fonctionne pas. J'ai l'impression qu'il manque un eval puisque ton expression est entre une chaine de caractères. Par contre, je pense que tu sais que cette fonction est à éviter.

Aussi, en lisant l'erreur, il dit que la propriété item_to_string est vide ? Regarde en faisant un simple print_r sur cet attribut et voit s'il contient bien quelque chose.

A quoi sert ce pack ? C'est un mignifier ?

Bonne soirée.
Salut, et merci de ta réponse niuxe.

Je ne vais pas avoir le temps de remettre mon nez dans le packer ce soir, mais pour répondre à ta question : oui il s'agit d'un minifieur de javascript. Un référence en la matière.

Je me doute bien que le bout de code que j'ai copié ne permet pas de saisir tout le script. Tu trouveras le code complet à cette adresse, si ça t'intéresse.

Mais je doute qu'il y ait un problème dans le code de Dean Edwards. Sa page de test en fournit la preuve.

C'est pourquoi je penche plutôt pour un problème de configuration de mon serveur. Quelque chose qui empêcherait la petite astuces du $this dans array_map.