Toute l'actualité francophone sur PHP en un seul flux

Mars 2009 – PHP Index: Zend Framework 1.7.6

Une nouvelle version de maintenance du Zend Framework vient de sortir. Elle intègre une petite vingtaine de correctifs allant de la simple modification de la documentation à la correction de bugs au niveau des web services.

Rappelons que la branche 1.7.x du framework, sortie en novembre 2008, prend en charge le protocole AMF d'Adobe (Action Message Format). Elle apporte aussi des améliorations au niveau de l'internationalisation, du transfert de fichiers et une hausse sensible des performances pour le Zend_Loader et le Zend_Controller. Elle intègre également la librairie javascript JQuery dans Zend extra et Zend_Tool dans l'incubateur.

Mars 2009 – PHP Index: CMS Made Simple version 1.5.3 "Arecibo"

Correction de plusieurs bugs, évolution du module de recherche, de l'editeur wysiwyg TinyMCE et du module news

Version 1.5.3 - Arecibo
-----------------------------
- Correction de plusieurs bugs:
- # 2516 les erreurs de script en Javascript listcontent.php (admin).
- # 2706 CreatePagination () ne comporte pas de clé de session.
- # 2915 suppression erreur dans multicontent.php.
- # 2925 Utilisateur n'existe pas dans exemple de contenu.
- # 2940 Longueur du champ Dateformat plus court dans les preferences utilisateur que dans les parametres globaux.
- # 2995 Bug affectation de groupe.
- # 2996 Gestion des langues: chaîne manquante.

- Avis d'erreur dans modform.inc.php.
- Correction d'un problème mineur sur l'autorisation editpref.php.
- Ajout d'une option pour désactiver le wysiwyg pour une page de contenu.
- Correction (espérons-le) du problème avec les pseudo-aléatoire déconnexions quand il y a inactivité dans la section admin.
- Mettez «canonical» dans la logique des modèles par défaut.
- le thème par défaut NCleanGrey, installation sans contenu par défaut.

- Recherche 1.5.3
- # 3034 La recherche de mots dans le footer rend toutes les pages de mon site.
- Maintenant, supprimez des gestionnaires d'événements lors de la désinstallation du module
- Ne retourne pas de resultats pour les pages non recherchable, meme si un resultat est trouvé dans le gabarit.
- Maintenant, les mots d'arret permettent éventuellement l'exclusion d'un module spécifique.

- Demandes qui sont inclus:
- # 1231 Utilisation de uploads/images/logo1.gif défaut au lieu de images/cms/logo1.gif.
- # 2897 Champ Image et Vignette passe dans l'onglet options.
- # 3025 News: nouveau paramètre, action = "détail", qui peut être utilisé pour afficher une entrée spécifique dans le détail en mode direct.
- # 3035 Ajout d'un lien vers la forge dans la partie administration.
- # 3068 Nouveau plugin : page_attr pour le rendement des attributs d'une page.

- TinyMCE
- Ajout du support pour la configuration de la troisième barre d'outils
- Ajout d'une option pour montrer la réalité aperçu des fichiers
- Correction des icônes dans filetype FilePicker
- Mise en oeuvre | comme séparateur dans les barres d'outils
- Correction, force le nettoyage pour le copier /coller
- Correction pour les barres d'outils pour l'utilisation en frontend

- News 2.9.3
- Quelques améliorations de l'onglet articles dans l'admin
- Maintenant, la production d'URL canonique en vue détaillée
- Les modifications apportées aux modèles par défaut
- # 3027 de définition de champ non supprimables lorsque l'entrée est faite en utilisant fesubmit.
- # 2941 (News) Champ Extra non présent en vue détail.
- Ebauche d'articles ne sont pas indexées dans le module de recherche.

Proposé par eric

Mars 2009 – sahid.funraill.org: OOTemplate Oriented Object Template Engine in PHP

Hello,

I'm very excited to present you OOTemplate,
this is a template engine for php5, it use the django template's syntax.
OOTemplate's aims is to simplify the generation of html code in php,
ootemplate has been design to be flexible.

for example if you develop a function "tips of days" in your website
you can use Rand statement; this get a random value in the array
and generate a block contents :

    {% rand tip in tips %}
        <h1>Tips of days</h1>
        <h2>{{ tip.title }}<h2/>
        <p>{{ tip.contents }}<p/>
    {% endrand %}

or if in a form, you check a textarea's balise, for redisplayed contents,
you should escape an input and them use nl2br function for format it.
with ootemplate you can use filters :

    <textare name="body">{{ body | escape | nl2br }}>/textarea>

Want to try, or contribute ?

OOTemplate is currently in development,
needs a bugs reports to be stable, and many other features.
If you are interested of this project,
you can follow his progress on http://code.google.com/p/ootemplate/,
retrieve the source code and report all issues.


Mars 2009 – tigrou/pwet.fr: Au revoir Trac, bonjour InDefero

J'ai installé aujourd'hui InDefero en remplacement de Trac pour la gestion de mes projets personnels. Il y a quelques mois, j'avais installé Trac un peu par dépit ne trouvant pas de logiciel à mon goût (un logiciel simple et léger, multi-projets avec au minimum la navigation dans des dépôts SVN, un wiki et gestionnaire de rapports et si possible en PHP) mais il fonctionnait assez mal (régulièrement j'avais des erreurs sur les pages) et l'utilisation en multi-projets était tellement pénible que j'avais fini par tout mettre dans un seul dépôt SVN...

InDefero est un clone libre de GoogleCode basé sur le framework PHP Pluf et il fournit déjà quasiment toutes les fonctionnalités dont j'ai besoin pour mes projets. La création d'un nouveau projet avec son dépôt SVN est d'une simplicité qui me fait regretter d'avoir utilisé Trac aussi longtemps ! Les seuls défauts que je lui trouve pour le moment sont une interface plus que minimale à l'ergonomie parfois perfectible et le choix de la syntaxe wiki Markdown. Après c'est aussi une question d'habitude, pour le wiki il est vrai que, entre la syntaxe de Mediawiki, TWiki (que j'utilise au travail), Trac et celle-ci, je m'embrouille un peu...

Mars 2009 – Nexen.net: JAXL 1.0.4

Image pour le titre du contenu
JAXL veut dire Just Another XMPP Library, réalisé en PHP et MySQL et sous licence open source
Cette bibliothèque du coté client va vous permettre de communiquer avec le serveur Jabber.
Elle est basé sur le protocole XMPP et très facilement paramétrable pour l'intégrer dans vos applications.

Mars 2009 – PHP Index: PHP 5.2.9

L'équipe de développement de PHP a annoncé le 26 février 2009 la sortie de PHP 5.2.9. Cette version a pour but d'améliorer la stabilité de la branche 5.2.x avec la correction de 50 bugs dont plusieurs concernant la sécurité.

Parmi les correctifs, on notera principalement :

  • Correction d'une faille de sécurité sur la fonction imagerotate().
  • Correction des crashs liés à l'utilisation de chemins relatifs lors de l'extraction d'un zip .
  • Correction du comportement de la fonction explode() pour respecter la limite négative avec les chaînes de caractères vides.
  • Correction d'une erreur de segmentation quand des chaînes de caractères malformées sont passées à la fonction json_decode().

Cette version ne sera probablement pas la dernière avant la sortie de PHP 5.3. D'après Ilia Alshanetsky, une version 5.2.10 viendra probablement corriger les bugs reportés par la communauté PHP.

Sources:

PHP 5.2.9 Release Announcement
ChangeLog

Mars 2009 – PHP Index: [IBM] Utiliser PHP pour convertir Twitter en RSS

Un article sur le site developerWorks d'IBM montre aux développeurs PHP comment utiliser les APIs de Twitter pour extraire les messages de sa propre timeline et de celles de ses amis.

Twitter REST API

L'auteur se concentre particulièrement sur l'API REST de Twitter et expose dans un premier temps les caractéristiques de cette API : les types de requêtes disponibles, les différents codes de statuts retournés lors d'une requête, un exemple de message d'erreur.

Il nous présente ensuite deux méthodes intéressantes de l'API : public_timeline pour récupérer des informations sur un utilisateur et friends_timeline pour récupérer les 20 derniers messages postés par un utilisateur et ses amis. Plusieurs formats de sortie sont proposés : XML, RSS, ATOM et JSON.

twitterlibphp

Plutôt que de requêter directement l'API, l'auteur propose d'utiliser une librairie PHP dédié à Twitter : la twitterlibphp.

Cette librairie contient toute une série de méthodes qui encapsulent les méthodes de l'API Twitter. L'avantage est que tous les processus de connexions, authentification, gestion des erreurs sont simplifiés. Il suffit alors d'inclure la librairie, de s'authentifier et d'utiliser une des méthodes pour obtenir un résultat.

Plusieurs méthodes sont montrées en exemple :

  • La méthode showUser() pour obtenir les informations d'un utilisateur.
  • La méthode getUserTimeline() pour obtenir la timeline d'un utilisateur.
  • La méthode rateLimitStatus() pour contrôler le nombre de requêtes effectués dans l'heure courante (le nombre de requête étant limité à 100 par heure).

Lien vers l'article

Mars 2009 – Nexen.net: Certification PHP : un site

Image pour le titre du contenu
Une initiative de la société Anaska du groupe Alter Way mérite d'être soulignée.
Il s'agit d'une affiche très intéressante, parlant d'un nouveau site internet,  qu'il faut absolument lire car elle concerne la certification PHP.
La seule chose à faire, c'est de cliquer sur le lien ci-dessous

Mars 2009 – Hello Design: PHP Solutions 2/2009

Le nouveau numéro de PHP SOLUTIONS vient de sortir, avec un nouveau article de ma part sur PDO et bien sur de nombreux sujets sont traités :

 

  • Mise en production de PDO...
  • JEU EN PHP...
  • Plates-formes web pour l’e-commerce : comment choisir ?...
  • Référencement naturel d’un site e-commerce...
  • Le référencement internet, la visibilité contre la crise...
  • Développement d’application pour Facebook...
  • Détection des mots en PHP. De l'analyse à l'action...
  • Programmation orientée aspect...
  • PHP & Mashup...
  • Sécurité et PHP...

Pour plus de détails, cliquez ici

 

Mars 2009 – Kamelot Blog: PEAR::Log VS Zend_log

Il y a un peu moins d'un an j'ai testé Pear::Log, ici j'ai voulu comparer mes tests en les réécrivant pour zend_log

En considérant que Zend et Pear sont dans mon include_path

[php]
<?php
include_once('Zend/Log.php');
include_once('Zend/Log/Writer/Stream.php');
include_once('Zend/Log/Writer/Null.php');
include_once('Zend/Log/Writer/Firebug.php');
include_once('Zend/Controller/Front.php');


require_once 'Pear/Log.php';

// FILE
touch('./out.log');
$loggerPearFile = &Log::singleton('file', 
                              './out.log', 
                              'TEST');


$loggerZendFile = new Zend_Log();
$redacteurZendFile = new Zend_Log_Writer_Stream('./out.log');
$loggerZendFile->addWriter($redacteurZendFile);

// DISPLAY
$confDisplay = array('error_prepend' 
                  => '<font color="#ff0000"><tt>',
                     'error_append'  
                  => '</tt></font>');
$loggerPearDisplay = &Log::singleton('display', 
                                 '', 
                                 '', 
                                 $confDisplay, 
                                 PEAR_LOG_DEBUG);


$loggerZendDisplay = new Zend_Log();
$redacteurZendDisplay = new Zend_Log_Writer_Stream('php://output');
$loggerZendDisplay->addWriter($redacteurZendDisplay);
                                 
                                 
                                 
// Null
$loggerPearNull = &Log::singleton('null');

$redacteurZendNull = new Zend_Log_Writer_Null;
$loggerZendNull = new Zend_Log($redacteurZendNull);

// FIREBUG
$loggerPearFirebug = &Log::singleton('firebug', 
                                 '', 
                                 'PHP', 
                                 array('buffering' => true),
                                 PEAR_LOG_DEBUG);
                                 
                                 
$redacteurZendFirebug = new Zend_Log_Writer_Firebug();
$loggerZendFirebug = new Zend_Log($redacteurZendFirebug);

// error_log
 
$loggerPearErrorLog = &Log::singleton('error_log', 
                                  PEAR_LOG_TYPE_SYSTEM, 
                                  'ident');
 //*
// MAIL
// On fixe le sujet du mail
$confMail = array('subject' => 'Important Log Events',
                  'from' => 'from.website@example.com');
$loggerPearMail = &Log::singleton('mail', 
                              'webmaster@example.com', 
                              'ident', 
                              $confMail);


$mail = new Zend_Mail();
$mail->setFrom('from.website@example.com')
     ->addTo('webmaster@example.com');

$writer = new Zend_Log_Writer_Mail($mail);
// On fixe le sujet du mail
$writer->setSubjectPrependText('Important Log Events');

// Only email warning level entries and higher.
$writer->addFilter(Zend_Log::WARN);

$loggerZendMail = new Zend_Log();
$loggerZendMail->addWriter($writer);

 //*/
//*
// Windows
$confWindows = array('title' => 'Sample Log Output');
$loggerPearWindows = &Log::singleton('win', 
                                 'LogWindow', 
                                 'ident', 
                                 $confWindows);
 //*/
//*
// sql
$confSql = array('dsn' => 'mysql://root@localhost/logs');
$loggerPearSql  = &Log::singleton('sql', 
                             'log_table', 
                             'ident', 
                             $confSql);
 


$parametres = array ('host'     => '127.0.0.1',
                 'username' => 'root',
                 'password' => 'localhost',
                 'dbname'   => 'logs');
$db = Zend_Db::factory('PDO_MYSQL', $parametres);
$planDeCorrespondance = array('niveau' => 'priority', 'msg' => 'message');
$redacteur = new Zend_Log_Writer_Db($db,
                                    'nom_de_la_table_de_log',
                                    $planDeCorrespondance);

$loggerZendSql = new Zend_Log($redacteur);


/* Creating a new database connection. /
$confSQLite1 = array('filename'   => 'c:\var\log.db', 
                     'mode'       => 0666, 
                     'persistent' => true);
$loggerPearSQLite1 =& Log::factory('sqlite', 
                               'log_table', 
                               'ident', 
                               $confSQLite1);
$loggerPearSQLite1->log('logging an event' . __LINE__ , PEAR_LOG_WARNING);



 
/* Using an existing database connection. /
 
unset($error);
$db = sqlite_open('c:\var\log.db', 0666, $error);
$loggerPearSQLite2 =& Log::factory('sqlite', 'log_table', 'ident', $db);
$loggerPearSQLite2->log('logging an event ' . __LINE__ , PEAR_LOG_WARNING);
Ajoute les messages dans la table sqlite désignée
 
sqlite_close($db);
 //*/

                                  
                                  
$loggerPearcomposite = &Log::singleton('composite');
 
$loggerZendComposite = new Zend_Log();
$loggerZendComposite->addWriter($redacteurZendDisplay);
$loggerZendComposite->addWriter($redacteurZendFile);
$loggerZendComposite->addWriter($redacteurZendNull);

// va dans les 2 rédacteurs

$loggerPearcomposite->addChild($console);
$loggerPearcomposite->addChild($loggerPearFile);
$loggerPearcomposite->addChild($loggerPearDisplay);
$loggerPearcomposite->addChild($loggerPearWindows);
$loggerPearcomposite->addChild($loggerPearSQL);
$loggerPearcomposite->addChild($loggerPearNull);
$loggerPearcomposite->addChild($loggerPearFirebug);
$loggerPearcomposite->addChild($loggerPearErrorLog);
$loggerPearcomposite->addChild($loggerPearMail);



$loggerPearcomposite->log('Ce message est logué dans tous les éléments du composite PEAR.' . date('c'));
$loggerZendComposite->info('Ce message est logué dans tous les éléments du composite ZF.' . date('c'));


$loggerPearWindows->log('This event will be logged only on Popup.');
// ouvre un popup et affiche tous les messages
 
 
$loggerPearFile->log('Message loggué dans un fichier par pear.');
$loggerZendFile->log('Message loggué dans un fichier par zf', Zend_Log::INFO);
//Stocke  les messages dans un fichier
 
 
$loggerPearDisplay->log('Message envoyé à l\'affichage par pear.');
$loggerZendDisplay->log('Message envoyé à l\'affichage par zf.', Zend_Log::INFO);
//Affiche les messages dans le flux html 
 
 
$loggerPearNull->log('This event will be logged only into the FIELDS OF THE NEPHILIM.');
$loggerZendNull->log('This event will be logged only into the FIELDS OF THE NEPHILIM.', Zend_Log::INFO);
//ne fait rien <img src="/blog/themes/travelogue/smilies/smile.gif" alt=":-)" class="smiley" />
 

$loggerPearFirebug->log('This event will be logged only to FireBug via Pear.');
// Maintenant vous pouvez appeler le logguer
//$loggerZendFirebug->log('This event will be logged only to FireBug via ZF.', Zend_Log::INFO);



$loggerPearSql->log('Message envoyé en base de données par pear.');
$loggerZendSql->log('Message envoyé en base de données par zf.', Zend_Log::INFO);
//Affiche les messages dans le flux html 


$loggerPearMail->log('This event will be logged only by mail.');
// tente d'envoyer un mail (dans mons cas sans smtp ca n'a pas marché)
echo '<hr>out.log:<pre>';
readfile('./out.log');

?>

L'output.

Les 4 premières lignes par les writer display. Ue fois en direct et une fois en composite.

Ensuite ce qui est dans le fichier.

[output]
info: Ce message est logué dans tous les éléments du composite PEAR.2009-03-10T18:38:52+01:00
2009-03-10T18:38:52+01:00 INFO (6): Ce message est logué dans tous les éléments du composite ZF.
2009-03-10T18:38:52+01:00 info: Message envoyé à l'affichage par pear.
2009-03-10T18:38:52+01:00 INFO (6): Message envoyé à l'affichage par zf. 
-------------------------
out.log:

Mar 10 18:38:52 TEST [info] Ce message est logué dans tous les éléments du composite PEAR.2009-03-10T18:38:52+01:00
2009-03-10T18:38:52+01:00 INFO (6): Ce message est logué dans tous les éléments du composite ZF.2009-03-10T18:38:52+01:00
Mar 10 18:38:52 TEST [info] Message loggué dans un fichier par pear.
2009-03-10T18:38:52+01:00 INFO (6): Message loggué dans un fichier par zf

Mars 2009 – Nexen.net: PHP 5.2.9-1

Image pour le titre du contenu
L'équipe PHP annonce la verison PHP 5.2.9-1 pour les possesseurs de Windows.
Cette version met l'accent sur la fixation d'une faille de sécurité mis en place par la bibliothèque cURL (CVE-2009-0037).
S'il vous plaît noter que le cURL liés fonction est désactivée quand open_basedir ou safe_mode activé.
Note: Seuls les possesseurs de Windows sont touchées.

Mars 2009 – Nexen.net: CodeLoster 3.0

Image pour le titre du contenu
CodeLoster est un éditeur IDE gratuit orienté PHP . La particularité cet IDE concerne une utilisation orienté CMS.
En plus des fonctions HTML, Javascript, CSS et PHP, SQL et même un débugger, mais le plus concerne l'ajout de plug-in pour
  • Joomla
  • Smarty
  • Drupal
  • Wordpress

Avec cet outil, vous pourrez développer et utiliser les CMS plus facilement

Mars 2009 – Nexen.net: 4ème édition du Concours TopDev

Image pour le titre du contenu
Le 21 mars prochain débutera la 4ème édition du concours de programmation TopDev Multi-langages (dont PHP)
Ce désormais "classique" concours est ouvert aussi bien aux étudiants qu'aux professionnels.
Mais pour les personnes qui souhaitent participer et connaître le thème, il est important de s'inscrire dès maintenant

Mars 2009 – Rom's blog: Solution Linux 2009

Les 31 mars, 1 et 2 avril aura lieu le salon Solution Linux à Porte de Versailles.
Pour cette occasion, le groupe Alter Way que ma société (Anaska) a rejoint aura un grand stand sur lequel seront organisées une vingtaine d’ateliers autour de PHP (ZF, préparation à la certification, nouveautés de PHP 5.3), MySQL, BI, etc…

alterway Solution Linux

alterway Solution Linux

Je serais personnellement présent pendant ces trois jours sur le stand, n’hésitez pas à passer me faire un petit coucou.

Mars 2009 – Nexen.net: Google Summer of code 2009 est ouvert

Image pour le titre du contenu
Le Google Summer of code (GSoC) 2009 est lancé. Comme les autres années, PHP va prendre part à cet évènement.
David Coallier (Président de PEAR et membre de PHP Irlande) a regroupé les premières idées et bien sur tous les développeurs sont invités à en soumettre d'autres touchant PEAR, PECL et PHP sur la page GSoC 2009 du Wiki PHP.

Mars 2009 – Nexen.net: Débugguer avec FirePHP et Firebug

Image pour le titre du contenu
Lors de la réalisation d'un site internet ou d'une page web, les développeurs sont souvent confrontés à corriger des erreurs. Une manière rapide concerne d'utiliser les fonctions PRINT ou ECHO en PHP.
Depuis de nombreuses années, des nouveaux outils sont apparus pour faciler la recherche d'erreurs. Le blog devBlog Juozas propose d'utiliser FirePHP et Firebug.

Mars 2009 – Nexen.net: PHPmp3

Image pour le titre du contenu
PHPmp3 est un nouveau CMS réalisé en PHP et MySQL, sous licence de son auteur. Il est orienté pour vous permettre de gérer vos propres musiques et vidéos personnelles qui sont libres de droits.
Cet outil va vous permettre de communiquer avec les sites de contenu multimédia comme YouTube, Deezer, Allyrics...
En un mot, il va vous aider à tout ranger et va vous faciliter les recherches comme vous le souhaitez

Mars 2009 – sahid.funraill.org: IS UTF8 function in PHP

Fonction is_utf8 en PHP

Cette fonction vient du site php.net
elle est tirée d’une implémentation perl de http://www.w3.org/International/questions/qa-forms-utf-8.en.php si ça peut servire je la colle ici

[code lang="php"]
<?php
/**
* Returns true if $string is valid UTF-8 and false otherwise.
*
* @since 1.14
* @param [mixed] $string string to be tested
* @subpackage
*/
function is_utf8($string) {

// From http://w3.org/International/questions/qa-forms-utf-8.html
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs', $string);

}
?>
[/code]

Mars 2009 – Nexen.net: Outils qualités pour PHP

Image pour le titre du contenu
Sebastian Bergmann propose à partir de son blog de faire un point sur les outils pour assurer une bonne qualité de votre code PHP.
Il montre comment mettre en place et utiliser :
  • PHP code sniffer
  • PHPmd
  • phpcpd
  • php depend
  • phpunit

Mars 2009 – Nexen.net: Actualité de développement PEAR, edition 240

Image pour le titre du contenu

16 paquets ont été mis à jour cette semaine :
PEAR est la bibliothèque de composants PHP.

 

 

Mars 2009 – Nexen.net: Actualité de développement PECL, edition 237

Image pour le titre du contenu
8 paquets ont été mis à jour cette semaine :
  • ibm_db2 : interface pour IBM DB2
  • geoip : Indique la localisation géographique d'une IP
  • wbxml : conversion WBXML vers XML
  • uploadprogress : suivi des téléchargements de fichiers type Ajax
  • spidermonkey : JavaScript engine for PHP
  • mongo : Mongo Database Driver
  • selinux : SELinux binding for PHP script language
  • markdown : a fast Markdown parser
PECL est la bibliothèque d'extensions C de PHP.

 

 

Mars 2009 – sahid.funraill.org: Petition for php support on app engine

Support de PHP dans Google App Engine

Une petition de Google pour savoir qu’elle est le prochain runtime supporté par app engine.


http://i-want-php.appspot.com   je croise les doigts :)

Mars 2009 – Nexen.net: Test avec PHP

Image pour le titre du contenu
Lors de la réalisation de pages Web, de nombreux moyens existent pour être sur du bon fonctionnement de vos pages internet. Cependant, la mise en route de tout ceci, peut ralentir son utilisation à cause de manques d'aides ou d'informations.
Gabor Szabo a décidé de réaliser une série d'articles pour permettre à tous, l'utilisation de différents moyens pouvant exister.
Actuellement, son choix s'est orienté sur l'utilisation de SimpleTest

Mars 2009 – Kamelot Blog: Config Zend & Pear

Zend_Config et Pear::config sont conçus pour simplifier l'accès et l'utilisation des données de configuration dans les applications. Ils fournissent une interface utilisateur basée sur des propriétés d'objets imbriquées. Les données de configuration peuvent venir de sources variées supportant une organisation hiérarchique des données.

Actuellement Zend_Config fournit des adaptateurs pour les données de configuration qui sont stockées dans des fichier textes avec Zend_Config_Ini et Zend_Config_Xml.

De son coté Pear::config propose Apache, GenericConf, IniCommented, IniFile, PHPArray, PHPConstants, XML.

Je ne suis pas encore à l'aise ni avec l'un, ni avec l'autre.

Ce qu'il me faut c'est

  • une possibilité de gérer plusieurs fichiers qui regroupent "sémantiquement" les valeurs de configuration.
  • C'est fichiers doivent être administrables avec auteur et versionning des modifications.
  • Il faut une gestion de staging.
  • Il faut un éditeur de config auto généré.
  • un cache transparent qui évite un reparsing des fichiers.
  • Une possibilité d'overider une valeur au niveau applicatif.

Mars 2009 – Nexen.net: Le Web a 20 ans

Image pour le titre du contenu
Que le temps passe vite... En plus vous utilisez le Web presque tous les jours, si ce n'est tous les jours...
Mais il est important de le souligner que le Web fête ses 20 ans en 2009.
Depuis la toute première page internet, à nos jours avec les nombreux langages qui sont apparus comme PHP et aussi les bases de données comme MySQL.
Le site Echos du Net, en consacre quelques lignes qu'il faut consulter.

Mars 2009 – Nexen.net: Gérer les erreurs MySQL en PHP sans or die

Image pour le titre du contenu
Depuis que le langage PHP, de nombreuses documentations et sources exemples montrent de gérer les erreurs du éxécutions ou fonctions avec une base de donnée (comme MySQL) avec « or die »
Mais les techniques ont évolués, et ils existent d'autres moyens de gérer les erreurs en générales.
Le site « Alsacréations » montrent quelques techniques comme :
  • Know your enemy
  • Retour aux sources
  • La POO
  • Utilisation de PDO

Mars 2009 – PHP Index: SPIP 2.0.6

Un bug concernant l'apparition d'erreurs 404 sur les urls de type « spip.php » a poussé l'équipe de SPIP à sortir la version 2.0.6.

Attention : cette version provoque un changement dans la base de données.
N'oubliez pas une fois les fichiers téléchargés de vous rendre dans la partie privée de SPIP (votresite.com/ecrire) en tant qu'administrateur, afin de lancer la mise à jour de votre base.
Ne vous affolez pas, ce changement de base ne présente aucune modification fonctionnelle. Il s'agit juste d'une optimisation liée au plugin fulltext en cours de développement : http://trac.rezo.net/trac/spip/changeset/13833

Télécharger cette version

Mars 2009 – Nexen.net: Mozilla Labs Café :: Paris

Image pour le titre du contenu
Le vendredi 27 mars 2009 à la cantine aura lieu une réunion d'information organisé par Mozilla. Ce sera une très bonne occasion de les rencontrer et voir les nombreux projets actuels et futurs quelques jours avant le salon « Solution Linux »
Un communiqué officiel est disponible et réservé aux personnes qui s'inscrivent.

Mars 2009 – Glagla.org: Un modeste conteneur de paramètres en PHP5

Voici un code que j’utilise depuis un moment et que je viens d’introduire récemment dans un projet. L’idée est de proposer à certaine classe de mon projet un conteneur de paramètre flexible et facilement utilisable par les développeurs. <?php /** * @author omansour */ class ParameterHolder {   private $parameters=array();   /** * set un parametre, attention la [...]

Article original publié sur Glagla Dot Org. Tous droits réservés.

Un modeste conteneur de paramètres en PHP5

Mars 2009 – Nexen.net: MySQL participe au GsoC 2009

Image pour le titre du contenu
Tout comme PHP, MySQL participera pour la 3ème fois au Google Summer of Code 2009
Elle est ouverte à tous mais si vous désirez participer auprès de la communauté MySQL, déjà quelques orientations ont été définies (cluster, proxy, sandbox, connecteur ODBC...)

Mars 2009 – z-f.fr: PHP 5.2.9 est sortie, des bugs corrigés

Forum: Brèves
Auteur: miboo
Écrit le: Thu, 12 Mar 2009 13:36:09 +0100
Dernier message: Thu, 12 Mar 2009 13:36:09 +0100

Mars 2009 – PHP Québec: 4/2 19:00 Rencontre PHP Québec 2 avril

En première partie, Raphaël Desbonnet vous propose une présentation sur l’utilisation du générateur de Wsdl de l’IDE Zend Studio. Afin de créer un web service à partir d'une classe outil existante. L'écriture du fichier WSDL est souvent problématique et Zend Studio apporte une solution viable...

En deuxième partie, Morgan Tocker présentera "Quick wins with third party patches for MySQL". There have been a number of really cool features for MySQL that have been developed recently - and a number of them haven't come from MySQL/Sun Microsystems.

Date : 2 avril 2009
Heure : 19h00

Lieu : École de technologie supérieure, Montréal
Salle : B-1706
Metro: Bonaventure
Carte : http://www.etsmtl.ca/zone2/enbref/rendre.html

Si vous le souhaitez, confirmez votre présence sur :
Facebook: http://www.facebook.com/event.php?eid=57356984450
Upcoming: http://upcoming.yahoo.com/event/2140154/

Vous aimeriez faire une présentation ou vous avez un sujet à proposer pour une prochaine rencontre? Veuillez contacter les organisateurs: board@phpquebec.com

Prochaines activités:
- 2 au 3 mai: codeFest 3.0
- 7 mai: rencontre mensuelle

Mars 2009 – sahid.funraill.org: MVC – Router URLs, or URLs dispatcher with PHP

MVC – Mettre en place un routeur URLs en PHP

Des URLs élégantes sont un des détails importants au niveau de la qualité d’une application Web.
On connaît tous rewrite d’apache pour gérer ses urls,
mais dans cet article je vous propose de voir une solution parmi d’autres pour gérer de belles urls via PHP.
Vous pouvez lire cet article intéressant du W3C écrit par Tim Berners-Lee W3C Cool URIs don’t change

Donc pour notre routeur, nous avons besoin d’un fichier de configuration,
celui-ci possède les règles nécessaires pour faire correspondre une url en particulier avec un controleur.


[*]
url       = "/hello.html";
script  = HelloWorld
type    = static

Le code présenté sert d’illustration, et pourra bien entendu être amélioré.
il ne faut pas aussi oublier d’activer le mod rewrite d’Apache2 et faire passer toutes les urls reçues dans l’index.

RewriteEngine On
RewriteRule ^.*$ /var/www/index.php [NC,L]


prettyurls.conf

Le fichier prettyurls.conf est utilisé pour stocker nos urls, son format est assez simple
et pourra facilement être agrementé de nouvelles fonctionnalités.

  • url : la pattern de l’url � chercher
  • script : le nom du script ou controleur � charger
  • type : le type de pattern (static|regex)


[*]
url     = /;
script = Home;
type   = static;

[category]
url     = "/categories/.*-([0-9]+).html";
script = Category;
type   = regex;

[404]
url     = "/.*";
script = NotFound;
type   = regex;


Le moteur du routeur d’url

Dans un premier temps on enregistre dans la variable $request
l’url issue de la requête HTTP sans ses paramètres.

Ensuite on charge notre fichier de configuration prettyurls.conf via la fonction,
parse_ini_file (), les configurations sont retournées sous la forme d’un tableau associatif.

$request     = preg_replace ('/^(.*)\?.*/', '$1', $_SERVER['REQUEST_URI']);
/** examples */
$request     = '/categories/eh-coco-1.html';
$request     = '/';
$request     = '/categories/eh-coco-1.html';
$request     = '/notfound/123456';

/** load prettyurls */
$pretty_urls = parse_ini_file ('prettyurl.conf', true);



Le tableau est parcouru via une boucle foreach,
� chaque itération on vérifie le type d’url recherché, en fonction de celui-ci on teste la validité du pattern associé.

$is_ok   = false;
$matched = array ();

foreach ($pretty_urls as $bit)
  {
    switch (@$bit['type'])
      {
      case 'regex':
        preg_match ('@'.$bit['url'].'@', $request, $matched);
	if (!empty ($matched))
          $is_ok = true;
	break;

      case 'static':
	if (strcasecmp ($request, $bit['url']) === 0)
          $is_ok = true;
	break;
      }

    /** url has been matched */
    if ($is_ok)
      {
       	$controller = $bit['script'];
	break;
      }
  }

//FrontController::load ($controller, $matched);

Mars 2009 – Hello Design: La fete du libre

Voici quelques jours, avec l'arrivée du printemps... Le libre fête aussi son printemps...

Différents rendez-vous sont prévus un peu partout en France. April regroupe l'ensemble des villes qui participent (Pour connaître la liste... Cliquez ici)

De nombreux thèmes et sujets sont prévus : bureautique, graphique, internet (et peut etre PHP)... Cela dit, je serais présent sur les Villes Orsay et les Ulis se trouvant dans le 91 (Essonne)

Mars 2009 – Nexen.net: Etre en course

Image pour le titre du contenu
PHP Solution propose dans son nouveau numéro 2/2009 de rester dans la course aux connaissances concernant le E-commerce et son référencement.
Cependant si vous ne souhaitez réaliser d'autres projets qui pourront être utiliser avec toutes sortes de bases de données comme PDO, vous pourrez lire un article vous expliquant sa mise en production.
Pour connaître l'ensemble des articles, consultez le sommaire

Mars 2009 – Nexen.net: Construire un super nouveau scroll

Image pour le titre du contenu
Le site Nettuts.com ont décidé de publier une série d'articles vous permettant de combiner PHP, simplePie et jQuery
Pour commencer cette nouvelle série, le tutorial va vous montrer comment réaliser un scroll widget pour votre site web et vous verrez que c'est très facile de combiner le tout.
La description se fait en douceur avec un exemple vidéo, et comme ceci, vous ne serez pas obligé de réaliser ce type d'animation avec des langages spécifiques.

Mars 2009 – Apprendre-PHP.com: Symfony Live les 11 et 12 juin 2009 à Paris

En partenariat avec l'AFUP, l'agence Sensio, créateur et sponsor officiel du framework Symfony, organise deux jours de conférences et de rencontres dédiées à l'écosystème du framework symfony et de PHP. Cet évènement intitulé pour l'occasion Symfony-Live est le premier du genre en France...

Mars 2009 – tigrou/pwet.fr: Les performances d'eZ Publish ?

Est ce que les problémes de performance ont bien été corrigé ? voila le sujet d'un commentaire de abhunguru sur un des billets consacrés au Planet eZ Publish.fr ; commentaire qui fait référence à deux billets de Pierre Jean Duvivier à propos de l'expérience eZ Publish chez Edipresse et du passage à Drupal pour résoudre plusieurs problèmes. Il y'a d'autres billets du même auteur sur le sujet dont un ou j'avais laissé un commentaire. Les questions de performances des applications web est un vaste sujet, je vais essayer de pas faire trop long.

Première chose, les informations fournies dans ces billets sont assez confuses voire inexactes (voir le paragraphe intitulé eZpublish ré-invente la compilation en PHP par exemple), je pense qu'il s'agit de la vision non technique de problèmes techniques, en fait ce qui ressort avant tout, c'est la frustration de l'auteur. Ensuite, la comparaison brute des chiffres Drupal / eZ Publish est complètement biaisée. Comparer des installations eZ Publish 3.8 utilisant PHP4 avec des installations de Drupal utilisant probablement PHP5, ce n'est pas très sérieux ! eZ Publish 4.0 (avec PHP5) est 2 fois plus rapide qu'eZ Publish 3.10, alors par rapport à eZ Publish 3.8... Je connais mal Drupal, donc je ne parlerai donc que d'eZ Publish.

Bref, en essayant de démêler tout ça, l'auteur dénonce finalement deux problèmes :

  1. Une architecture technique complexe en raison des mauvaises performances supposées du CMS
  2. Des difficultés de développement et d'évolution du/des sites.

Architecture, performances...

Avec une estimation à la louche, 500 000 pages vues par jour correspond à moins de 30 pages / secondes en pointe, un nombre certes respectable mais qui ne donne jamais que 8 pages / secondes sur chacun des 4 frontaux qui étaient d'après les articles des bi-Xeon quadcore ! Par expérience, la plupart du temps la cause de ce genre de problèmes est souvent une ou des énormités de configuration au niveau système ou au niveau applicatif. D'ailleurs dans ce cas, je me pose la question de la pertinence d'héberger plusieurs sites sur la même grosse plateforme plutôt que de séparer chaque site sur sa propre plateforme plus légère ?

Mais tout n'est pas 100% blanc ou 100% noir ; la version 3.8 d'eZ Publish était la première à implémenter le mode cluster tel qu'on le connait actuellement (tout ce qui est relatif aux contenus est dans une base de données) et il est clair que ce mode souffrait de défauts de jeunesse importants. Ce mode a été grandement amélioré au fil des versions, en version 3.10 et 4.0, il me semble que ça fonctionne bien et la version 4.1 apporte encore des améliorations importantes avec notamment le Stale cache, Charles-Christian Croix en parle également. Il y a aussi un excellent fil de discussion sur le mode cluster d'eZ Publish et comme suggéré par Bertrand dans ce fil, un article référence sur les architectures de ce type serait le bienvenu ! Donc pour revenir à la question initiale, au niveau des performances, il est clair que la version actuelle d'eZ Publish fonctionne mieux (le contraire serait malheureux).

Le développement

Le second point soulevé par l'auteur est la difficulté de développement et de maintenance (et la maintenance je connais !). Là encore tout n'est pas blanc ou noir. eZ Publish est un outil assez complexe, c'est un fait mais ce n'est pas insurmontable ! Il semble qu'il y ait eu un mélange entre mauvaises pratiques et réels problèmes techniques. Exemple, le fait de mettre des identifiants dans les fichiers de configuration est une pratique à utiliser avec parcimonie. La sur-utilisation de ce genre de mécanisme est clairement une très mauvaise pratique et souvent révélatrice d'une mauvaise conception des contenus. En revanche, le problème de mise à jour d'une classe avec beaucoup d'instances est clairement un vrai problème, ce point a été amélioré mais il existe encore mais il est néanmoins contournable. Et puis les problèmes de performances exposés juste au dessus ne sont probablement pas étranger à d'autres mauvaises pratiques ou d'autres manques dans le développement ou la conception.

Et pour finir quand je lis que d'excellents développeurs PHP ont du mal à utiliser le langage de template d'eZ Publish, on frise le ridicule.

Conclusion ?

Il y a probablement une partie de réels problèmes dans les points remontés dans les articles de Pierre Jean Duvivier (eZ Publish n'est pas parfait) mais il est toujours plus facile de démonter une solution dans son ensemble que de se remettre en cause... Le fait est qu'eZ Publish est utilisé sur une large palette de sites à plus ou moins fort trafic et les chiffres indiqués ne sont pas non plus exceptionnels !

Et pour revenir au commentaire initial, oui les problèmes imputables à eZ Publish sont réglés petit à petit mais il ne faut pas oublier que la qualité de la mise en oeuvre de l'outil est largement aussi importante que l'outil lui-même !

Mars 2009 – sahid.funraill.org: tolink filter in ootemplate

Example to use tolink’s filter in ootemplate


I have add a new filter in ootemplate for create an elegants permalinks.
For example, you have an array with all posts of your blog, a post is composed by an ID, title, body and date,
you want print all posts and create a pretty urls for them.


{% for post in allposts %}

{{ post.title }}

{{ post.body | wrap: '30' '...' }} {{ post.date | date: "%d.%m.%y" }}
{% endfor %}


this example print

My First post is Hello World !

this post explain blabla bla bla... 17.11.2008

Second post, superstar

this post explain blabla bla bla... 20.11.2008


Mars 2009 – sahid.funraill.org: Gérer les exceptions et transactions avec mysqli

Gérer les exceptions et transactions avec mysqli

Dans cet article j’essaie de voir comment améliorer l’implémentation mysqli de PHP.
Pour ceux qui ne la connaissent pas, la classe mysqli est le client PHP5 orienté objet du serveur MySQL.
Donc on va voir comment mettre en place deux ou trois méthodes afin d’obtenir un meilleur debug sur les requêtes passées au serveur, gérer les erreurs via des exceptions et pour finir trouver une solution pour gérer les Transactions.
Pour le moment on va simplement étendre mysqli afin de pouvoir changer son comportement.


Etendre mysqli

class MySQLException extends Exception {}
class MySQL extends mysqli {}


Ajout d’un debug des requêtes � mysql

Maintenant voyons comment avoir un meilleur suivi des requêtes envoyées � notre serveur MySQL.
Pour ça, on va lui ajouter deux méthodes, une pour ajouter un message debug et l’autre pour les récupérer.


class MySQL extends mysqli {
      protected $_debug = "";
      public function setDebug ($string) { $this->_debug .= strftime ("%D %r").$string."\n"; }
      public function getDebug () { return $this->_debug; }
}


Exceptions dans mysqli

on redéfinit la méthode query afin d’avoir quelques informations sur les requêtes passées et déclencher une exception en cas d’échec.

class MySQL extends mysqli {
      protected $_debug = "";
      public function setDebug ($string) { $this->_debug .= strftime ("%D %r").$string."\n"; }
      public function getDebug () { return $this->_debug; }

 public function query ($sql)
      {
        $this->setDebug ($sql);
        if (parent::query ($sql) === false)
           throw new MySQLException ("Invalid Query : {$sql}\n");
      }
}


Transaction avec mysqli

Pour finir voici une implémentation permettant de gérer les transactions avec mysqli.
on va tout d’abord ajouter une nouvelle méthode � notre classe MySQL begin celle-ci va envoyer l’ordre START TRANSACTION qui avertit le serveur mysql que les requêtes suivantes doivent être considérées comme des transactions et attendre les évènements COMMIT ou ROLLBACK pour la terminer.

public function begin ()
	{
	$this->query ("START TRANSACTION");
      }
[/code]


[code lang="php"] $dbh = new MySQL (); try { $dbh->begin (); $dbh->query ("INSERT INTO table1 VALUES (1, 2, 3, 4")); $dbh->query ("INSERT INTO table2 VALUES (5, 6, 7, 8")); $dbh->commit (); } catch (MySQLException $e) { $dbh->rollback (); } echo $dbh->getDebug ();

Chaque requête va être executée dans un block try catch, si une exception est lancée via la méthode query
alors on met fin � la transaction en exécutant le rollback, sinon on envoit le commit.


Mars 2009 – Nexen.net: Sélectionnez le monde

Image pour le titre du contenu
Actuellement, je suis très intéressé par les outils Yahoo car ils évoluent vite et surtout la possiblité de les utiliser avec PHP.
Mais depuis quelques mois, ces outils peuvent communiquer ensemble comme YahooBoss et SearchMonkey, etc...
Cependant d'autres associations sont apparues comme Rasmus Lerdorf le montre sur son blog. Il montre comment communiquer avec YQL et GeoPlanet.
Le premier, YQL, met SQL-comme l'interface au-dessus de toutes les données sur l'Internet. Et la seconde, GeoPlanet, introduit la notion de WOEID (Géolocalisation)
Le résultat obtenu est un format XML, mais facilement réutilisable pour vos applications.

Mars 2009 – Nexen.net: Naissance de... Le film

Image pour le titre du contenu
Un jour, à la recherche d'une idée, Vincent Pontier connu sous le nom EL ROUBIO, a eu l'idée de concevoir le symbol que nous connaissons tous actuellement.
Il s'agit de l'ElePHPant PHP.
EL Roubio vient d'annoncer et de sortir le film à voir et à revoir...
« Naissance de l'ElePHPant »

Pour ma part, c'est un film très bien fait, d'une très haute qualité... mais au lieu d'en parler des lignes et des lignes, il faut aller voir ce film.

Mars 2009 – Nexen.net: Actualité de développement PEAR, edition 241

Image pour le titre du contenu

18 paquets ont été mis à jour cette semaine : PEAR est la bibliothèque de composants PHP.

 

 

Mars 2009 – Nexen.net: Actualité de développement PECL, edition 238

Image pour le titre du contenu

11 paquets ont été mis à jour cette semaine :
  • pdflib : création de fichiers PDF
  • imagick : interface avec la bibliothèque graphique ImageMagick
  • oci8 : fonctions OCI8
  • timezonedb : base de données de fuseaux horaires pour PHP
  • geoip : Indique la localisation géographique d'une IP
  • uploadprogress : suivi des téléchargements de fichiers type Ajax
  • spidermonkey : JavaScript engine for PHP
  • mongo : Mongo Database Driver
  • selinux : SELinux binding for PHP script language
  • markdown : a fast Markdown parser
  • xhprof : XHProf: A Hierarchical Profiler for PHP
PECL est la bibliothèque d'extensions C de PHP.

 

 

Mars 2009 – Nexen.net: Symfony Live 2009 : Appel à conferenciers

Image pour le titre du contenu
Sensio Labs organise en partenariat avec l'AFUP (Association Française des Utilisateurs de PHP) le 1er événement autour du framework Symfony le 11 et 12 juin à Paris.
Un appel à conférencier vient d'être lancer.
Pour connaître tous les informations, consulter le communiqué

Mars 2009 – Nexen.net: LeMug au salon solution Linux

Image pour le titre du contenu
LeMug pour fêter leur première présence au salon "solution linux" le 31 mars, 1er et 2 avril 2009, organise un évènement.
Cet évènement aura lieu le 1er avril à 18h00 et ouvert à tout le monde (Utilisateurs PHP, MySQL...) sur le stand Anaska du groupe AlterWay
Pour connaître le programme officiel de la soirée, rendez-vous sur le communiqué officiel de l'association.

Mars 2009 – Sbnet: Magento : ajouter et enlever des produits du panier

Magento est un système de commerce électronique assez complexe à appréhender, il est bien mieux organisé que le vieillissant Oscommerce et peut être modifié à souhait grâce à une architecture bien pensée, basée sur Zend Framework mais qui demande quand même assez de temps pour s’y habituer. Je vous propose (...)

Mars 2009 – Nexen.net: 10 conseils en PHP revisités

Image pour le titre du contenu
Le magazine « Smashing Magazine » remet à jour un ancien article paru dans leurs colonnes.
Cet article va expliquer certains points, utiles pour le développement en PHP. Les points soulignés sont :
  • Utilisez une requête SQL Injection Cheat Sheet
  • Connaître la différence entre les opérateurs de comparaison
  • Raccourci 
  • Drop Those Brackets
  • Utilisez str_replace () Plus de ereg_replace () et preg_replace ()
  • Utilisez les opérateurs ternaires
  • Memcached
  • Utilisez un cadre
  • Utilisez la répression opérateur Correctly
  • Utiliser isset () au lieu de strlen ()

Mars 2009 – Hello Design: Séance de dédicaces

 

Pendant le salon "solution Linux" qui va se dérouler le 31 mars - 1er et 2 avril 2009 à porte de Versailles.

Une séance de dédicace est prévue le mardi 31 mars à partir de 16h00 sur le stand ENI pour mon livre "PHP & MySQL - MySQLi - PDO, construisez votre application".

Bien sur, les autres jours, vous pouvez me recontrer pendant tout le salon sur le stand de AFUP

Alors n'hésitez pas à venir me rencontrer et surtout demandez un badge visiteur au salon en cliquant ici

 

 

 

Mars 2009 – Nexen.net: PHP 5.3 RC1

Image pour le titre du contenu
Après de nombreux mois d'attentes, voici une nouvelle étape pour PHP5.3.
Cette nouvelle version est une RC1 ce qui signifie que la version stable de PHP 5.3 va bientôt arriver.
Pour connaître l'ensemble des évolutions et des nombreuses nouvelles fonctions, il faut consulter le communiqué officiel

Mars 2009 – PHP Index: New TeeChart for PHP v1

Steema Software has released a new product, a native native TeeChart for PHP v1.

The Charting Library is available with the option of 100% PHP sourcecode, supports PHP5 and above and may be used in most PHP IDEs with specific optmisation for use as a palette component in the Delphi for PHP programming environment.

For product review, please see: http://www.steema.com/products/teechart/php/overview.html

Proposé par Steema Software

Mars 2009 – z-f.fr: PHP 5.3 RC1 + annonce officielle

Forum: Brèves
Auteur: philippe
Écrit le: Wed, 25 Mar 2009 17:11:02 +0100
Dernier message: Wed, 25 Mar 2009 17:11:02 +0100

Mars 2009 – tigrou/pwet.fr: eZ Community meeting à Paris le 9 avril 2009

eZ Systems organise le 9 avril à partir de 15h une rencontre communautaire à Paris autour de son CMS eZ Publish. Il ne s'agit pas d'un nouveau developper day mais bien d'un évènement qui se veut plus communautaire et 100% francophone !

Avis aux développeurs débutants ou expérimentés, intéressés par le CMS eZ Publish (qui je le rappelle est écrit en PHP, est libre et est publié sous licence GPL), voila une excellente occasion de se rencontrer et d'échanger sur divers sujets :-) Toutes les informations pratiques sont dans la news sur ez.no. On se voit le 9 avril ? :-)

Mars 2009 – sahid.funraill.org: Taille d’une chaine de caractère en utf-8

strlen for utf8 charsets

var_dump (strlen ("é") == 2) // bool(true)
var_dump (mb_strlen ("é", 'utf-8') == 1) // bool(true)


Mars 2009 – Nexen.net: Assurance de la qualité

Image pour le titre du contenu
Dans tous développements, il est nécessaire d'assuré un code de qualité. Mike Lively s'est penché sur « Comment travailler les avec les bases de données comme des ressources de test »
Il montre une approche très interressante à lire pour assurer une bonne qualité de vos projets en PHP

Mars 2009 – Nexen.net: Administration de MySQL et des outils

Image pour le titre du contenu
Smashing Magazine propose une étude des outils administrations de MySQL et développement Round Up
Cette étude s'est penchée sur MySQL car c'est la base de donnée open source la plus populaire surtout qu'elle tourne sur tous les environnements (linux, Mac, windows...)
Les tests ont été effectués sont :
  • MySQL Workbench (Win, Linux, Mac)
  • HeidiSQL - MySQL made easy (Win, Linux)
  • Aqua Data Studio (Win, Linux, OS X, Solaris)
  • phpMyAdmin
  • SQLyog MySQL GUI (Win)
  • MySQL-Front (Win)
  • Sequel Pro (Mac OS X)
  • SQL Buddy (Web-App)
  • EMS SQL Manager (Win)
  • Navicat Lite MySQL Admin Tool (Win, OS X, Linux)
  • DreamCoder for MySQL (Win)
  • Toad MySQL (Win)
  • DB Tools Manager Professional (Win)
  • MyCon - MySQL GUI (Win)
  • apache friends - xampp (Win, Mac, Linux, Solaris)
  • Further MySQL Links

Mars 2009 – Rom's blog: Les éléphpants du PS!

On parle souvent des éléphants du PS mais rarement des éléphpants qui y sont tout aussi présents :

Martine Aubry et les éléphpants du PS

Martine Aubry et les éléphpants du PS

La photo pourrait également figurer sur le site http://elephpantgettingsome.wordpress.com/

Merci à mon collègue Vincent Vignolle (Solinux) pour cette photo.

Mars 2009 – Nexen.net: EGG 1.0

Image pour le titre du contenu
EGG est le remplaçant de CligraphCRM qui existe depuis de nombreuses années.
EGG (signifie Easy Graphical Genuine) est un logiciel libre de gestion de relation de client (CRM) et fonctionne sur une plateforme AMP (Apache, MySQL et PHP)
Cette nouvelle monture propose de nombreuses évolutions et des fonctions classiques, comme :
  • Fonctionnalités adaptées pour les besoins des sociétés
  • Gestion des clients
  • Agenda
  • Plannings
  • Gestion d'affaires
  • Tableaux de bord
  • La gestion des mailings et publipostage
  • Un Webmail
  • Géomarketing

Mais EGG a un énorme avantage, car il a subit un audit très poussé au niveau de la sécurité avec les nouveaux outils réalisées par l'équipe Nexen du groupe AlterWay

Mars 2009 – Apprendre-PHP.com - apprendre à programmer avec le langage PHP: PHP 5.3 RC1

La première version Release Candidate de PHP 5.3 est parue cette semaine, ce qui annonce l'arrivée prochaine de la toute première version de stable qui rendra la branche 5.2 obsolète

Mars 2009 – Apprendre-PHP.com - apprendre à programmer avec le langage PHP: symfony 1.2.5

La Core Team de Symfony vient de sortir la version 1.2.5 qui corrige une vingtaine de tickets de bugs et de typographie. Il est vivement conseillé de mettre à jour votre version pour profiter des changements

Mars 2009 – Nexen.net: Récupérer son OPML

Image pour le titre du contenu
Le site Emich.be propose un petit tutorial pour récupérer son OPML venant de Google Reader.
OPML signifie Outline Processor Markup Language et il s'agit d'un format XML permettant de regrouper et d'identifier les titres d'un texte.
Ce tutorial réalisé en PHP et cURL va vous montrer l'extraction d'informations venant de google.
Cela peut vous être utile pour obtenir des informations de vos sites webs mais aussi de sites actualités ou blog que vous adorez

Mars 2009 – Nexen.net: Actualité de développement PEAR, edition 242

Image pour le titre du contenu
9 paquets ont été mis à jour cette semaine : PEAR est la bibliothèque de composants PHP.

 

 

Mars 2009 – Nexen.net: Actualité de développement PECL, edition 239

Image pour le titre du contenu
7 paquets ont été mis à jour cette semaine :
  • pdflib : création de fichiers PDF
  • imagick : interface avec la bibliothèque graphique ImageMagick
  • timezonedb : base de données de fuseaux horaires pour PHP
  • oauth : Extension client oauth
  • mongo : Mongo Database Driver
  • xhprof : XHProf: A Hierarchical Profiler for PHP
  • bloomy : Extension implementing a Bloom filter
PECL est la bibliothèque d'extensions C de PHP.

 

 

Mars 2009 – Nexen.net: PHPUnit : tests unitaires pour PHP

Image pour le titre du contenu
Vous pouvez voir régulièrement des sujets concernant des tests de code, des aides pour les corrections erreurs, optimisation, etc...
Le site UnixGarden propose un article très complet pour utiliser les tests unitaires avec PHP en utilisant PHPUnit.
Vous pourrez ainsi découvrir comment l'utiliser étape par étape.

Mars 2009 – Hello Design: Et.... On recommence

Jeudi 2 Avril , une journée spéciale PHP est prévue pendant le salon "Solution Linux"

et pour fêter cette journée, une nouvelle séance de dédicace a été décidée par les Editions ENI pour le livre "PHP & MySQL - MySQLi - PDO, construisez votre application" avec la présence de son auteur christophe Villeneuve.

Alors apporter votre exemplaire pour obtenir une dédicace où sinon il y aura des ouvrages de disponibles à acquérir.