Pour rappel, cette nouvelle version intègre le nouveau moteur Zend Engine 2 qui apporte trois grandes nouveautés :
- Simplification de l'utilisation d'XML grâce entre autres à l'API SimpleXML;
- Un modèle objet enfin digne de ce nom;
- L'intégration d'une (mini) base de données embarquée : SQLite.
A cela, on peut également ajouter divers changements comme des améliorations au niveau de GD (la bibliothèque de gestion d'images) ou l'apparition de nombreuses nouvelles fonctions.
Cette nouvelle version comble une bonne partie des manques des précédentes versions et évolue pour sortir PHP de son image de "langage pour page perso" tout en restant accessible.
NdM : merci également à Scullder et tous les contributeurs.
mise à jour : PHP 4.3.8 est aussi sorti corrigeant des failles de sécurité. Rappelons que PHP est un langage interprêté, créé en 1995, ayant connu une forte croissance de sa communauté dès 1998, lorsque PHP 3 est sorti, apportant un moteur de script mature et prêt à gérer des sites dynamiques de grande envergure. PHP 4 est sorti en 2000 pour arriver aujourd'hui à la version 4.3.8 avec ses corrections de bug. Dans un registre plus important, PHP5 prend le relai dont voici une liste non exhaustive de ses améliorations :
Au niveau objet :
- quelques contrôles de programmation (déclaration des méthodes statiques, méthodes et attributs privés/protégés/publics, interfaces, classes/méthodes abstraites et finales)
- quelques fonctionnalités supplémentaires (interceptions des lectures/écritures d'attributs inexistants ou des appels aux fonctions inexistantes)
- le passage par référence de tous les objets (en PHP4 les objets sont passés par valeur, comme toutes les variables, donc par défaut clonés à chaque affectation ou passage en paramètre de fonction)
- le déréférencement des méthodes (possibilité de faire $a->b()->c)
Manipulation des fichiers et des structures XML :
- une interface "simple" pour lire du XML, nommée SimpleXML
- une nouvelle interface DOM standard relativement complète (basée sur la libxml)
- une interface Xpath utilisant les objets DOM et SimpleXML
- l'intégration de la libxslt pour les traitements XSLT
Pour les SGBD :
- la bibliothèque cliente de MySQL n'est plus fournie avec PHP, il vous faudra la demander explicitement lors de la compilation
- en échange la bibliothèque sqlite (base de données embarquée, http://www.sqlite.org(...)) est fournie et intégrée par défaut dans sa version 2.8 (pas de version 3.0 pour l'instant)
Aller plus loin
- La news sur la sortie de PHP5 RC3 (2 clics)
- Page de téléchargements (1 clic)
- Nouveautés de Zend Engine 2 (1 clic)
- L'Association Française des Utilisateurs de PHP (3 clics)
- La documentation de référence (2 clics)
- Migration PHP4 vers PHP5 (6 clics)
# SQLite
Posté par MsK` . Évalué à 6.
Mais avant je me pose une petite question sur l'ajout de cette extension SQLite, ca va jusqu'ou ?
Je peux faire mon petit script de news avec ou c'est vraiment trop limité ?
Je pourrais faire tout un forum avec et en fait c'est vraiment trop balèse ?
Niveau performances aussi toussa :)
[^] # Re: SQLite
Posté par Éric (site web personnel) . Évalué à 10.
Pour des applications à faible concurence en écriture c'est largement du niveau d'un MySQL au niveau perf. Souvent meilleur pour des petits trucs vu qu'on saute les phases de connexion/authentification.
Coté fonctionnalités on est grosso modo au niveau d'un MySQL 3.23 avec en plus la possibilité d'utiliser ses propres fonctions utilisateur dans les requêtes SQL.
Aucun problème à mon avis pour un petit script de news ou un forum avec un traffic faible/moyen (type pour une assoc). Même chose si tu as un bon système de cache qui limite largement les accès aux données (type ce que fait linuxfr).
Maintenant je crois que tout le monde sera d'accord pour dire que le but et les applications de Sqlite ne sont pas les mêmes que PostgreSQL ou Oracle. La question est de savoir si pour une énorme proportion de scripts PHP on a effectivement besoin d'un gros poids lourd en SGBD (l'utilisation massive de Mysql 3.23 m'incite à dire que non) et qu'un truc léger et simpliste ne serait pas aussi adapté, voire plus efficace.
Un des avantages de sqlite c'est que tu peux diffuser une appli qui utilise une DB sans avoir de pré-requis coté présence d'un SGBD, sans étape de configuration/installation pour faire les tables/bases/droits dans ton SGBD, sans besoin de manip spéciales pour les sauvegardes.
Maintenant je crois
[^] # Re: SQLite
Posté par Da Scritch (site web personnel, Mastodon) . Évalué à 8.
Par contre, cela doit être galère pour faire migrer un site php5 de sqllite vers un truc plus puissant....
[^] # Re: SQLite
Posté par Antoine . Évalué à 4.
Oui, c'est juste qu'il va falloir les réécrire ;)
(envoyez-moi des sioux)
En plus, SQLite est vraiment minimaliste au niveau des fonctions par défaut, et il ne supporte pas les ALTER TABLE. Va falloir se retrousser les manches...
[^] # Re: SQLite
Posté par XHTML/CSS inside (site web personnel) . Évalué à -1.
Ca va être du vite réglé alors... Phpmyadmin et mysql !
[^] # Re: SQLite
Posté par Éric (site web personnel) . Évalué à 2.
Pour les ALTER c'est vrai, et le paliatif (faire une table à coté et copier les données) n'est pas top. Ceci dit pour les types d'appli visées par sqlite, les alter n'arrivent pas tous les jours. Si c'est juste pour les étapes de migration, le paliatif est suffisant. C'est juste agacant lors des développements en fait.
[^] # Re: SQLite
Posté par Antoine . Évalué à 4.
En fait ça peut être chiant si tu développes un logiciel déployable chez un hébergeur mutualisé, notamment avec un quota disque limité. Si une table importante de ta base de données double de taille lors de la migration et que ça fait exploser le quota, tu peux avoir des problèmes.
[^] # Re: SQLite
Posté par Olivier Meunier (site web personnel) . Évalué à 7.
[^] # Re: SQLite
Posté par scullder . Évalué à 8.
donc je pense que ce n'est pas limité au niveau des fonctionnalités.
En ce qui concerne l'utilisation, j'ai regardé un peu là : http://www.php.net/manual/fr/ref.sqlite.php(...)
ça ne me semble pas plus dur et peut s'avérer pratique dans certain cas où on ne dispose pas de bdd sur un serveur mysql ou autre (quand certains hébergeurs les font payer en supplément), ou encore pour faire une application cliente en php (de l'amusement avec la prochaine version de php gtk en prévision ^^, qui doit arriver avec php 5 si ça n'a pas changé), ou dans bien d'autres cas (sauf nombreux accès concurrentiels à la bdd).
[^] # Re: SQLite
Posté par MsK` . Évalué à 1.
[^] # Re: SQLite
Posté par hex . Évalué à 3.
Oui, d'autant que la base peut être créée en mémoire si besoin :
http://talks.php.net/show/php5-intro-oscon-2003/34(...)
Pratique pour des traitements temporaires par exemple.
[^] # Re: SQLite
Posté par Cyril PIERRE de GEYER (site web personnel) . Évalué à 6.
Quand tu ecrit ca fait un lock et du coup tes requetes en lectures sont mises en attente.
En gros c'est surtout interessant quand tu as surtout besoin de faire de la consultation.
De mon coté je vois sqlite comme un tremplin pour le couple PHP/GTK. Il est maintenant possible de faire des applications type client riche avec une base de données intégrées.
Par exemple jke peux facilement migrer l'annuaire que j'ai développé pour l'intranet vers une solution PHP/GTK disponible sur cdrom.
++
cyril
[^] # Re: SQLite
Posté par Christophe HENRY (site web personnel) . Évalué à 4.
> développé pour l'intranet vers une solution PHP/GTK disponible sur cdrom.
Intéressant, effectivement. Tu parles ainsi d'utiliser PHP en dehors d'apache mais avec un environnement GTK ? J'ai justement un problème de base de données que je souhaite consulter sans devoir trimbaler un serveur web sur cdrom...
As-tu des pistes (ou un livre :-o) pour pouvoir faire une consultation d'une base de données avec PhP/MysqlL/GTK. L'idéal étant de faire un support multi-plateforme.
Ô grand merci d'avance.
[^] # Re: SQLite
Posté par Moonz . Évalué à 6.
http://gtk.php.net/(...)
Mais c'est du GTK+ 1.2... Il me semblait avoir entendu parler d'un binding wxWindows wxWidgets mais je ne retrouve plus la page...
[^] # Re: SQLite
Posté par lezardbreton . Évalué à 3.
# Evolution ?!?
Posté par alexandre stanislawski . Évalué à 2.
[^] # Re: Evolution ?!?
Posté par Cali_Mero . Évalué à 6.
PHP est une émanation de perl, à la base... jusqu'à la version 2, PHP (alors appelé php/fi si je ne m'abuse) était une bibliothèque pour perl. Ces deux langages ont le meme point fort : la manipulation de chaines de caractères... C'est bien normal que les langages et les fonctionnalités se rejoignent, au moins partiellement.
Il n'en reste pas moins un langage de script fait a la base pour le web et qui n'apporte en dehors de cela rien de plus
Pas d'accord : à part quelques projets clairement "pour le fun", php démontre des capacités dans d'autres domaines et c'est tant mieux : cela permet de réutiliser les compétences et les scripts déjà développés dans d'autres contextes que celui, initial, des pages web dynamiques (quelques exemples : les moulinettes de maintenance (merci le shell), les interfaces d'administration en GTK et bientot en GTK2...).
[^] # Re: Evolution ?!?
Posté par Chaddaï Fouché . Évalué à 1.
--
Jedaï
[^] # Re: Evolution ?!?
Posté par Cyril PIERRE de GEYER (site web personnel) . Évalué à 0.
Et le fait de pouvoir développer en objet ? On dit pas que c'est un langage objet ?
qui n'apporte en dehors de cela rien de plus (faire une chose bien est mieux que de faire plein de choses moins bien ... )
Quand tu parles de Web c'est reducteur. Avec PHP tu peux gérer la majorité des applications type client serveur. Autant dire énormément de choses...
Je t'invite à consulter le livre blance de l'AFUP (www.afup.org) pour en savoir plus ...
[^] # Re: Evolution ?!?
Posté par Antoine . Évalué à 2.
Avec tcl et postscript aussi, j'imagine. Ca ne veut pas dire que ce sont des langages adaptés...
[^] # Re: Evolution ?!?
Posté par Julien Laumonier (site web personnel) . Évalué à 1.
Tu ne crois pas si bien dire.
http://public.planetmirror.com/pub/pshttpd/(...)
[^] # Re: Evolution ?!?
Posté par Antoine . Évalué à 1.
# clonés
Posté par gc (site web personnel) . Évalué à 3.
Quelle curieuse décision (pour PHP4). Quelqu'un en connaît la raison ?
[^] # Re: clonés
Posté par totof2000 . Évalué à 1.
[^] # Re: clonés
Posté par Antoine . Évalué à 5.
PHP n'avait pas cette contrainte et il aurait pu faire un choix intelligent dès le début ;))
[^] # Re: clonés
Posté par Bière Drabo . Évalué à 0.
D'autant que, comme dans la plupart des programmes on indique explicitement les public/private, les deux sont en interchangeables dans la pratique.
PHP n'avait pas cette contrainte et il aurait pu faire un choix intelligent dès le début ;))
En C++ il y a certes la compatibilité C, mais on manipule aussi explicitement les références et les pointeurs. Dans ce cadre là, ça me paraît plus logique de tout passer par valeur. Je ne connais pas le PHP, vos remarques viennent du fait que les objets y sont traités indirectement comme en Java ?
[^] # Re: clonés
Posté par Gabriel . Évalué à 1.
Certes cela oblige certainement à revoir le code de quasimanent toutes les applis.
Mais d'un autre côté cela me paraît plus logique de travailler une instance d'objet et pas sa copie. De plus niveau perf, est-ce que cela ne sera pas plus rapide?
[^] # Re: clonés
Posté par wismerhill . Évalué à 3.
[^] # Re: clonés
Posté par Infernal Quack (site web personnel) . Évalué à 0.
Sun veut faire de PHP le VisualBasic des plateformes Java. C'est pour celà que PHP5 a des nombreuses similitudes avec Java.
http://www.zend.com/news/zendpr.php?id=63(...)
L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire
[^] # Re: clonés
Posté par Cyril PIERRE de GEYER (site web personnel) . Évalué à 6.
?
Rien à voir.
Zend et Sun se sont rapproché pour faire une extension permettant de faire appel à des objets Java. Ca implique que dans le cas ou tu développe une application en PHP dans un environement Java existant ce ne sera pas la peine de tout redevelopper. On apelle ca de l'interopérabilité.
Et Java n'est pas, et de loin, la seule technologie avec laquelle PHP soit interopérable.
[^] # Re: clonés
Posté par Black Fox . Évalué à 2.
[^] # Re: clonés
Posté par - - . Évalué à 0.
la motivation c'est que si les objets sont passés en reference une fonction peut manipuler les valeurs de l'objet via ses méthodes, à la sortie de la fonction, l'objet "conserve" les modifications.
Pour limiter la source de nombreux bugs difficile à trouver que selon les auteurs de php , les développeurs php ont souvent, ils ont décidé que le passage d'objet se fait automatiquement par référence.
Cela change aussi beaucoup pour ce qui se passe quand on fait un "constructeur" statique qui renvoie des instances de classes (un $myMotor = Motor::newMotorFactory("ford"); par exemple)
plusieurs langages dit objets procèdent ainsi.
[^] # Re: clonés
Posté par Black Fox . Évalué à 2.
[^] # Re: clonés
Posté par gc (site web personnel) . Évalué à 2.
cependant, un tel changement implique quand même beaucoup de choses pour les programmes et ça risque de surtout être un cauchemard pour débugger les applications PHP existantes qui ont des fonctions qui modifient les objets passés en paramètre (à moins qu'une syntaxe existe pour les passer sélectivement par valeur si nécessaire).
c'est pas dacode qui est en php :) ?
[^] # Re: clonés
Posté par gc (site web personnel) . Évalué à 2.
si on obtient une copie par valeur d'un objet dans une fonction, ou une méthode d'une autre classe, effectivement ça devient difficile de changer l'objet, mais c'est quand même ce qu'on veut faire très souvent dans un programme objet.. je ne vois pas trop comment on peut ensuite s'en tirer pour faire un programme qui puisse faire quelque chose d'intéressant :)
[^] # Re: clonés
Posté par Éric (site web personnel) . Évalué à 4.
> applications PHP existantes qui ont des fonctions qui modifient les
> objets passés en paramètre (à moins qu'une syntaxe existe pour les
> passer sélectivement par valeur si nécessaire).
Le déboggage va être très long pour les applis non documentées. Se rendre compte si on utilise ou pas le passage par copie n'est pas simple.
Maintenant en pratique il est très rare qu'on *veuille* un passage par copie lors des appels. La plupart des applis objet PHP4 soit n'utilisent les objets que basiquement (en lecture, peu de passages en paramètres, pas d'affectation ...) soit utilisent des & à profusion pour forcer le passage par référence.
Dans l'ensemble je pense que pour la plupart des codes la transition se fera sans modification. Le problème va juste être de pouvoir garantir qu'il n'y a pas besoin de modif (vu que traquer les passages par copie pour voir s'ils sont utilisés ou si une référence peut aller .. c'est très long et sujet à erreurs)
[^] # Re: clonés
Posté par Tof . Évalué à 1.
# SimpleXM
Posté par analogue o/ (site web personnel) . Évalué à 5.
Un appel de fonction et hop, on a un tableau remplit !
[^] # Re: SimpleXM
Posté par Cyril PIERRE de GEYER (site web personnel) . Évalué à 5.
Si tu veux en savoir plus je t'invite a consulter le chapitre gratuit sur le sujet du livre PHP 5 avancé : http://www.eyrolles.com/Informatique/Livre/9782212113235/(...)
++
cyril
# PHP 4.3.8
Posté par ours Ours (site web personnel) . Évalué à 6.
(Vous me direz, peut être qu'une autre news est prévue)
[^] # Re: PHP 4.3.8
Posté par rootix . Évalué à 1.
Et il n'y a pas d'autres news en attente sur le sujet. D'ailleurs, y a plus rien en attente.
[^] # Re: PHP 4.3.8
Posté par ours Ours (site web personnel) . Évalué à 3.
d'ailleurs en lisant cette news, on n'a pas l'impression que cela vient de sortir mais que ca fait juste partie de l'historique.
[^] # Re: PHP 4.3.8
Posté par Infernal Quack (site web personnel) . Évalué à 4.
L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire
[^] # Re: PHP 4.3.8
Posté par Infernal Quack (site web personnel) . Évalué à 1.
domi< grillai !
L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire
# Dispo pour debian "woody"
Posté par Guillaume Plessis (site web personnel) . Évalué à 10.
Et PHP 4.3.8 est en ce moment même dans la deb-moulinette :)
Ceux-ci sont pour Woody, mais devraient fonctionner sans souci sur une sarge/sid.
[^] # Re: Dispo pour debian "woody"
Posté par Yannick Torrès . Évalué à 1.
[^] # Re: Dispo pour debian "woody"
Posté par David Marsal . Évalué à 1.
merci bien pour ces paquets, la migration php4 php5 a été transparente pour mon site et tout fonctionne comme il faut.
Juste une question, a quand l'intégration des paquets dans l'arbre officiel de debian ?
[^] # Re: Dispo pour debian "woody"
Posté par Guillaume Plessis (site web personnel) . Évalué à 3.
php 4.3.8 vient de rentrer dans debian unstable. php5 est prevu d ici qq temps, ca sera les memes mainteneurs que les paquets php4 actuels a priori.
Voila!
[^] # Re: Dispo pour debian "woody"
Posté par Bière Drabo . Évalué à 2.
Tu cherches quelque chose de plus que http://www.debian.org/devel/join/newmaint(...) ?
As-tu proposé tes paquets pour révision sur debian-mentors ou http://mentors.debian.net/(...) ?
# PHP, un language interprété??!
Posté par cosmocat . Évalué à 4.
Je crois avoir lu que pour des problèmes de performence lors de la consultation d'une page, le Zend Engine compile en fait les pages lors de la première consultation de la page et que part la suite la page est déjà compilée. Il était dit que cette tendance (qui rejoint d'une certaine façon la compilation necessaire des jsp) s'etendait à tous les language web interprétés.
Ma question est donc la suivante : Peut-on encore dire que le php est un langage interprété? La différence est elle seulement que la compilation est automatique et non faite à la main, et est transparante à l'utilisateur?
Je remercie d'avance toute personne qui se penchera sur ma question ;)
[^] # Re: PHP, un language interprété??!
Posté par Prae . Évalué à 4.
Après tu peux passer en bytecode avec le moteur Zend pour optimiser les temps de réponses.
[^] # Re: PHP, un language interprété??!
Posté par Christophe HENRY (site web personnel) . Évalué à 3.
[^] # Re: PHP, un language interprété??!
Posté par Ben A. . Évalué à 3.
Certains outils permettent de sauvegarder ce code intermédiaire et de contourner l'étape compilation pour aller directement à l'exécution.
APC ( http://apc.communityconnect.com/(...) ) le fait par exemple.
Donc, PHP est vu comme un langage interprété (comme un script shell) mais ne se comporte pas exactement comme tel à l'intérieur.
[^] # Re: PHP, un language interprété??!
Posté par gc (site web personnel) . Évalué à 2.
[^] # Re: PHP, un language interprété??!
Posté par Antoine . Évalué à 7.
Bonne réponse.
Il y a un excellent cache / optimiseur de PHP sous licence GPL : http://turck-mmcache.sourceforge.net/(...)
# Packages Mandrake
Posté par Francois SIMOND . Évalué à 1.
Je ne connais pas encore de backport de ce type de logiciels, assez différents de ceux habituels de plf ;)
Merci d'avance,
[^] # Re: Packages Mandrake
Posté par Pascal Terjan (site web personnel) . Évalué à 3.
# SOAP extension
Posté par EppO (site web personnel) . Évalué à 1.
Quelqu'un a essayé cette nouvelle extension SOAP ? Le support du SOAP en php 4.x c'était limite de l'arrachage de cheveux, mais au final ca marchait pas mal (mais très lourd à maintenir...).
Qu'est ce qu'apporte cette nouvelle extension ?
[^] # Re: SOAP extension
Posté par Éric (site web personnel) . Évalué à 3.
Attention toutefois. On en parle mais cette extension n'est pas finalisée ni considérée comme stable. Elle a été intégrée avec PHP5 car on la considère comme importante et devant être finalisée au plus vite (donc testée/utilisée), mais c'est tout.
# PHP5 sans MYSQL sous Windows
Posté par foxmask . Évalué à 1.
Pour rectifier le tir ; il faut telecharger une version nightly build....
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.