Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Ca c'est top ! Merci Yogui !
Mais bon, si y'a un guide, c'est que sa sent le cadavre.....
5.3, c'est super. Comment ne pas louer tous ses ajouts majeurs ?
Y a juste un BIG probo: la grammaire de php n'est plus assez souple ni même cohérente (oserais-je dire) par rapport aux nouvelles possibilités.
Ce qu'il manque ? Un déréférençage automatique là où ça a du sens. Ca devient une nécessité avec l'arrivée des fonctions anonymes. Ex:
Il m'a semblé lire rapidement dans la mailing list internal de php que les core members ne sont pas très chauds pour autoriser ce genre de pratiques qui sont pourtant monnaie courante dans la plupart des langages aux possibilités similaires.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $curry()(); // error $array[$key](); // error $obj->lambda(); ($obj->lambda)(); {$obj->$lambda}(); // error $obj()(); // (__invoke()) error func()[]; // error
Comme souvent, ça finira par être implémenté... mais trop tard (et oui, $obj->a()->b() ça vous dit quelque chose ?). Pour contourner ces problèmes, les développeurs auront pris l'habitude de passer par des variables temporaires ou des niveaux supplémentaire d'indirection, ce qui ne manquera pas d'apporter de l'eau au moulin du camp des pourfendeurs de php.
@metagoto : Je ne comprends pas ton code, pourquoi mets-tu ()() ? Est-ce que tu ne parles pas plutôt de ()[] ?
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Le cas d'une fonction qui retourne une fonction.
Un exemple trivial:
Et il est vrai que ()[] n'est pas non plus autorisé alors que ()-> l'est. Les fonctions anonymes étant des objets Closure en interne il n'est plus logique d'interdire ()().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $f = function($a) { return function($b) use ($a) { return $a + $b; }; }; //echo $f(2)(3); $g = $f(2); echo $g(3); $a = new \stdClass; $a->f = function() { return 'f'; }; // comment caller $a->f directement?
En même temps, cela deviendrait parfaitement illisible
C'est ok pour du prototypage mais, pour le reste, on peut déjà faire ce qu'on veut avec la SPL non ?
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Ce qui me paraît illisible c'est justement ce que l'on doit rajouter "à contre coeur" pour arriver à nos fin et contourner ces dites limitations.
Ca ne choque plus personne de nos jour de déclarer et caller sur place une fonction en javascript par exemple. C'est fort utile: (function(){..})();
Maintenant que les features sont là, il ne manque plus qu'à mettre la grammaire de php en accord avec celles-ci.
JavaScript permet de faire de belles choses, mais le code d'une application JS est souvent qualifiable d'illisible à mon avis...
L'un des problèmes de ce que tu proposes est que le code suivant serait syntaxiquement permis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ma_fonction()()()()()[6]()[2]->appel()[1];
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Si ce code a du sens, pourquoi pas ?
C'est juste une question de cohérence, les développeurs étant libre d'implémenter leurs trucs comme ils le veulent! Dans un tel cas, ce développeur me paraîtrait bien sur de lui
Voici ce que l'on devrait faire actuellement pour arriver à la même chose:
Quitte à avoir le choix, je préfère me passer des 8 variables temporaires et dérouler le code dans un pur style à la C, ce dont est issu php! Je me répète, les features sont là, il faut juste être cohérent maintenant, ce qui n'a rien à voir avec l'offuscation ou même "l'ésotérisme" que l'on peut apporter aux codes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $tmp1 = ma_fonction(); $tmp2 = $tmp1(); $tmp3 = $tmp2(); $tmp4 = $tmp3(); $tmp5 = $tmp4(); $tmp6 = $tmp5[6]; $tmp7 = $tmp6(); $tmp8 = $tmp7[2]->appel(); /*$result = */$tmp8[1];
Je te taquinais, moi aussi j'aimerais mieux que le langage laisse l'opportunité de faire des choses meme si ça peut devenir laid... À chacun sa responsabilité
Au fait, Johannes annonçait il y a quelques heures que PHP 5.3 est réellement prévu pour mardi, cette fois c'est la bonne :
Et Pierre de répondre au sujet de la compilation des exe/dlls :Alright,
I mentioned it in the last mails a bit in different ways so to make it
clear:
I'm aiming at re-tagging and packaging 5.3.0 to get these things in:
- Andrei's calloc fix
- Rasmus's/Ilia's curl fix
- Improvements to the UPGRADING file (everybody)
If possible (and I think it is) I'd like to keep Tuesday as target
release date. Pierre told me he'd be available Monday evening (German
time) to prepare the Windows builds, I would like some time to verify
the packages (did I re-tag correctly? did I package correct? ... Did I
commit it to phpweb correctly as binary file? ...) so I think packaging
on Sunday would be better, while that means some people spend weekend
time on this, but I hope that's ok :-)
Thanks everybody,
johannes
Les builds pour Windows seront faits aujourd'hui (dimanche), puis testés par Pierre et ses collègues jusqu'à lundi soir. Si vous repérez un bug dans ce temps, faites-vous connaîtreTo be more precise, I would like to provide the releases (src, bins
and installer) today so more people can test them. On Monday we will
do some more tests in the office as well, but sadly only in the
morning (US, or evening for the european .
About the curl patch, it builds fine and seems to work well on linux
(ubuntu) and windows, using curl 7.19.4/5 and 7.18.2. Any objection if
I commit it already? Same for Andrei's patch.
Cheers,
Pour information, PHP 5.3.1 est prévue pour dans un ou deux mois.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Oui oui! Je suis aussi la discussion sur la mailing list. On n'a jamais été aussi proche d'une release, enfin
Le voici : http://www.developpez.net/forums/d77...ume-rossolini/
Il s'agit de la traduction d'un article d'IBM Developer Works par John Mertic, il explique en détail les nouveautés de PHP 5.3 et il se termine par un guide de migration depuis PHP 5.2
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Salut
Dans la mesure où tu fais des appels statiques, as-tu essayé avec __callStatic() ?
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Non, ce n'est pas B qui répond, c'est bien Base, comme attendu. __call() n'est pas une méthode statique alors get_called_class() est la même chose que get_class($this) dans ce contexte. $this est bien tu type B dans la hierarchie.
En revanche, comme mentionné par Yogui, si tu utilises __callStatic(), dans ce cas là get_called_class() te donnera A
Voici la sortie officielle de PHP 5.3 !
D'autres versions compilées pour Windows sont ici : http://windows.php.net/download/Hello!
The PHP Development Team would like to announce the immediate release of PHP 5.3.0. This release is a major improvement in the 5.X series, which includes a large number of new features and bug fixes.
Release Announcement: http://www.php.net/release/5_3_0.php
Downloads: http://php.net/downloads.php#v5.3.0
Changelog: http://www.php.net/ChangeLog-5.php#5.3.0
regards,
Johannes and Lukas
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
C'est parti pour les espaces de noms ...
une petite question les hebergeurs ne vont pas mettre à jour aujourd'hui en moyenne cela prends plusieurs mois ? semaines ? jours ?
ou ils attendront PHP 6 ?
Les hébergeurs devraient vraisemblablement proposer php 5.3 dans les semaines à venir, du moins ceux qui ont déjà switchés pour php 5! (ils y en a qui sont toujours sur php4 uniquement)
Guide de migration: http://fr3.php.net/migration53 (en anglais)
Il n'y a que très peu d'incompatibilités par rapport à 5.2.x, ça devrait aider.
La dernière version avant 5.3 est la 5.2.10 sortie le 18 juin. Si ton hébergeur est en 5.2.10, c'est plutôt bon signe.
Pour prendre OVH j'espère qu'on pourra préciser la version de PHP5... Effectivement il n'y a pas beaucoup de différence, mais quand il s'agit de debuguer une 30ène de sites webs, avec des librairies (smarty et adodb pour mon cas + les autres librairies utilisées par d'autres personnes avant que j'arrive dans ma boite) ça va être coton coton.
.o0o__St@iLeR__oOo.
Lead Developer
ASP.NET MVC - MCP/MCSD ASP.NET
PHP Zend Framework / PhalconPHP
Cordova/Xamarin IOS/Android
Kendo UI - ExtJS - JQwidgets
SQL Server / MySQL
ben normalement tu utilises suphp sur ovh, donc un petit handler configuré sur une extension spécifique et puis zou, non ? Enfin c'est en dédié sa....
<derive>
A ce sujet ==>
Ils en sont ou de http://pecl4win.php.net/ ? Car c'est très embêtant cette situation..D'autres versions compilées pour Windows sont ici : http://windows.php.net/download/
</derive>
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager