Une intrusion fulgurante a eu lieu dans les locaux d’Anaska situés en région Parisienne le jeudi 29 Novembre 2007 au matin.
Vers 10h, un troupeau d’une centaine d’elephpants accompagné de leur leader, le maxi elephpant, s’est introduit par la force dans les bureaux et salles de formation de la société pour y prendre place et ne plus en sortir.
Pour le moment, nous ne recenssons aucun blessé mais de nombreux bureaux sont maintenant inutilisables et le stock de livres est inaccessible.
Afin de trouver une sortie à cette crise, la direction d’Anaska a décidé d’offrir un elephpant à toute personne suivant une formation PHP jusqu’au 31 Décembre 2007 (dans la limite des stocks disponibles).
La version française de MemHT 3.4 vient de sortir.
Cette nouvelle version apporte son lot de correctifs et de nouvelles fonctions.
En voici le changelog ( en français :) )
- [New] Nouveaux langages Arabe, Bulgare, Danois, Hollandais, Hongrois, Russe
- [New] Nouvelles options d'enregistrement des utilisateurs:
- Les utilisateurs peuvent s'enregistrer avec ou sans email d'activation
- Les créations de comptes peuvent être modérées (par approbation de l'administrateur)
- [New] Catégories et sous catégories maintenant illimitées dans la section des téléchargements
- [New] Liste des tags complète en page d'accueil
- [New] Restriction des téléchargements au public, utilisateurs enregistrés et/ou groupes
- [New] RSS syndication dynamique
- [New] Nouveau système de statistiques
- [New] Nouvelle structure de la FAQ
- [Fix] Correctifs de sécurité
- [Fix] Correctif argument id dans la page SendNews page
- [Mod] La boite de navigation a maintenant sa propre page dans l'administration
- [Mod] RSS page structure
- [Mod] Mise à jour du plan du site
- [Mod] Modifications mineures
Site officiel français: www.memht-france.com
Proposé par Cyril Levert
After 2 alphas and one beta release, eZ Publish 4 rc1 has been released last week . I'm trying to upgrade but I'm facing an encoding problem . In the meantime, I made a benchmark between eZ Publish 4rc1 with PHP 5.2.5 and eZ Publish 3.10.0 with PHP 4.4.7 on a Debian Etch system using the Dotdeb packages . I also tested the performances of APC , eAccelerator and XCache opcode cache modules in those configurations.
I'm using the recommended configuration for Virtual Host setup of eZ Publish . I wrote this shell script to test performances of eZ Publish.
#! /bin/sh REQUESTS=100 CONCURRENCY=2 TESTS=5 PAUSE_TESTS=90 URL='http://dev.pwet.fr/blog' DATA_LOG_DIR=~/tests/results_php4_blog/ CONF_DIR=~/tests/conf PAUSE_CONF=180 PHP_CONFD=/etc/php4/apache/conf.d/ [ ! -d $DATA_LOG_DIR ] && mkdir -p $DATA_LOG_DIR for ini in $CONF_DIR/* ; do INI_BASE=`basename $ini` echo $INI_BASE DATA_LOG="$DATA_LOG_DIR/$INI_BASE.dat" [ -f $DATA_LOG ] && rm -f $DATA_LOG touch $DATA_LOG # active extension ln -s $ini $PHP_CONFD/$INI_BASE /etc/init.d/apache restart > /dev/null 2>&1 sleep 2 # initialize cache wget $URL -O /dev/null > /dev/null 2>&1 sleep 2 # tests for i in `seq 1 $TESTS` ; do echo " Test $i" ab -c $CONCURRENCY -n $REQUESTS $URL | grep 'Requests per' | tr -s ' ' | cut -d ' ' -f 4 >> $DATA_LOG sleep $PAUSE_TESTS done sleep $PAUSE_CONF rm -f $PHP_CONFD/$INI_BASE /etc/init.d/apache restart done
I've run this shell script with a PHP4 setup (eZ Publish 3.10) and then with a PHP5 setup (eZ Publish 4.0rc1) sharing the same database. The script uses 4 configurations of PHP (no opcode cache, apc, eaccelerator, xcache), for each it makes 5 series of 100 requests with a concurrency of 2 with ab (Apache Benchmark) and it logs the mean number of requests per second. There are pauses between tests. I've run those tests on two pages of this site on a dedicated test server, the first one is the /blog page with view cache et cache-block enabled and the second one is /man/linux but with no view cache and no cache-block at all in order to see how eZ Publish 4 and 3.10 performs on retrieving its cache or on building a page from scratch. The first one makes 6 SQL queries and uses 2 cache-block and its view cache. The second one, without content related caches, makes about 100 SQL queries an displays about 10 XML blocks and 3 dynamic lists.
Without an opcode cache on cached page, eZ Publish 4 is about 10% quicker than eZ Publish 3.10 but with an opcode cache system, the difference is about 50% ! It's interesting to note that with PHP4, eAccelerator seems to be the faster yet , about 10% more than APC or XCache but with PHP5 there's almost no difference (more or less 2%).
In this test, without an opcode cache, eZ Publish 4 is 85% faster than eZ Publish 3.10. And with an opcode, eZ Publish 4 using PHP 5.2.5 is about 150% faster than eZ Publish 3.10 !
No doubt, eZ Publish 4 is really faster than eZ Publish 3.10 and even more with an opcode cache.
I think I'm going to test eZ Publish 4 and 3.10 with apache 1.3 and apache 2.2 and perhaps with different configuration of MySQL 5.0, stay tuned :)
Je viens de publier deux nouveaux addons permettant de tester PHP 6.0-dev et MySQL 5.1.22rc sur WampServer. J’en ai profité pour créer une rubrique dédiée aux dev, beta et rc sur le site de WampServer histoire de ne pas les mélanger avec les versions stables de A M P.
Vous pourrez le trouver sur cette page :
http://www.wampserver.com/addons_dev.php
Bons tests ![]()
Il bien plus agréable pour l'internaute de disposer directement du contenu qui le concerne (langue, navigateur, OS...) plutot que de devoir fouiller le site web pour l'obtenir. Cela améliore son expérience de navigation, et donc l'attrait pour votre site.
Beaucoup d'entre nous se sont habitués à chercher, en arrivant sur un site, s'il n'en existait pas une version dans sa propre langue. On cherche alors où sont les petits drapeaux, les micro-liens avec code de langue sur deux caractères, etc. Et beaucoup d'utilisateurs ne les trouvent pas, et quittent le site immédiatement, faute de pratiquer la langue affichée. Pourtant, quand le contenu d'un site est traduit, le plus gros du travail est fait; pourquoi ne pas l'afficher directement dans la langue spécifiée par l'internaute pour son navigateur ?
Ceci est également valable pour d'autres
préférences. La page de téléchargement de
Firefox par exemple est non seulement traduite dans la langue de
l'internaute, mais la version proposée au téléchargement est celle
correspondant à son système d'exploitation. Tout aussi efficace, la page de bookmarklets pour Del.icio.us
est automatiquement adaptée au navigateur en cours. Ceci est possible grâce aux
données de préférences et d'environnement utilisateur transmises par le
navigateur au serveur web via les en-têtes HTTP.
Outre les préférences de langue, et les particularités eventuelles de l'environnement système d'exploitation/navigateur, il peut être souhaitable de détecter le support de javascript, surtout pour les sites utilisant ajax pour certaines de leurs fonctionnalités. Tout comme le support de flash. La liste est longue, car les possibilités d'HTTP sont encore largement sous-utilisées.
Bien evidemment, il faut garder à l'esprit que ces données ne sont pas fiables, et ne doivent être utilisées que pour définir la version du contenu par défaut, et toujours permettre à l'utilisateur de modifier ces réglages si possible via des liens et des contrôles manuels.
Pour ce qui est de PHP, vous pouvez utiliser un de mes bouts de script ( getting browser language settings with php), ou la classe phpsniff qui semble bien plus complete (pas encore utilisée, je viens de tomber dessus).
eZ Publish 4 est enfin sorti , j'en ai déjà beaucoup parlé lors de la sortie d'eZ Publish 4 Alpha1 , après le eZ Publish Developper Day à Paris et encore hier avec mon benchmark entre eZ Publish 3.10 et eZ Publish 4 avec différentes configurations de PHP. Maintenant il n'y a plus qu'à l'utiliser. Mais surprise intéressante, l'extension eZ Flow annoncée et présentée lors du developper day est intégrée à cette version. J'ai regardé avec attention la vidéo de présentation qui reprend grosso modo la démonstration du 31 octobre; c'est assez impressionnant d'intégration et de facilité d'utilisation reste à voir si ce sera facilement utilisable/intégrable avec ses propres design et templates...
Enfin avis personnel, la version à vraiment attendre est la prochaine stable prévue en début d'année qui marquera l'intégration réelle et profonde des eZ Components ce qui promet des changements beaucoup plus importants et probablement des améliorations dans bien des secteurs (performances, flexibilité, ...).
Pour se connecter à une base de données MySQL avec PHP, il existe trois solutions (ou connecteurs) : mysql, mysqli et PDO.
Ces connecteurs ont tous leurs spécificités et sont apparus au fur et à mesure des évolutions de PHP.
Point commun entre ces trois connecteurs, ils se basent tous sur la bibliothèque libmysql qui fut initialement développée pour les langages C et C++.
Une des grandes nouveautés de PHP 5.3 est l’apparition de la bibliothèque mysqlnd, bibliothèque développée par MySQL spécifiquement pour PHP. Wouhou, ils s’intéressent enfin à PHP, il était temps!
Alors, tout d’abord, il est important de ne pas confondre : mysqlnd n’est pas un nouveau connecteur! Il s’agit d’une bibliothèque utilisée par les connecteurs. Au niveau de l’utilisation il n’y aura donc pas particulièrement de changement, vous continuerez à utiliser mysqli ou PDO au choix.
Mais alors que va apporter cette nouveauté?
Bah tout d’abord, des performances. mysqlnd a été développé spécifiquement pour fonctionner avec PHP et passe donc par le gestionnaire de mémoire du Zend engine. Cela permet d’avoir une meilleure gestion de l’allocation de la mémoire et un gain en terme de cycles CPU. A noter que la directive MEMORY_LIMIT s’appliquera donc maintenant aux connecteurs utilisant cette bibliothèque. Mais le gros point fort vient du système de gestion de la mémoire introduit par mysqlnd.
Pour schématiser, jusqu’ici, lorsqu’on faisait une requête avec MySQL, le jeu de résultat de la requête était stocké en mémoire et chaque fetch que vous faisiez allait taper dans ce jeu de résultat pour créer de nouvelles variables, celles justement renvoyées par votre fetch et utilisables dans votre script PHP (généralement, un tableau). Avec mysqlnd, les copies ne sont plus effectuées, à chaque fetch, vos variables PHP pointent directement sur les adresses mémoire de votre jeu de résultat MySQL à utiliser ce qui évite les doublons et permet donc de grosses économies de mémoire.
ensuite, mysqlnd introduit de nouvelles fonctionnalités. J’ai dit nouvelles? Pardon, le mot n’est peut être pas juste. En effet, dans les “nouvelles” fonctionnalités, il y a tout d’abord les connexions persistantes.
Elles avaient été abandonnées avec le connecteur mysqli pour des problèmes de performances et de stabilité (voir ce post très intéressant : http://www.mysqlperformanceblog.com/2006/11/12/are-php-persistent-connections-evil/).
Apparemment, ces problèmes ont été résolus avec mysqlnd puisque cette fonctionnalité réapparaît. Reste à voir si cela a un véritable intérêt.
Autre nouveauté, des fonctions de statistiques vont être disponibles, statistiques qui vous permettront d’optimiser vos scripts. Ces fonctions ont déjà été intégrées dans mysqli dans la PHP 5.3 : mysqli_get_client_stats(), mysqli_get_connection_stats() ou encore mysqli_get_cache_stat().
Enfin d’autres fonctionnalités sont également introduites comme un système de cache de requête côté client (par client, comprenez PHP, en opposition à MySQL) ou encore l’utilisation de l’API de gestion de flux de PHP (streams).
concernant la licence, mysqlnd est publié sous licence PHP ce qui permet de réintroduire le support natif de MySQL dans PHP 5.3.
Pour le moment, mysqlnd a été intégré aux extensions mysql et mysqli et est en train d’être intégré à PDO.
Enfin voilà, que des bonnes nouvelles pour les habitués du trio AMP!
Pour les besoins d’un projet au boulot, j’ai du faire quelques recherches afin de trouver comment récupérer les contacts des boites msn, yahoo, gmail, et autres… le problème est que sur le net on trouve de nombreux Web service proposant ces fonctionnalités mais tres peu de librairies libres …
Apres de multiples recherches je suis tombé sur plusieurs classes intéressantes, et j’ai donc pensé les rassembler pour en faire un petit paquetage simple d’emploi.
En utilisant le pattern decorator et une petite factory je suis arrivé � faire en sorte de simplifier un maximum son utilisation
class Contacts
{
public static $arr_type = array ('Gmail', 'MSN', 'Yahoo', 'Lycos', 'AOL');
public static function factory ($user, $pass, $type)
{
if (in_array ($type, self::$arr_type))
{
$class = "{$type}Decorator";
return new $class ($user, $pass);
}
else throw new Exception ('Invalide type, utilisez : '.implode (", ", self::$arr_type));
}
}
| Gmail | Le probleme libg110 est corrigé | |
| Yahoo! | Teste réussi avec @yahoo.fr | |
| AOL | Teste réussi avec @aol.com | |
| Lycos | Teste réussi avec @lycos.com | |
| MSN | Teste réussi avec @hotmail.fr @hotmail.com |
NOTE : Gmail, AOL, Yahoo, et Lycos, n’ont pas besoin du suffixe @host.com
Le Mercredi 12 Décembre 2007 aura lieu un séminaire web sur le sujet "Introduction aux architectures de haute disponibilité DRBD pour MySQL".
Ce séminaire sera tenu par Serge Frezefond, Ingénieur avant-vente chez MySQL France à 10h00 pour une durée de 45 minutes suivi de questions-réponses, tout cela via votre navigateur.
Qu'est-ce que DRBD ?
C'est un "bloc device" qui exploite les capacités de réplication synchrone de façon transparente pour l’application, la base de données ou le système de fichiers. Utilisé parallèlement au package open-source Linux Heartbeat, il permet aux architectes de solutions de concevoir une base de données MySQL capable d'exploiter les fonctions de basculement (failover) automatique des ressources après une panne, sous une configuration « hot standby » garantissant la sécurité totale des transactions.
Ce séminaire vous permettra de comprendre comment mettre en place une solution de haute disponibilité en utilisant MySQL et DRBD et ainsi :
- Assurer la haute disponibilité de vos données et la resynchronisation en cas de panne
- Gérer le basculement de l'application et de la base de données
- Réduire vos coûts
Pour vous inscrire, c'est par là
Afin de participer à cette présentation Web vous nécessiterez l'utilisation d'un des navigateurs suivants : voir la liste
Proposé par Clément Péronneaud
Si au lieu d'écrire vos blocs commentaires comme ceci
[php]
<?php
/*
echo 'toto';
*/
?>
Vous faites
[php]
<?php
/*
echo 'toto';
//*/
?>
Il suffit d'ajouter un / devant l'ouverture du bloc pour le réactiver
[php] <?php //* echo 'toto'; //*/ ?>
[php] <?php /*/* echo 'toto'; //*/ ?>
En effet, vous prendrez vite le réflexe en voyant un /*/* que c'est un bloc switchable, alors que face à un /* vous devez aller vérifier la fermeture du bloc
Tiens, ça faisait longtemps...

La prochaine mouture de Windows Server, prévue pour février 2008, comprendra IIS 7. Cette nouvelle version de IIS est censée améliorer les performances avec PHP, notamment grâce à la refonte du module FastCGI.
Une vidéo au format Silverlight, nous détaille l'installation de PHP sur cette nouvelle plateforme ainsi que la configuration de Wordpress. Une bonne initiation pour ceux qui veulent franchir le cap dès 2008.
En plus dans le numéro:
- Google Web Toolkit: AJAX
- Votre PAYPAL sécurisé
- Choisir sa librairie ORM
- Attaques par injection SQL
et aussi
Sur le CD: versions complètes de PHP Rite (d'une valeur de 20$) et ProstoServer (d'une valeur de 150$) avec un nouveu e-book "Plongez au coeur de Python" www.phpsolmag.org/fr
Bonne Lecture!
Proposé par Lukasz Trzak
Lorsqu'on développe une application
ou un composant de manière à pouvoir le réutiliser, il est nécessaire de
pouvoir définir une configuration d'environnement de manière séparée du code.
Cela peut être fait par inclusion d'un fichier se contentant de déclarer un
suite de variables ou de constantes dans le language de l'application (c'est le
cas des fichiers urls.py et settings.py de Django). Mais il est généralement
préférable d'utiliser un format qui puisse être lu et modifié par un
non-programmeur.
A la fois très simple et très largement utilisé, le format INI permet de définir des paires clefs/valeur, éventuellement organisées par sections. Il est suffisamment intuitif pour être modifié par quelqu'un qui n'en connait pas la syntaxe.
C'est le format de configuration de PHP, et une fonction native permet de lire un tel fichier et de récupérer directement les données stockées dans un tableau associatif, à deux dimensions en activant le support des sections.
Python dispose du module ConfigParser, qui supporte une syntaxe un peu plus évoluée.
Le patriarche des formats de structuration et d'échange de données. Plus qu'un format de fichier, XML est une grammaire dont dérivent des zillions de syntaxes, qu'elles soient standardisées ou propriétaires. Très largement utilisé pour la configuration d'application, ce n'est pourtant pas forcément des plus simples à éditer. De plus, il est généralement assez lourd à manipuler en programmation, ce qui n'est pas terrible en termes de performance. Surtout dans le cadre d'une application web, si celle-ci doit lire le fichier à chaque requete...
Si vous avez besoin de données de configuration plus élaborées, notamment s'il vous faut plus de deux niveaux de données ou des textes sur plusieurs lignes, il y a le format YAML. Celui-ci se veut une alternative à XML, qui soit à la fois plus concise (donc plus légère à stocker) et plus lisible pour un être humain. Ce qui en fait un candidat idéal pour des fichiers de configuration. Comme en Python, l'indentation y joue un rôle clef.
Contrairement à INI, il n'est pas supporté nativement par PHP, mais la librairie Spyc permet de convertir ces fichiers en tableaux de données et inversement.
Python dispose de la librairie PyYaml.
On me demande souvent comment configurer les proxy pour PEAR.
Cela se fait très simplement avec la commande pear config-set
pear config-set http_proxy "http://LOGIN:MOTDEPASSE@SERVEUR:PORT"Versions concernées : versions 3.x, 4.0 à 4.0.7 et 4.1 à 4.1.3.
Cette extension est vulnérable aux injections SQL.
Il est cependant nécessaire d'être loggué au niveau du backend pour pouvoir exploiter cette faille.
Si vous êtes sur une version 4.1.x, téléchargez la version 4.1.4
Si vous êtes sur une version 4.0.x, téléchargez la version 4.0.8
Lire l'article de PHP Index sur ces nouvelles versions
Lire l'article concernant ce bug
Télécharger ces nouvelles versions
Drupal 4.7.10 et 5.5 sont désormais disponible en téléchargement.
Ces deux versions corrigent une vulnérabilité, classifiée comme "critique", qui pourrait permettre d'effectuer des attaques de type injection SQL par le biais de la fonction taxonomy_select_nodes().
Site officiel
Télécharger Drupal 4.7.10
Télécharger Drupal 5.5
Il y a quelques temps je parlais des ressources francophones autour d'eZ Publish . Aujourd'hui j'ai découvert sur Developpez.com la traduction en français de l'article How to Configure an eZ Publish Site de Peter Keung publié sur eZ.no. La traduction a été faite par Alain Sahli qui tient aussi un blog où il parle d'eZ Publish et d'autres choses.
Je vois de plus en plus de mentions d'eZ Publish par ci par là, avec la version 4 d'eZ Publish supportant PHP5 , ce CMS se popularise et c'est plutôt une bonne nouvelle et pour l'occasion même ezpublish-france.fr est sortie de sa léthargie en publiant une (très) courte actualité ...
Typo3 annonce la sortie des versions 4.1.4 et 4.0.8
Attention : Typo3 sort dans la foulée une version 4.1.5 qui corrige un bug important de la version 4.1.4
Principaux changements de la versions 4.1.4 :
Principaux changements de la versions 4.0.8 :
Depuis le 30 Novembre, la version 1.0.3 du Framework développé par Zend est disponible au téléchargement.
Cette version apporte 79 améliorations et fournit quelques ajouts de fonctionnalités :
Un Article d'IBM sur l'utilisation de l'API Google pour accéder aux informations d'un agenda Google.
Parmi les nombreux services en ligne disponibles sur les portails tels que Yahoo! ou Google, cet article publié dans la zone developpeur d'IBM s'intéresse à l'utilisation de l'outil d'agenda de Google. Comme la majorité des services du portail Web, il est possible d'utiliser son agenda via des webservices, permettant ainsi d'afficher sur un site internet personnel les évènements programmés dans son agenda. L'intérêt bien sûr est d'utiliser un outil existant simple d'utilisation et de pouvoir traiter ces données tout aussi facilement grâce à une API riche permettant la récupération, la recherche, l'ajout, la modification d'évènements.
Cet article développe en particulier le traitement des informations renvoyées par les webservices, c'est-à-dire le parsing des flux que ce soit avec DOM, SAX ou SimpleXML et Xpath. Ceux qui ont déjà utilisé ce type de services en ligne savent qu'ils sont tout de même limités en nombre de requêtes quotidiennes et l'article évoque également cet aspect en abordant la problématique du cache.
Source
SugarCRM propose depuis aujourd'hui une nouvelle mouture de son système de GRC. Cette version 5.0 se veut plus puissante, plus sécurisée, elle offre de nouvelles fonctionnalités et surtout propose une nouvelle architecture « A la demande ».
En ce qui concerne les nouvelles fonctionnalités, Sugar 5.0 se dote dés à présent :
L'autre innovation introduite par Sugar 5.0 concerne l'architecture à la demande. Il s'agit en fait d'une architecture "multi-instance" qui permet de maximiser la sécurité, la souplesse et le contrôle. Ainsi, un client dispose désormais de sa propre instance de Sugar. Il peut à sa convenance la mettre à jour ou encore développer de nouvelles fonctionnalités sans polluer les instances des autres clients.
Enfin, pour cette nouvelle version, SugarCRM a également mis l'accent sur le développement d'extensions avec le nouveau référentiel Module Builder. Il permet aux utilisateurs de construire des modules personnalisés et de les partager sur le Sugar Forge ou de les vendre sur le Sugar Exchange.
Sugar 5.0 sur www.sugarcrm.com
Demonstration
Télécharger Sugar 5.0
Sortie de la première version 4.0 pour PHP 5 d'eZ Publish 4.0
eZ systems a annoncé à la fin du mois dernier la sortie de la première version 4.0 stable optimisée pour PHP 5 de son CMS eZ Publish. Avec cette version s'ajoutent le support complet des eZ Components, ainsi qu'une amélioration des performances globales et de l'interface.
Annonce
Plus d'informations
ChangeLog
La nouvelle version de phpBB est officiellement disponible. Cette nouvelle version, baptisée "Olympus" apporte de nombreuses améliorations par rapport à la version précédente, phpBB 2.
En complément, l'équipe de développement a publié un comparatif des fonctionnalités entre "Olympus" et phpBB 2.x, donnant ainsi une vue d'ensemble des améliorations apportées.
Site officiel
Télécharger phpBB 3.0.0
Comparatif phpBB 2.x - phpBB 3
Un article, paru sur le site d'IBM, explique comment parser des fichier RDDL avec PHP.
RDDL (Resource Directory Description Language) est une extension de XHTML qui permet de décrire des ressources. On peut ainsi décrire des liens vers des éléments multimedia (une video, une musique) en précisant le titre, le type de fichier etc.
Grâce à l'extension XML_RDDL, il devient facile de parser un fichier XHTML avec des ressources RDDL et fournir des informations sur les liens. L'article présente les différentes étapes pour utiliser cette extension.
Duane O'Brien vient de publier la 3ème partie son tutoriel de l'utilisation de 3 frameworks PHP : Zend Framework, Symfony et CakePHP.
Ce tutoriel propose de mettre en place une application de gestion d'articles avec les 3 frameworks afin de les comparer. Après avoir expliqué comment intaller les différents frameworks dans la 1ère partie et comment mettre en place la gestion des articles dans la 2ème, cette 3ème partie est consacrée à la mise en place d'un système de gestion de commentaires.
La sortie du la version 6.5.2 d'Ovidentia est enfin effective.
Ovidentia est un gestion de publication de contenu open source et une plateforme collaborative.
Ovidentia vous permet d’intégrer simplement et facilement un environnement de publication sur internet ou un portail groupware (internet, extranet, intranet) pour une entreprise, organisation, communauté…
La version 6.5.2 d'Ovidentia est maintenant disponible sur le site communautaire http://www.ovidentia.org.
Cet outil intègre dans son noyau les principale fonctions suivantes :
- Publication et gestion d’articles
- Publication et gestion de fichiers
- Gestion de FAQs
- Mise en place de forums de discussion
Gestion d’annuaires partagées
- Création et administration d’organigrammes
- Gestion d’agendas personnels partageables, agendas collectif ou agenda de ressources.
- Mise en place de « Délégations » (communautés)
- Workflows d’approbation nominatifs ou fonctionnels (s’appuyant sur un organigramme)
- Gestion des demandes de congés (avec génération des planning de congés, calcul des soldes de congés, RTT, jours fractionnés …)
- Gestionnaire de tâches et de projets.
- Moteur de recherche transversal qui peut s’appuyer sur un moteur d’indexation pour la recherche plein texte sur l’ensemble des fichiers publiés.
- Gestion des utilisateurs, groupes et droits.
- Authentification possible sur LDAP ou Active Directory
- Génération de statistiques et de tableaux de bord sur l’utilisation de l’outil.
- API de développement pour ajout fonctionnel
- Interface et navigation personnalisable (charte graphique et ergonomie)
Installation sur un système Windows ou Linux, s’appuyant sur PHP et MySQL
Proposé par Nicolas Bidault
Entendu aux Galeries Lafayette à l'une des caisses, une vendeuse posait cette question à un collègue.
J'en profite pour vous souhaiter de bonnes fêtes !
Entendu aux Galeries Lafayette à l'une des caisses, une vendeuse posait cette question à un collègue.
J'en profite pour vous souhaiter de bonnes fêtes !
Une nouvelle version, estampillée 1.1.0, du logiciel de suivi de bugs Mantis, est sortie jeudi 20 décembre.
En développement depuis Janvier 2006, cette nouvelle version apporte de nombreux changements. Voici une liste non exhaustive des nouveautés :
Le premier article d'une série consacrée à Xdebug est disponible sur la Zend Developer Zone. Pour rappel, Xdebug est une extension PHP dont le but est de simplifier le débuggage des scripts.
Ce premier article fait office d'introduction. Il est tout d'abord expliqué comment installer et activer cette extension sur un système Unix et sur Windows. On nous présente ensuite plusieurs optimisations simples qu'il est possible d'obtenir facilement :
Les EléPHPants PHP viennent de découvrir Noel. Pour cette année 2007, ils ont pu découvrir les arbres de Noel, remplis de girlandes et de boules...
Ils ont eu la chance que le Père Noel a apporté quelques briques à monter et n'ont pas perdu de temps... En réalisant quelques montages... comme PHP
Pour visualiser la galerie complete... Cliquez ici
Le framework PHP Copix est disponible dans sa version 3.0.2 en téléchargement !
Merci au Père Noël qui nous apporte ici une nouvelle version stable accompagnée d'un lot de nouveautés qui raviront la plus part des utilisateurs du produit.
La prise en charge des date / datetime et time dans les DAO pour les drivers MySql et Sqlite est aujourd'hui complètement opérationnelle, CopixSoapClient vous facilitera la vie lorsqu'il vous faudra appeler des webservices et une nouvelle série de tutoriels (news) aidera les nouveaux utilisateurs à mieux comprendre Copix autours d'un cas concret d'utilisation pas à pas.
L'équipe va maintenant se concentrer sur la finalisation de la version 3.1 qui sera disponible dans à peine un peu plus d'un mois, avec comme évolution majeure le système de formulaire complètement finalisé.
Un grand merci à tous les contributeurs, utilisateurs, traducteurs et rédacteurs qui font de Copix un projet encore plus complet et motivant !
http://www.copix.org (site officiel)
http://www.copix.org/index.php/wiki/Telechargements (téléchargements)
Proposé par Gérald Croës
IBM propose une utilisation du Zend Debugger dans ce tutorial.
Disponible depuis mi-novembre sur le site d'IBM, ce tutorial a pour but de présenter à travers un exemple bien détaillé l'utilisation du Debugger de Zend. Outil bien connu et indispensable sous bon nombre de langages de programmation, il est toutefois bien moins populaire pour PHP où les développeurs se satisfont bien souvent d'un debuggage "à la main". Néanmoins si cela peut vous simplifier la vie et que vous êtes intéressé par l'acquisition d'un tel outil, le tutorial vous guidera dans l'utilisation des fonctions de bases du debugger de Zend.
Vous aurez également droit en prime à un petit cours d'histoire en guise d'introduction sur l'origine du mot "bug".
Lire cet article
Sur le même sujet voir cet autre article de DevZone introduisant Xdebug.
Cela fait maintenant un mois que l'extension FastCGI est officiellement disponible pour IIS 6.0. Il est temps de faire un point sur cette nouvelle fonctionnalité du serveur web de Microsoft et de l'intérêt pour la communauté PHP.
Qu'est ce que FastCGI ?
FastCGI est une interface créée au milieu des années 90 permettant la communication entre un serveur web et des logiciels indépendants. Son intérêt est qu'elle n'utilise qu'un seul processus pour exécuter plusieurs requêtes contrairement à l'interface CGI qui crée un processus pour chaque requête à effectuer. Très peu utilisée pendant longtemps, cette extension voit sa popularité augmentée depuis quelques années seulement.
L'intérêt pour PHP
Jusqu'au support de FastCGI, il n'y avait que très peu de moyens d'utiliser PHP sur un serveur IIS. Les méthodes les plus populaires sont l'utilisation des filtres ISAPI ou de PHP en CGI mais les performances sont mauvaises ou la stabilité du serveur est médiocre.
L'utilisation du module FastCGI, validée par Zend et testée depuis un an par plusieurs partenaires de Microsoft, est plus performante que ces deux solutions et semble être tout à fait stable. D'après Andi Gutmans, CTO de Zend, les performances seraient d'ailleurs comparables à celles que l'on obtient sur un serveur Unix.
Au-delà de l'aspect technique, l'arrivée du module FastCGI fait de PHP une alternative performante dans le choix d'un langage dynamique pour un serveur IIS.
Installer FastCGI et PHP sur un serveur IIS
Le principe d'installation est assez simple. FastCGI est disponible sur la forme d'un programme d'installation automatique comme on en trouve souvent pour Windows. Il suffit ensuite de télécharger et de dézipper une des versions de PHP précompilées disponibles sur le site officiel et d'indiquer à IIS qu'il doit utiliser PHP avec FastCGI.
Officiellement l'extension FastCGI est disponible pour IIS 6.0 mais il est également posssible de l'utiliser sur Windows Server 2008 avec IIS 7.0 où elle sera directement intégrée.
Une vidéo sur le site TechNet de Microsoft montre comment configurer PHP sur un serveur IIS 7 en utilisant FastCGI : Installing PHP Applications on IIS7
Pour en savoir plus :
La version 4.6.3 du CMS Mambo est sortie hier. Cette nouvelle version n'apporte pas de grande nouveauté, mais quelques bugs ont été corrigés ainsi que des failles de sécurité au niveau de l'envoie de mail, de l'interface de sélection de template et des failles de type XSS au niveau de l'administration.
Créé en 2001, Mambo est un système de gestion de contenu bien connu des amateurs de CMS. Grâce à cette expérience, il est réputé stable et permet de gérer facilement un petit site personnel ou un site professionnel complet et dynamique.
Hey, this is a post written in english. Handle with care 
I've just released an alpha version of a new plugin for the Symfony framework to use the brand new Amazon SimpleDB service : sfAmazonSimpleDBPlugin. This plugin is in an alpha state but provide a clean and Symfony-compliant API to handle and query your SimpleDB database, if you have the luck to have an account.
The purpose of SimpleDB is to provide simple and efficient data storage through a webservice. You can find billing policy on their website.
I've mainly used the PHP5 library provided by Amazon (API documentation available), but I thought some operations were a bit complicated.
For example, with the official client, to insert a row in a table you have to do something like this :
<?php require_once ('Amazon/SimpleDB/Model/ReplaceableAttribute.php'); $domainName = 'MyStore'; $itemName = 'Item_01'; $attribute1 = new Amazon_SimpleDB_Model_ReplaceableAttribute(); $attribute1->withName('Category')->withValue('Clothes'); $attribute2 = new Amazon_SimpleDB_Model_ReplaceableAttribute(); $attribute2->withName('Subcategory')->withValue('Sweater'); $attribute3 = new Amazon_SimpleDB_Model_ReplaceableAttribute(); $attribute3->withName('Name')->withValue('Cathair Sweater'); $attribute4 = new Amazon_SimpleDB_Model_ReplaceableAttribute(); $attribute4->withName('Color')->withValue('Siamese'); $attribute5 = new Amazon_SimpleDB_Model_ReplaceableAttribute(); $attribute5->withName('Size')->withValue('Small'); $attribute6 = new Amazon_SimpleDB_Model_ReplaceableAttribute(); $attribute6->withName('Size')->withValue('Medium'); $attribute7 = new Amazon_SimpleDB_Model_ReplaceableAttribute(); $attribute7->withName('Size')->withValue('Large'); $attributeList = array($attribute1, $attribute2, $attribute3, $attribute4, $attribute5, $attribute6, $attribute7); $action = new Amazon_SimpleDB_Model_PutAttributes(); $action->withDomainName($domainName)->withItemName($itemName)->setAttribute($attributeList); invokePutAttributes($service, $action);
With the Symfony plugin, you can do the same with :
<?php $data = array('Category' => 'Clothes', 'Subcategory' => 'Sweater', 'Name' => 'Cathair Sweater', 'Color' => 'Siamese', 'Size' => array('Small', 'Medium', 'Large')); sfAmazonSimpleDBClient::getInstance()->selectDomain('MyStore')->putAttributes('Item_01', $data);
Personnaly I prefer the shorter syntax but it's mainly matter of taste here. In a future release, I'll try to also provide a backend module to handle the databases.
Last but not least, the plugin API is entirely unit tested. You can find the test suite here.
I hope you'll find this plugin somewhat useful for your Symfony projects 
Edit : The author of the official Amazon PHP library sent me a mail to clarify a point : there's an alternative syntax available, array based, to put attributes:
$action = array ( "DomainName" => $domainName, "ItemName" => $itemName, "Attribute" = > array( array ("Name" => "Category", "Value" => "Clothes"), array ("Name" => "Subcategory", "Value" => "Sweater"), array ("Name" => "Name", "Value" => "Cathair Sweater"), array ("Name" => "Color", "Value" => "Siamese"), array ("Name" => "Size", "Value" => "Small"), array ("Name" => "Size", "Value" => "Medium"), array ("Name" => "Size", "Value" => "Large")) ); $service->putAttributes($action);
So next step for me, I'd like to ORMize all this to be able to do some pretty things like:
$product = new Product(); $product->setCategory('Clothes'); $product->setSubcategory('Sweater'); $product->setName('Cathair Sweater'); $product->setColor('Siamese'); $product->setSize(array('Small', 'Medium', 'Large')); $product->save();
Not very hard to do but I wonder if I will be able to avoid code generation (yurk)...
Lu sur la page d'un framework MVC
"Closed source applications are generally more secure, by limiting access to the original source we reduce the ability to have [it] exploited."
J'ai de sérieux doutes quand au bien-fondé d'une telle remarque. La citation suivante illustre bien le contre-argument
As a cryptography and computer security expert, I have never understood the current fuss about the open source software movement. In the cryptography world, we consider open source necessary for good security; we have for decades. Public security is always more secure than proprietary security. It's true for cryptographic algorithms, security protocols, and security source code. For us, open source isn't just a business model; it's smart engineering practice.
Bruce Schneier in Crypto-Gram Newsletter, http://www.schneier.com/crypto-gram-9909.html
L'idée est que la sécurité est bien meilleure lorsque de nombreuses personnes peuvent analyser les mécanismes utilisés or, dans le cas de code propriétaire, le nombre de paires d'yeux conduisant une analyse est bien moins important. La conclusion logique est que la sécurité est moindre.
Cela n'a rien de bien nouveau en soi mais je suis surpris que l'on puisse encore lire de tels arguments.
Je me suis aperçu plus tard le site n'a pas vu de mise à jour depuis un an et demi et donne tous les signes d'une mort clinique. L'argument de la meilleure sécurité ne leur a pas réussi apparemment.
Lu sur la page d'un framework MVC
"Closed source applications are generally more secure, by limiting access to the original source we reduce the ability to have [it] exploited."
J'ai de sérieux doutes quand au bien-fondé d'une telle remarque. La citation suivante illustre bien le contre-argument
As a cryptography and computer security expert, I have never understood the current fuss about the open source software movement. In the cryptography world, we consider open source necessary for good security; we have for decades. Public security is always more secure than proprietary security. It's true for cryptographic algorithms, security protocols, and security source code. For us, open source isn't just a business model; it's smart engineering practice.
Bruce Schneier in Crypto-Gram Newsletter, http://www.schneier.com/crypto-gram-9909.html
L'idée est que la sécurité est bien meilleure lorsque de nombreuses personnes peuvent analyser les mécanismes utilisés or, dans le cas de code propriétaire, le nombre de paires d'yeux conduisant une analyse est bien moins important. La conclusion logique est que la sécurité est moindre.
Cela n'a rien de bien nouveau en soi mais je suis surpris que l'on puisse encore lire de tels arguments.
Je me suis aperçu plus tard le site n'a pas vu de mise à jour depuis un an et demi et donne tous les signes d'une mort clinique. L'argument de la meilleure sécurité ne leur a pas réussi apparemment.