Après le lancement du projet de migration à PHP 5 'Go PHP 5', les avis continuent de fuser de toutes parts.
Stuart Herbert prend le temps mesurer l'impact économique de rester à PHP 4 face à une migration complète.
Henry Bergius annonce la migration totale de Midgard vers PHP 5, facilitée par leurs choix techniques.
A la veille de produire les statistiques de Juillet pour PHP, les chiffres de juillet seront surement intéressants à voir, après plus d'un mois de campagne Go PHP 5.
[Nexen]
Le journal du Net fournit un exemple pour qu'un programme ne fonctionnant qu'en register_globals=On soit compatible avec register_globals=Off.
La directive PHP register_globals, lorsqu'elle est activée, permet une déclaration automatique des variables issues des tableaux $_GET, $_POST, $COOKIE, $SESSION, ... En cas de mauvaise utilisation, register_globals favorise les trous de sécurité dans une application, ce qui explique sa désactivation par défaut à partir de la version 4.2.0 de PHP. Le journal du Net explique comment reproduire cette déclaration automatique quand register_globals est à Off en une seule ligne de code.
L'articleLe site 01net nous propose un dossier complet sur les différentes solutions de gestion de contenu, et nous indique quelques pistes pour bien choisir son CMS.
Les systèmes de gestion de contenu, ou CMS (Content Management System), sont de plus en plus nombreux et diversifiés. Mais au delà des avantages évidents d'une telle variété, vient la problèmatique du choix d'un outil.
Le dossier de 01net liste quatre points importants à vérifier lors de ce choix:
Des captures de Zend Studio Neon dans l'album photos Flickr de Sebastian Bergmann pour montrer l'integration de PHPUnit
Zend Studio Neon sera la version commerciale de PHP Development Tools (PDT) d'Eclipse .
Version 6.5 of the Asbru Web Content Management system for PHP, ASP and JSP/Java has been released.
The new version of the Asbru Web Content Management system adds Google Sitemap functionality, several new add-ons, and a new user interface that enables non-technical website managers to add functionality packages to their websites in just 2 clicks.
The Asbru Web Content Management System already produces websites with search engine friendly page URLs. The new version 6.5 of the Asbru Web Content Management System improves search engine friendliness further by dynamically generating what are known as Google Sitemaps. The Asbru Web Content Management Google Sitemap solution is tightly integrated with the system so when a website administrator changes the structure of their website through the system’s drag & drop user interface the new website structure is automatically published to a sitemap XML file adhering to the Sitemap protocol supported by Google, Microsoft and Yahoo!. Making such sitemaps available to search engines makes website indexing more efficient for search engines and can provide an improved representation in search engines because it helps them discover and prioritize pages that may otherwise be difficult to find.
Other new features incorporated into Asbru Web Content Management version 6.5 include:
* Multi-level Navigation Menu Generator
The new Multi-level Menu Generator enables non-technical users to design their own horizontal or vertical multi-level navigation menus without any knowledge of HTML or CSS.
* CSS Page Grid Layout Template Generator
The new CSS Template Generator enables non-technical users to add CSS based templates without any knowledge of HTML or CSS.
* Photo Gallery Add-On
The photo gallery add-on presents photos in a lightbox slideshow. Photos can easily be added to or removed from the lightbox slideshow by non-technical users.
* Pluggable Calendar Add-On
The Pluggable Calendar can be used for display of any standard type of content such as news, events and blog entries and for any type of custom data containing dates.
Finally, Asbru Web Content Management 6.5 includes functionality that lets web hosting companies and web developers build industry solutions that can be added by non-technical website managers in just 2 clicks. A web hosting company may for example wish to provide website templates targeting florists and could make these available for non-technical users to select in just 2 clicks.
For an online trial of the system with its new features users can sign up here: http://wcm.asbrusoft.com.
Proposé par David Fisher
Afin de présenter le fonctionnement et les possibilités de PHPEdit 2.12, Sébastien Hordeaux (le boss de Waterproof) à réalisé un screencast.
Celui-ci est découper en 5 parties :
Cette présentation de PHPEdit (en anglais) permet de mieux cerner les possibilités de l'outil et de le voir fonctionner dans les mains d'un utilisateur aguerri.
Pour ma part j'utilise PHPEdit pour mes projets persos et dans le cadre de mon travail. J'en suis très satisfait même si de petit problèmes de statbilité mon casser la tête quelque temps. PHPEdit à énormément évolué depuis plusieurs années et il est devenu un IDE très professionnel pour un coup de license plus que raisonnable !
Si vous ne l'avez pas encore essayé, je vous invite à télécharger PHPEdit sur le site officiel.
Afin de présenter le fonctionnement et les possibilités de PHPEdit 2.12, Sébastien Hordeaux (le boss de Waterproof) à réalisé un screencast.
Celui-ci est découper en 5 parties :
Cette présentation de PHPEdit (en anglais) permet de mieux cerner les possibilités de l'outil et de le voir fonctionner dans les mains d'un utilisateur aguerri.
Pour ma part j'utilise PHPEdit pour mes projets persos et dans le cadre de mon travail. J'en suis très satisfait même si de petit problèmes de statbilité mon casser la tête quelque temps. PHPEdit à énormément évolué depuis plusieurs années et il est devenu un IDE très professionnel pour un coup de license plus que raisonnable !
Si vous ne l'avez pas encore essayé, je vous invite à télécharger PHPEdit sur le site officiel.
Libération de la dernière mouture de PHPNuke 8.1, précurseur des CMS et des systèmes de blogs.
PHP-Nuke vient de sortir ce jour en version 8.1.
Comme chaque nouvelle version, PHPNuke 8.1 n'est pas encore disponible gratuitement, il faudra débourser quelques dollars pour s'en acquitter.
Cette nouvelle version comprend:
- ajout de nombreux correctifs de sécurité
- ajout de nombreux contrôles de variables dans plusieurs modules
- ajout du forum phpBB ( BB2nuke en version 2.0.21 )
- ajout du script AutoTheme en version GPL ( il existe aussi une version payante )
- Correctifs appliqués dans le module Topics
- La gestion des préférences dans l'administration a été totalement revue et ré-organisée
- Amélioration de la gestion des référants
- ajout d'une possibilité offerte aux administrateurs de permettre ou non aux utilisateurs de changer de charte graphique ( theme ou template )
- et pas mal d'autres choses :)
Vous pouvez retrouver la version 8.1 sur www.phpnuke.org ( réservée au club ) ainsi que la version 8.0 originale sur www.php-nuke.fr ( la version 100% française est en cours de validation )
Proposé par Cyril Levert
"Les statistiques de diffusion PHP dans le monde pour juillet 2007 sont arrivées.Et toujours beaucoup de détails sur Apache, IIS, les pays, les versions et leur évolution depuis Juin 2005, ainsi que des aides pour choisir les versions de PHP à supporter."
- PHP 5 passe la barre des 20% du marché PHP
- PHP 5.2 représente maintenant 10%
- PHP 4.4.7 est toujours très prisé des webmestres
Source : Nexen
"Les statistiques de diffusion PHP dans le monde pour juillet 2007 sont arrivées.Et toujours beaucoup de détails sur Apache, IIS, les pays, les versions et leur évolution depuis Juin 2005, ainsi que des aides pour choisir les versions de PHP à supporter."
- PHP 5 passe la barre des 20% du marché PHP
- PHP 5.2 représente maintenant 10%
- PHP 4.4.7 est toujours très prisé des webmestres
Source : Nexen
Si vous aimez Manu Chao, un concert restransmis en live du festival Esperanzah va bientôt démarrer sur:
http://www.esperanzah.be/radio/direct/
Copix est l'un des premiers framework PHP ayant vu le jour et profite aujourd'hui d'une mise à jour vers PHP5 qui, selon les premiers retours utilisateurs, est plus que réussie !
L'équipe de développement a axé ses efforts sur la simplicité de configuration et de prise en main de l'outils, sans oublier les performances et les fonctionnalités avancées comme les transactions multi-sources, un gestionnaire de droit interchangeable, une gestion des webservices aisée, l'utilisation de Mootools pour les applications web 2.0, un système de log pour les applications en production ou développement, des caches, thèmes graphiques, ....
Le site officiel vous proposera quelques tutoriaux (http://www.copix.org/index.php/wiki/Tutoriaux) pour commencer et s'y retrouver dans la grande liste des nouvelles fonctionnalités (http://www.copix.org/index.php/wiki/Presentation).
Bonne découverte !
Proposé par Gérald Croës
"Un service Web est constitué d'un serveur qui reçoit les rquêtes, et d'un client qui invoque les méthodes sur le serveur.
La bibliothèque de classes PHP fournit les bases pour constituer un serveur SOAP et les clients associés, ainsi que l'extension XML-RPC, pour utiliser le protocole XML-RPC.
Avant de plonger dans les détails du développement des services Web, je veut vous présenter rapidement les services eux-mêmes."
source : Nexen
"Un service Web est constitué d'un serveur qui reçoit les rquêtes, et d'un client qui invoque les méthodes sur le serveur.
La bibliothèque de classes PHP fournit les bases pour constituer un serveur SOAP et les clients associés, ainsi que l'extension XML-RPC, pour utiliser le protocole XML-RPC.
Avant de plonger dans les détails du développement des services Web, je veut vous présenter rapidement les services eux-mêmes."
source : Nexen
Zend Technologies étend son partenariat avec IBM pour apporter un support des motées en charge des bases de données sans précédent pour la plateforme PHP
Le 8 août 2007, LinuxWorld San Francisco – Zend Technologies Inc, annonce le renforcement de son partenariat avec IBM avec l’objectif de favoriser la croissance des applications PHP prêtes pour la production dans l’entreprise. Grâce à une intégration plus étroite de Zend Core for IBM et IBM DB2, les entreprises pourront désormais déployer PHP et DB2 sur un grand choix de matériel et de systèmes d’exploitation, tout en bénéficiant d’un support de classe mondiale provenant d’une seule source.
Selon les termes de l’accord, cette initiative comprend :
• Des capacités Express-C d’IBM DB2 améliorées dans Zend Core for IBM, la solution PHP certifiée de Zend Technologies
• Un nouveau support pour la technologie DB2 Connect avec l’accès aux serveurs de données hautes-performances i5/OS et z/OS DB2
• Support unifié et provenant d’une seule source pour la distribution intégrée des solutions PHP et DB2
• Support des partitions System i Linux, du BladeCenter System i et des serveurs System x
Zend Core for IBM est une distribution PHP totalement certifiée et supportée pour le développement et le déploiement d’applications, et qui comprend Apache, PHP, le Zend Framework et DB2 Express-C. DB2 Express-C est le serveur de données hybride relationnel-XML d’IBM qui fournit un accès aux fonctionnalités telles que la réplication de données, le clustering en mode haute disponibilité et la récupération d’incident. Il en résulte une infrastructure pour applications web d’une grande extensibilité et fiabilité.
Afin de pouvoir supporter des charges de travail importantes, Zend Core for IBM comprend désormais la technologie DB2Connect, qui facilite la création d’applications PHP stratégiques utilisant la puissance et l’extensibilité de DB2 sur les serveurs IBM System z(z/OS) et System i (i5/OS).
«PHP et DB2 sont des technologies importantes pour le développement d’applications Web avec de gros volumes de données générées par l’utilisateur » déclare Bernie Spang, Directeur des Serveurs de Données IBM. « DB2 Express-C dans Zend Core for IBM fournit une solution puissante, abordable et extensible pour l’entreprise quelle que soit sa taille, aussi bien pour une PME que pour une entreprise Internet de taille importante. »
Zend Core for IBM fournit des fonctionnalités standardisées à travers une gamme importante de matériels et de systèmes d’exploitation d’IBM. Les gammes de produits complètes IBM System x sous Windows ou Linux et IBM System p sous Linux ou AIX sont supportées. Zend et IBM propose également Zend Core for i5/OS, une solution PHP i5/OS native, qui utilise les capacités de DB2 de ce système d’exploitation.
Zend continuera à développer son support pour System i en rajoutant le support pour les partitions Linux, celui pour le BladeCenter associé à System i et pour les serveurs System x. Les clients du System i pourront consolider de multiples serveurs d’applications PHP et des serveurs de données DB2 Express-C sur une seule plateforme avec une administration et une gestion unifiée.
«Zend Core for IBM est une solution formidable pour les clients qui prévoient une croissance future. » explique Mark de Visser, Chief Marketing Officer chez Zend. «On peut démarrer avec un système d’entrée de gamme System x et ensuite évoluer vers des systèmes plus puissants tels que System p, System i et même System z en bénéficiant de la cohérence inter-plateforme de la solution Zend Core ».
Les clients qui recherchent un support pour leurs applications stratégiques peuvent acheter des abonnements annuels au support Zend pour leur environnement PHP avec le serveur de données DB2 Express-C. Tous les services sont fournis par Zend avec le soutien des ressources techniques globales d’IBM.
Shaklee Corporation, l’entreprise numéro un aux Etats-Unis dans le domaine de l’alimentation bio est un exemple d’un client qui s’est tourné vers Zend et IBM pour le support de son infrastructure PHP. « Nous considérons Zend Core, Zend Platform et DB2 comme des technologies clés dans notre commerce qui est basé sur le Web » explique Chris Jones, Directeur des applications Web chez Shaklee. « C’est encourageant de voir une telle coopération entre Zend et IBM qui fournissent une offre comprenant une solution avec le support totalement intégrée»
Zend Core for IBM est disponible chez Zend www.zend.com/fr/core/ibm
Proposé par Zend Technologies
J'ai traduit la partie de la documentation du Zend_Framework version 0.1.2 concernant le module Zend_Pdf. Ce travail sera intégré au reste de la traduction en français.
Le but de cet article est de lister un certains nombre de points important auxquels il faut songer lors du développement en PHP. PHP est tellement simple à apprendre que la majorité des développeurs sont autodidactes et ont parfois pris de (très) mauvaises habitudes.
Lors de la phase de développement il est préférable d'activer tous les warnings : cela vous permettra notamment de connaître les variables non déclarées (ca simplifera le développement).
Par contre sur un site en production il est recommandé de couper les Warnings afin de ne pas fournir aux pirates de précieuses informations : de plus cela est du plus mauvais effet pour les visiteurs.
Une bonne pratique peut-être de mettre en place un systèmes pour être alerté en cas de soucis. Comme par exemple une notification des erreurs par mail : Un exemple chez Zend
Lorsque vous voulez insérer du code php dans une page n'utilisez pas les short tags :
mais
. Cela pourrait créer des conflits avec d'autres langages (comme le XML) et l'option est désactivée par défaut.
Avant la version 4.2 de PHP il était possible d'accéder directement aux variables de l'url ou d'un formulaire juste en utilisant leur nom. Pour des raisons de sécurité cette option est désormais coupée par défaut. Mais cette option est toujours activée chez de nombreux hébergeur afin de rester compatible avec les anciens scripts.
Ainsi pour accéder à la variable test de :
http://www.noplay.net/index.php?test=tata
Utilisez $_GET['test'] plutôt que $test.
Plus d'informations sur phpdebutant
Lors de l'utilisation des sessions avant de faire un session_start utilisez session_name afin de mettre un nom de session propre à votre site ce qui vous évitera de mauvaises surprises sur certains serveur.
Lorsque vous incluez un fichier contenant des classes et des fonctions utilisez include_once si le fichier doit-être inclus de façon conditionnelle et require_once si il doit toujours être inclus.
La seul différence entre require et include est leur comportement en cas d'echec : require provoquera une FATAL ERROR alors que include affichera juste un WARNING.
Les versions once de include et require évite que le fichier soit inclus deux fois ce qui vous permet de ne pas redéfinir les fonctions.
Les conseils qui suivent concernent la sécurité de vos scripts ; en effet en PHP l'apprentissage est tellement simple que l'aspect sécurité est souvent négligé.
Je vous recommande les articles de http://www.phpsecure.info (en français pour ne rien gacher :D).
Vous devez toujours garder à l'esprit qu'il ne faut jamais faire confiance à l'utilisateur.
Ne faites jamais :
En effet un pirate pourrait détourner votre inclusion vers un autre fichier sur votre serveur ou sur un autre. Pour faire ce genre chose, effectuez un controle auparavant comme par exemple :
Évidemment vous pouvez faire plus propre.
Afin de vous prémunir de l'injection SQL vous devez protéger les variables que vous utilisez dans vos requêtes SQL.
Il est possible d'utiliser pour cela addslashes mais si vous devez insérer des données binaires dans MySQL il vaut mieux utiliser : mysql_real_escape_string.
Note : il est possible que la directive magic_quote de PHP soit activée et protége automatiquement les variables utilisateurs, mais cette option est de plus en plus souvent désactivée pour des raisons de performance. Vous pouvez tester si cette option est activée avec get_magic_quotes_gpc.
Exemple d'utilisation de addslashes :
Comme pour les requêtes SQL pensez à supprimer le code PHP et HTML afin de vous prémunir contre le Cross Site Scripting, cela peut-être fait avec la fonction htmlspecialchars ou stript_tags. La différence entre stript_tags et htmlspecialchars vient du faite que la première supprime le contenu alors que la seconde le remplace par des caractères protégés.
Lorsque vous utilisez htmlspecialchars faite attention à utiliser le bon charset. Le charset par défaut étant iso-8859-1.
Ne stockez jamais un mot de passe en clair, en effet si quelqu'un parvenait à s'introduire sur votre site web il aurait directement accés à tous les mots de passe des utilisateurs. Les utilisateurs utilisant bien souvent le même mot de passe partout, les conséquences pourraient être très graves.
Appliquez plutôt une fonction de hashage sur le mot de passe. Celle ci va calculer une chaine de taille fixe à partir du mot de passe avec laquelle il est impossible techniquement de revenir en arrière.
Lorsque l'utilisateur voudra se connecter vous n'aurez qu'à comparer le hash du mot de passe soumis avec celui que vous aviez stocké.
Utilisez la fonction session_regenerate_id afin de changer l'id de session lorsque un utilisateur se connecte. Cela permet de limiter le vol de session.
Vérifiez toujours le retour de toutes les fonctions systèmes, notament fopen, obstart...
Je vous recommande de lire sur les conventions de codage de PEAR afin d'écrire du code propre et lisible par le plus grand nombre.
http://pear.php.net/manual/fr/stand...
Je tiens à remercier Darzee, Snowcat et Stem pour leurs remarques sur cet article.
Traduction en cours : php_codesniffer
Si ca vous intéresse, n'hésitez pas à me signaler les éventuelles probables erreurs.
Sometimes you have to pass an object data to another object, or to another layer of your application (who said controller/view ?), while ensuring that the receiving entity will not be able to run business code encapsulated in your class. In the Zend Framework, several objects provide a toArray method, but that is not always sufficient as sometimes you'd like to keep with the $object->varname syntax.
That is where the Transfer Object arrives. While the preceding definition is not exact (that's not the real purpose of the Transfert Object in the J2EE spirit), This is the most common use that PHP Developers can make of it nowadays I think. So I came up with a very light implementation of a concept which I hope can prove useful for any folks getting by there.
See also:
Bonjour,
L'équipe du site Stefvar est heureuse de vous annoncer la mise à disposition de SV PHP-Nuke 8.1.02. Cette dernière est une évolution majeure de PHP-Nuke 8.1 conformément à la licence GNU/GPL troisième du nom.
Les principale évolutions sont :
- la mise à jour du forum en version 2.0.22
- la mise en place de système de cache en version 2.0.00
- la mise en place de divers correctifs de sécurité
- la mise en place d'un système de suivi de version et de mise à jour automatique
- L'étoffement de l'installeur automatique permettant le choix des préfixes des tables.
Cette version est disponible sur le site :
http://www.stefvar.com
Il est à noter que depuis le mois de juillet 2007, il est demandé un euro de contribution, reversé entièrement au profit de l'association SIDACTION, pour accéder aux ressources téléchargeables, merci.
Proposé par stefvar
Je suis en train de traduire la documentation du package pear PHP_codeSniffer, et je me demandais comment traduire le terme "token" parce que la traduction que j'en connaissais (jeton) ne me semblait pas correspondre. J'ai jeté un oeil sur wikipedia et j'y ai trouvé la réponse : Lexème
Le lexème est le morphème lexical d'un lemme, c'est-à-dire une unité de sens et de son qui n'est pas fonctionnelle ou dérivationnelle. Le lexème renvoie à une notion abstraite ou concrète indépendante de la situation de communication.
C'est un synonyme de radical dans la plupart des cas, surtout utilisé dans le cadre de la lexicologie en synchronie. En effet, diachroniquement, radical et lexème peuvent ne pas coïncider.
Ceci étant fait, il me reste à traduire correctement "tokenizer"
Une classe outil qui peut être réutilisée et complétée pour gérer les requêtes POST et GET passées votre application.
La classe est assez simple et plutÎt utile, elle est complÚtement réutilisable (cela me fait penser que PHP6 et l’arrivée des espaces de nom (namespaces) sera une trÚs bonne nouvelle pour la communauté PHP. Car le manque de cette fonctionnalité commence réellement se faire sentir avec les multiples classes et frameworks qui voient le jour !), utilisée via un frontController elle permet d’intercepter les requêtes passées l’application sous toutes ses couches et les nettoie en fonction du type retourner.
Au niveau du constructeur de la classe, j’utilise un array_merge pour récupérer les tableaux GET et POST, mais peut être que placer un paramÚtre au constructeur permettrait une meilleure souplesse de la classe.
Ainsi on peut choisir quels sont les types de variable qu’on souhaite récupérer…
"TheCredence procède à une comparaison rapide de 5 frameworks : Zend Framework, Symphony, Prado framework, CakePHP et CodeIgniter pour vous guider dans votre choix d'un framework PHP."
Source : Nexen
L'article de TheCredence : PHP frameworks - Which one is Most Suitable for you?
"TheCredence procède à une comparaison rapide de 5 frameworks : Zend Framework, Symphony, Prado framework, CakePHP et CodeIgniter pour vous guider dans votre choix d'un framework PHP."
Source : Nexen
L'article de TheCredence : PHP frameworks - Which one is Most Suitable for you?
A quick post to show how one can easily implement a findByField wrapper in Zend_Db_Table:
/**
* Implements a simple findByField wrapper
*/
public function __call($method, $args) {
if (preg_match('/^findBy([a-zA-Z0-9]+)$/', $method, $parts)) {
$field = strtolower(preg_replace('/([a-z])([A-Z])/', '$1_$2', $parts[1]));
if (!in_array($field, $this->_cols)) {
throw new Zend_Db_Table_Exception(sprintf('\'%s\' field not in row', $field));
} else {
$db = $this->getAdapter();
$where = $db->quoteInto($db->quoteIdentifier($field).' = ?', $args[0]);
return $this->fetchAll($where);
}
}
}
What it does is basically trapping any non-existant method call and check if the corresponding field exists, after converting CamelCasing to underscore_notation (eg: FooBar becomes foo_bar).
Galaxie PHP est un site qui tente de regrouper en un seul flux RSS toute l'actualité francophone sur PHP, depuis les sites d'informations les plus connues aux blogs d'utilisateurs méconnues.
Si votre site parle de PHP n'hésitez pas à le proposer.
http://www.galaxie-php.info
Proposé par Julien Duponchelle
Tout comme planet-libre, Galaxie PHP est un planète pour PHP, c'est-à-dire un site qui agrège en un point toute l'actualité francophone sur PHP.
J'ai décidé de lancer ce site suite à l'ajout de mon blog à planet-libre (au passage bravo à tous les bloggeurs pour la qualités des articles publiés) et à ma lecture de nombreux planet anglophone (Planet PHP, Planet KDE...). J'ai donc eu envie de monter un planet francophone pour PHP et ainsi fournir une dose de drogue en plus pour les accros comme moi aux flux RSS.
N'hésitez pas me à proposer votre site si celui-ci parle de PHP.
Sebastian Bergmann l'auteur de PHPUnit a posté des screenshoots de l'intégration de la suite de test unitaire PHPUnit dans la prochaine version de Zend Studio qui sera batis au dessus d'Eclipse.
Une suite des distributions Linux composées des applications professionnelles parmi les plus réputées
Vafeo est le nom d'une suite de distributions Linux. Il a pour but de proposer des applications web intégrées dans un socle Debian - Etch. Ainsi plusieurs thèmes qui couvrent plus de 120 applications open source sont proposées dans cette suite.
La version actuelle de Vafeo propose 5 grands thèmes applicatifs suivants :
- va-business : applications CRM, eCommerce, ERP, marketing
- va_content : applications CMS, ECM, eLearning, Portails
- va_easy_eclipse : l'environnement de développement java
- va-manage : applications de surveillance systèmes et réseaux, Help Desk, WebMails, ...
- va-team : applications collaboratives, FAQs, Forums, Groupare, Blogs, Wikis, ...
Mise à part va-easy-eclipse, un grand nombre d'applications en PHP fait partie des distributions Vafeo.
Les distributions Vafeo existent sous plusieurs formes : LiveDvd ou images pour les outils de virtualisation les plus connus : KVM, Parallels, VirtualBox, ou VMWare.
Les amoureux des grandes applications PHP sont invités à faire un tour sur le site Vafeo pour se faire une idée des possibilités proposées par cette suite.
Franklin N.
Site officiel : http://www.vafeo.org
Downloads : http://www.vafeo.org/vsgimg-0.93/
Proposé par Franklin N.
Tout est dans le titre
Galaxie PHP est un aggrégateur de sites francophone traitant exlusivement de l'univers PHP.
Le site fonctionne à la manière de Planet PHP, c'est à dire qu'il sélectionne les articles provenant des sites référencés.
Galaxie PHP est une source d'informations intéressante pour la communauté PHP franophone, à tester donc : http://www.galaxie-php.info
Galaxie PHP est un aggrégateur de sites francophone traitant exlusivement de l'univers PHP.
Le site fonctionne à la manière de Planet PHP, c'est à dire qu'il sélectionne les articles provenant des sites référencés.
Galaxie PHP est une source d'informations intéressante pour la communauté PHP franophone, à tester donc : http://www.galaxie-php.info
"In other words, Joomla's cache system improves performance by 12%, while Drupal's cache system improves performance by 508%."
L'aticle complet sur buytaert.net (english only !)
"In other words, Joomla's cache system improves performance by 12%, while Drupal's cache system improves performance by 508%."
L'aticle complet sur buytaert.net (english only !)
Une discussion a lieu en ce moment sur la mailing liste de PEAR sur un changement de casse.
L'auteur suggère "pear" en lieu et place de "PEAR".
Diverses raisons sont avancées, PEAR est un acronyme signifiant PHP Extension and Application Repository. Or aujourd'hui il n'y a plus les extensions qui sont dans PECL et il n'y a jamais vraiment eu d'applications.
Qu'en pensez-vous chers lecteurs ?
MaJ: j'avais mis deux fois PEAR
Une discussion a lieu en ce moment sur la mailing liste de PEAR sur un changement de casse.
L'auteur suggère "pear" en lieu et place de "PEAR".
Diverses raisons sont avancées, PEAR est un acronyme signifiant PHP Extension and Application Repository. Or aujourd'hui il n'y a plus les extensions qui sont dans PECL et il n'y a jamais vraiment eu d'applications.
Qu'en pensez-vous chers lecteurs ?
MaJ: j'avais mis deux fois PEAR
Damien Seguy de nexen.net et Vincent Pontier (l'auteur de l'éléphant PHP) nous préparent une petite peluche PHP toute mignonne.

J'attend de voir le prix mais je me laisserais bien tenter.
Je développe actuellement une application Web avec Code Igniter, un framework PHP léger. Afin d'accéder à la partie backoffice (administration) de l'application, j'utilise un accès par code utilisateur/mot de passe puis un système de sessions. Code Igniter propose un mécanisme simple pour gérer les sessions. Mais en regardant de plus près son fonctionnement, malgré une option permettant de stocker les sessions dans une base de données, on se rend compte que les informations sont systématiquement transférées sous forme de cookies sur le navigateur de l'utilisateur %-)
Il s'agit d'un gros problème de sécurité. Les sessions natives PHP stockent les données sur le serveur et non pas sur le client, ceci permet la gestion d'informations sensibles de manière beaucoup plus sécurisée.
Si vous avez déjà une application utilisant Code Igniter et ses sessions, je vous recommande vivement d'utiliser la bibliothèque d'Oscar Bajner, OB Session, qui corrige cette faille tout en gardant les API, bien documentés, de Code Igniter.
L'équipe de TYPO3 vient de dévoiler la liste des améliorations prévues pour la version 4.2 de leur CMS.
Voici les changements les plus importants apportés dans cette version :
Je suis actuellement en train d'effectuer la conversion du projet PHPMVC en PHP5, PHPMVC étant le portage de Struts en PHP. Tout comme son parent Java, PHPMVC utilise un composant Digester nécessaire à la configuration, à partir de fichier XML, des applications web développés à partir du framework; de la même façon il est apparu que ce composant pouvait avoir une utilité commune à de nombreux projets PHP afin de lire des fichiers de configuration en XML. C'est pourquoi le projet "Digester pour PHP5" a été séparé du projet PHPMVC5 et que ce composant est désormais disponible en version béta.
Pour résumer, le composant Digester vous permet de configurer un mapping XML -> objets PHP, qui déclenche certaines actions appelées règles à chaque fois qu'un masque particulier d'éléments imbriqués est reconnu. Un ensemble fourni de règles prédéfinies est mis à disposition, ou vous pouvez aussi créer vos propres règles.
Liens en français:
Proposé par Olivier HENRY
Saviez vous qu'il est possible de déclarer des fonctions en PHP avec old_function à la place de function ? Cela pour simplifier la vie aux convertisseurs de code PHP/FI vers PHP3.
Ainsi ce code PHP :
Peut s'écrire :
L'édition 2007 de ZendCon se déroulera du 8 au 11 Octobre au Hyatt Regency San Francisco Airport de Burlingame en Californie.
Cette conférence est le plus important rassemblement annuel de Zend. Au cours de ces trois jours, plus de quarante sessions et tutoriels sont prévus avec pour orateurs des spécialistes comme John Coggeshall, Wez Furlong, Ilia Alshanetsky, Andrei Zmievski, Derick Rethans, entre autres ....
Les inscriptions sont ouvertes sur le site web de l'événement.
Inscription
Site officiel de ZendCon
Liste des sessions/tutoriels de la conférence
La version 2.11.0 stable de phpMyAdmin est disponible depuis hier soir.
Les quelques nouveautés sont la création de vues à partir des résultats de requête, le support de la version 5.0.37 de MySQL et une interface plus adaptée aux serveurs hébergeant plusieurs milliers de bases de données.
A noter, cette série est certainement la dernière qui supporte PHP4.
IBM vient de publierWeb 2.0 Starter Toolkit, un nouvel utilitaire pour Zend Core for IBM.
Cet utilitaire a pour objectif de faciliter encore un peu plus la création d'applications PHP basées sur l'AJAX, l'ATOM et les services Web REST et de permettre la création de services Web basés sur la technologie PHP/DB2.
Rappelons que Zend Core for IBM est une distribution PHP pour le développement et le déploiement d’applications comprenant Apache, PHP, le Zend Framework et DB2 Express-C (serveur de données hybride relationnel-XML d’IBM). Grâce à ces nombreux utilitaires, Zend Core for IBM est une solution complète pour le développement d'applications Web basés sur le système de gestion de base de données d'IBM : DB2.
Télécharger Web 2.0 Starter Toolkit
Site officiel d'IBM
La partie 6 du tutorial de la DevZone de Zend dont le but est de développer une messagerie grâce à AJAX et XML a été mise à jour.
Ce tutorial nous présente une méthode pour afficher et mettre à jour la liste des utilisateurs du chat.
Lien vers le tutorial : AJAX Chat Tutorial Part 6 : Updating the User List
Les anciens tutoriaux sont toujours disponibles a ces adresses :
IBM propose un article sur la création d'applications avec le plug-in Project Zero, qui propose un environnement pour le développement d'application web pour Eclipse.
Project Zero est un projet développé en partenariat avec IBM, qui permet le développement d'application web dynamique "sans difficulté, sans frais et sans obstacle".
Après avoir installé tous les logiciels nécessaires (Java 5, PHP Developpement Tools, Project-Zero), l'article propose de réaliser une première application utilisant du PHP. La deuxième application, est un exemple d'utilisation d'Ajax avec Project Zero.
L'articleeZ System a publié une nouvelle version de son CMS Open Source, eZ Publish.
Estampillé 3.9.3, cette mise à jour corrige un important problème de sécurité ainsi que plusieurs anomalies qui sont détaillées dans le changelog.
Annoncée également, la sortie de eZ Publish 3.10.0 en version Beta1. Rappelons que cette version est encore instable et par conséquence succeptible de contenir des bogues.
Télécharger eZ Publish 3.9.9
Télécharger eZ Publish 3.10.0 Beta1
Site officiel
IBM propose sur son site un tutorial sur l'utilisation de la classe XML_Query2XML intégrée dans la section XML de PEAR (Bibliothèque d'extensions PHP). Attention, le package XML_Query2XML requiert PHP 5.0.
Dans ce tutorial, IBM explique entre autres comment exporter les résultats d'une requete SQL dans un flux XML. Chaque enregistrement retourné par la requête est inséré dans un élément
Par exemple :
<row>
<code>NLD</code>
<name>Netherlands</name>
<continent>Europe</continent>
<region>Western Europe</region>
<surfacearea>41526.00</surfacearea>
<population>15864000</population>
</row>
Il est possible ensuite de mettre en forme ce flux XML en lui associant une feuille XSL pour récupérer un flux HTML.
La fonction getXML() permet de personnaliser le flux XML généré en définissant par exemple le nom des éléments (mettre au autre nom d'élement que "row" par défaut).
Cette classe permet également entre autres de gérer les jointures entre 2 tables, d'effectuer des backups (en enregistrant dans le flux XML la structure de la table et son contenu).
Le tutorial comporte de nombreux exemples illustrants les différentes (et nombreuses) fonctionnalités de cette classe.
Voir le tutorial complet (en Anglais)
SugarCRM lance une nouvelle version beta de sa solution OpenSource de gestion des relations clients : Sugar 5.0
Développé en PHP, SugarCRM est un CRM (Customer Relationship Management) couvrant la gestion des services clients, marketing, ventes et gestion de projets qui a su s'imposer ces derniers mois comme une alternative majeure aux solutions du marché.
Cette nouvelle version introduit un large éventail de nouvelles fonctionnalités, parmi lesquelles :
Implémenter un formulaire sur un site Internet est relativement simple et s'avère indispensable pour récupérer des informations saisies par l'utilisateur. Mais ces formulaires sont souvent la source de nombreux problèmes de sécurité.
Pour sécuriser un formulaire il faut considérer que n'importe quel champ de saisie doit obligatoirement faire l'objet de controles PHP. Bien que le javascript apporte un plus au niveau de l'ergonomie, celui-ci peut toujours être désactivé via le navigateur et n'est, par conséquent, pas fiable pour controler les saisies. Il est donc primordial d'effectuer ces controles en PHP.
En second lieu, vous devez apprendre a maîtriser certaines fonctions standards de PHP :
Greg Beaver a publié hier la nouvelle release de phar.
Il s'agit donc de la version 1.2.1 une extension php qui permet la création de système de fichiers complets à partir d'un simple fichier .Une archive auto-extractible(able ?) quoi.
Le bootstrap écrit en php permet l'autoextraction comme si il s'agissait d'un fichier exécutable ou plutôt un script shell.
La documentation sur son utilisation at sur la création d'archive phars est sur http://php.net/phar.
Cette version fixes une série de problèmes décrit dans le post précédent de Greg
Marcus a aussi participé à cette vague de correction, surtout sur la config du bootstrap utilisant les paramètres du fichier ini phar.extract_list avec module apache et autres (voir la liste complète).
Greg fini par un appel comme je les aime "looking forward to hearing your stories of using it."
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in test.php on line 2La première fois que PHP affiche cette erreur on reste quelque secondes à regarder fixement l'écran. Il s'agit en réalité du nom du token PHP ::, il est aussi appelé T_DOUBLE_COLON.
Ce code par exemple provoque l'affichage de cette erreur :
Pourquoi un nom aussi bizarre ? Les développeurs de Zend qui travaillaient sur le Zend Engine de PHP 3 étaient israéliens, ils ont utilisés l'hébreu pour désigner ce token.
NEKUDOTAYIM signifie deux point
PAAMAYIM signifie double
Le T est pour token
Malgré le manque de clarté de cette désignation et l'existence de T_DOUBLE_COLON, les développeur de PHP n'ont pas remplacés T_PAAMAYIM_NEKUDOTAYIM. On entendra encore de nombreux développeurs crier « Quoi ???? », incrédule face à cette erreur.
Source : Wikipedia
If you're wondering how much of a hassle it would be to migrate your app / codebase to php5, try the following command line (after having installed the php5-cli package of course):
find . -name "*.php" -exec /usr/bin/php5 -l {} \; | grep -v 'No syntax errors'
It'll show you all the files with syntax errors in it.
SQLite est un petit SGBD (environ 250 Ko) implémentant en grande partie le standard SQL92 et compatible PHP 5.
Contraitement à de nombreux SGBD, SQLite ne reproduit pas le schéma habituel client/serveur mais est directement intégré aux programmes en utilisant des fichiers pour stocker les bases de données.
Jason Gilmore propose sur developer.com un tutoriel expliquant, entre autre, comment utiliser SQLite dans une application PHP 5.
Lire le tutoriel
Site officiel de SQLite
L'équipe de développement de PHP a publié une nouvelle version : la 5.2.4.
Cette nouvelle version corrige près de 120 bogues présent dans la branche 5.2 de PHP. Les corrections apportées concernent l'utilisation de wordwrap, GD, chunk_split, php_openssl_make_REQ, glob, open_basedir... Pour consulter la liste complète des améliorations apportées consultez le changelog.
A noter également, la disponibilité d'un guide de mise à jour de la version 5.2 à partir des versions 5.1 et 5.0.
Télécharger PHP 5.2.4
Changelog 5.2.4
Guide d'installation de PHP 5.2