Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Juste pour vous signaler un message de Matthew Weier O'Phinney sur la mailing liste générale indiquant en gros les points suivants concernant les évolutions du ZF suite à l'arrivée de PHP 5.3 :
- les namespaces natifs de PHP 5.3 seront adoptés dans la version 2.0 du ZF (compter 2e moitié 2009 pour le planning)
- des outils et des docs devraient faciliter la migration du ZF 1.x vers le ZF 2.0 (notamment pour ces problèmes de namespaces)
- a priori une version mineure de la ZF 1.x devrait être nécessaire pour que le ZF 1.x tourne sans problème sur PHP 5.3, par contre si j'en crois le ton du message, les namespaces ne devraient pas être intégrés aux versions ZF 1.x
Vous pouvez voir l'ensemble du message à l'adresse :
http://www.mail-archive.com/fw-general@ … 14140.html
A+, Philippe
Hors ligne
Concernant les espaces de nom, c'était pas déjà le cas dans php avec la notation perl (::) ?
Dernière modification par fte (08-08-2008 11:20:34)
Hors ligne
Bonjour fte,
Non, pour l'instant (jusqu'aux version 5.2.x), la notation "::" ne concerne que l'accès à des éléments statiques de classe (ex : Zend_Loader::loadClass("xxx")).
Les espaces de noms de PHP 5.3 utiliseront aussi une notation "::" qui elle ne voudra pas dire la même chose. Elle est utilisée dans un autre contexte. Elle permettra de désigner des namespaces et des noms de classe.
On pourrait imaginer quand dans un code en PHP 5.3 avec le ZF 2.0, le code
$validator = new Zend_Validate_EmailAddress();
deviendrait
use Zend::Validate; $validator = EmailAddress();
et dans la définition de la classe EmailAddress, on aurait un code du genre :
namespace Zend::Validate; class EmailAddress { ... }
A+, Philippe
Hors ligne
En effet je confirme, actuellement ZF n'est pas compatible (100%) PHP5.3, sa compatibilité est prévue pour la 1.7 il me semble.
En revanche, cette version n'utilisera pas les namespaces, et elle n'utilisera pas non plus les additions OO très intéressantes de PHP5.3
ZF2.0 est un gros chantier et ne sera pas compatible avec ZF1.x. Il utilisera les namespaces, ainsi beaucoup de noms de packages seront changés pour profiter des espaces de nommage.
Aussi, ZF2.0 exigera PHP 5.3 minimum, car il tirera parti des nouveautés OO qu'offre PHP 5.3, les traits, la résolution statique héritée (Late static Binding), et d'autres joyeusetés.
Hors ligne
A priori ça n'arrivera jamais l'héritage multiple dans PHP. Dans les langages "qui se veulent fiables et proches du génie logiciel" (et PHP prend cette voie avec PHP5.3), l'héritage multiple est vu comme une source de bugs infinie (je suis assez d'accord avec l'analyse). On ne sait jamais quelle méthode est réellement appelée dans une classe...
Par contre ces mêmes langages ont ajouté le mécanisme des interfaces. Les interfaces permettent de simuler un héritage multiple tout en sachant toujours quelle méthode est appelée. Dans certain cas, ça peut amener des redondances de code, mais globalement l'héritage est de moins en moins à la mode dans les architectures. En général ça ne pose pas trop de problème. (il suffit de regarder les helpers dans le ZF. Ils permettent d'éviter de sous-classer Zend_Controller_Action... c'est typiquement le genre d'architecture qui tend à limiter l'héritage).
A+, Philippe
Hors ligne
Mr.MoOx a écrit:
Au passage l'héritage multiple c'est pour quand? Php5.3 ? v.6 ? Pas encore prévu?
Il n'y aura probablement jamais d'héritage multiple dans php. Ce n'est pas un problème en soi car le support des traits est activement débattu actuellement et on peut raisonnablement penser que php les supportera à court ou moyen terme. http://wiki.php.net/rfc/traits
Ceci plus les fonctions anonymes (dont closures), les namespaces, le LSB, j'en passe et des meilleurs, va considérablement élargir les possibilités. En ce qui me concerne, je trouve ça fantastique ;)
Hors ligne
Merci quode pour ce lien sur les Traits. Je ne suis pas absolument emballé par l'idée, mais c'est intéressant de savoir que c'est en discussion... (j'ai des souvenirs assez atroces de maintenance d'applications C++ avec des héritages multiples... pour moi, c'est un peu devenu le mal absolu... mais bon, dans tous les cas, c'est pas moi qui décide )
A+, Philippe
Hors ligne
Yes les traits vont arriver et c'est comme tout, il faut en user, sans en abuser (on peut en conception, faire des très belles choses avec les traits, mais aussi d'atroces choses :-D )
Pour le développement de ZF, ça va grandement servir en tout cas.
Vive PHP 5.3 ^^
Hors ligne
Hello rod ;-)
Ta question est un peu confuse : 'intègrera l'utilisation de l'extension PHAR' ....
On a rien pour le moment, PHAR est jeune, et j'avoue avoir peu joué avec.
Je pense qu'une fois qu'il aura mûri, il sera possible de packager le ZF dans PHAR, et même de packager une appli entière ZF, car PHAR supporte le bootstraping, et l'accélération via APC.
Après si tu veux dire piloter PHAR depuis ZF (Zend_Phar ?) , il va falloir attendre de prendre en main l'API (pas simple) de PHAR
Hors ligne
philippe a écrit:
Bonjour fte,
Non, pour l'instant (jusqu'aux version 5.2.x), la notation "::" ne concerne que l'accès à des éléments statiques de classe (ex : Zend_Loader::loadClass("xxx")).
Les espaces de noms de PHP 5.3 utiliseront aussi une notation "::" qui elle ne voudra pas dire la même chose. Elle est utilisée dans un autre contexte. Elle permettra de désigner des namespaces et des noms de classe.
On pourrait imaginer quand dans un code en PHP 5.3 avec le ZF 2.0, le codeCode:
$validator = new Zend_Validate_EmailAddress();deviendrait
Code:
use Zend::Validate; $validator = EmailAddress();et dans la définition de la classe EmailAddress, on aurait un code du genre :
Code:
namespace Zend::Validate; class EmailAddress { ... }A+, Philippe
Euh le séparateur d'espace de nom n'est pas :: mais \ exemple ici : http://www.php.net/manual/fr/language.n … orting.php
Hors ligne
Yoteco ->
En même temps Philippe a écrit ça y a plus d'un an et ça a changé entre temps. Regarde bien les dates
Hors ligne