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

Juillet 2009 – PHP Index: PHP 5.3

Attendue depuis longtemps, la nouvelle version de PHP5 est disponible depuis hier soir. Il s'agit de la dernière évolution majeure avant la sortie de PHP6

Cette version corrige de nombreux bugs et apporte plusieurs améliorations parmi lesquelles on retiendra :

  • Les espaces de noms
  • Le support de Late Static Bindings
  • Les fonctions anonymes
  • Les étiquettes ( goto )
  • Le collecteur de références circulaires
  • De nouvelles extentions ( ext/phar, ext/intl, ext/fileinfo ... )
La liste complète des améliorations est disponible dans le changelog.

Télécharger PHP5.3
Migration de PHP5.2.X vers PHP5.3

Juillet 2009 – tigrou/pwet.fr: Performances, performances, performances !

Performances ! c'est le mot qui revient régulièrement dans beaucoup d'articles que j'ai lus ci et là ces derniers temps. Petite revue de web :

Le plus visible est probablement le fiasco de l'article PHP Performance tips de Google. Tellement de mauvais conseils que les billets en réponse ont fusé sur le Planet PHP et Gwynne Raskind a répondu point par point dans le groupe Make the web faster. Étonnant de voir Google malmené comme ça.

Sur un tout autre sujet, Artisan Numérique publie un benchmark de PostgreSQL entre les versions 8.2 et 8.3 et ensuite avec quelques optimisations. Je suis loin d'être un spécialiste et un grand utilisateur de PostgreSQL mais c'est toujours intéressant surtout avec le flou régnant autour de MySQL depuis le rachat de Sun par Oracle.

La mort de Mickaël Jackson a visiblement donné un petit coup de chaud aux sites people comme l'explique Charles-Christian Croix. Le trafic a plus que doublé en quelques minutes ! Mais à mon avis le plus intéressant dans cette page n'est pas vraiment les chiffres mais plus la comparaison entre les reverse proxy Varnish et Squid dans un commentaire d'un point de vue administration système.

Enfin, ça n'aura échappé à personne s'intéressant un peu à PHP; après une longue gestation, PHP 5.3 est sorti. Cette version apporte son lot de nouveautés au niveau du langage plus ou moins intéressantes (beurk le goto et le séparateur de namespace) mais aussi des améliorations de performances. Dans le forum sur eZ.no, Björn Dieding rapporte un gain de 90% sur Windows avec eZ Publish + PHP 5.3 par rapport au même site tournant avec PHP 5.2 ! Łukasz Serwatka a réalisé le même benchmark sous Linux observant un gain de l'ordre de 20% !

Juillet 2009 – PHP Index: Déploiement PHP automatique avec Capistrano

Tous les développeurs connaissent l'étape "difficile" du passage en production. Capistrano est un outil permettant d'automatiser et donc de simplifier la mise à jour de votre application.

Un article sur le blog simplistic complexity explique les différentes étapes à suivre pour mettre en place l'automatisation à l'aide de Capistrano.

La création d'un fichier de configuration permet d'indiquer à Capistrano les différentes étapes à suivre, récupération du repository, création d'un lien symbolique ou encore lancement d'un script de modification de la base de données. Il ne vous reste plus qu'à lancer Capistrano pour déployer votre site sur votre serveur de production.

Juillet 2009 – Dur Comme Faire: Revue de presse PHP du 06/07/09

Comme chaque semaine, voici la revue de presse hebdomadaire pour vous faire découvrir ce qui se dit d'intéressant sur PHP. Il s’agit d’articles en français ou en anglais que j’aimerais partager avec vous. Et parce qu'il n'y a pas que PHP au monde, vous trouverez également un article...

Juillet 2009 – PHP Index: Nouvelles versions TYPO3

Les versions 4.2.8, 4.1.12 et 4.0.13 sont sorties depuis quelques jours.

Ces nouvelles versions ne sont que des versions de maintenance, corrigeant des bugs et apportant de mineures améliorations en sécurité (aucunes failles de vulnérabilité critiques).

Source
Téléchargements

Juillet 2009 – PHP Index: Nouvelles versions de Drupal

Les versions 6.13 et 5.19 de Drupal sont disponibles depuis quelques jours.

Ces versions n'apportent pas de nouvelles fonctionnalités et corrigent principalement de nombreux bugs mais aussi des failles de sécurité critiques. Il est donc vivement conseillé de mettre à jour son site.

Source
Changelog 6.13
Téléchargement 6.13
Changelog 5.19
Téléchargement 5.19

Juillet 2009 – Kamelot Blog: Buvons à PHP cet été

Sarah propose un Apéro php à Paris le 23 juillet 2009, sur les coups de 19h, au Zoco Bar.

Qui nous trouve un endroit pour faire de même à Bruxelles ?

Et un emplacement pour faire un barbecue php en Aout ?

Juillet 2009 – Hello Design: Le multisite pour Joomla 1.6

Le CMS Joomla réalisé en PHP, revient avec quelques annonces qui sont prévus pendant la période "Google Summer of Code 2009".

La grosse évolution pour la prochaine version de Joomla 1.6 sera l'incorporation du multi-site qui correspond :

L'objectif principal dans ce cycle de développement est de permettre à un seul Joomla! et de traiter les appels provenant de plusieurs domaines, l'avantage évident d'être le partage de données entre les sites.

L'autre grosse évolution concerna l'utilisation de MySQL 5.

Pour ma part, étant très friant de cette plateforme et de l'ensemble des CMS en général, Joomla rejoint les CMS qui pourront encore un peu plus être déployer dans les entreprises.

source : http://www.cmswire.com/cms/web-cms/joomla-multi-site-support-nearing-completion-005008.php

Juillet 2009 – Prendre un Café: Little Symfony Forms Tricks

Hey, it’s been a long time I didn’t blog something clever here on Symfony, let me try to remedy this.

I’ve just stumbled upon this blog post about the use of sfValidatorCallback, which is quite cool because by using this particular validator you can virtually employ any kind of php callable to validate something. But as the author warned, it can be problematic to tie the symfony form validation framework to your model classes.

Personnaly, I rather prefer to declare a method in the form class itself to validate some value without boring myself writing each time a new sfValidatorBase derived class[1] :

<?php
class myForm extends sfForm
{
  public function configure()
  {
    $this->setWidgets(array(
      'name' => new sfWidgetFormInput(),
    ));
    
    $this->setValidators(array(
      'name' => new sfValidatorCallback(array('callback' => array($this, 'validateChuckNorris'))),
    ));
  }
  
  public function validateChuckNorris(sfValidatorBase $validator, $value)
  {
    // you can't validate chuck norris, but chuck norris can invalidate you
    if ('Chuck Norris' === $value)
    {
      throw new sfValidatorError($validator, 'invalid');
    }
  }
}

Of course, if you got the exact same need in another form, you should create a dedicated validator class. If you want custom error messages and options, you’ll have to create a dedicated class as well. But for simple and casual needs, this is just enough.

The neat thing with the sfValidatorCallback validator is you can even validate form schema values (say, an array containing all the values bound to the form) the same way, eg. using a post validator. Let’s see an example reusing the form shown previously:

<?php
class myForm extends sfForm
{
  static protected $choices = array(
    'none' => 'No emails', 
    'commercials' => 'Commercial emails', 
    'news' => 'Annoucement emails', 
    'alerts' => 'Alert emails',
  );
 
  public function configure()
  {
    $this->setWidgets(array(
      //...
      'email' => new sfWidgetFormInput(),
      'opt_in' => new sfWidgetFormSelectRadio(array('choices' => self::$choices)),
    ));
    
    $this->setValidators(array(
      //...
      'email' => new sfValidatorEmail(array('required' => false)),
      'opt_in' => new sfValidatorChoice(array('choices' => array_keys(self::$choices))),
    ));
    
    $this->validatorSchema->setPostValidator(new sfValidatorCallback(array(
      'callback' => array($this, 'validateSchema'),
    )));
  }
  
  // We want the user to provide his email if he choosed to receive stuff by email
  public function validateSchema(sfValidatorBase $validator, array $values)
  {
    if ($values['opt_in'] !== 'none' && !$values['email'])
    {
      throw new sfValidatorErrorSchema($validator, array(
        'email' => new sfValidatorError($validator, 'required'),
      ));
    }
  }
}

As a cool side effect, it will also make testing your form validation very easy, because you just have to test the callable method of your form.

Here’s another trick I stole to Kris on a project we worked together on lately, using a formatter callback to alter the presentation of a widget. Here’s an example showing how to get rid of the unordered list displaying a collection of checkboxes by default, by inlining them instead:

<?php
class myForm extends sfForm
{
  static protected $choices = array(
    'none' => 'No emails', 
    'commercials' => 'Commercial emails', 
    'news' => 'Annoucement emails', 
    'alerts' => 'Alert emails',
  );
 
  public function configure()
  {
    $this->setWidgets(array(
      //...
      'opt_in' => new sfWidgetFormSelectRadio(array(
        'choices' => self::$choices,
        'formatter' => array($this, 'formatInline'),
      )),
    ));
    
    $this->setValidators(array(
      //...
      'opt_in' => new sfValidatorChoice(array('choices' => array_keys(self::$choices))),
    ));
  }
  
  public function formatInline($widget, $inputs)
  {
    $formatted = array();
    
    foreach ($inputs as $input)
    {
      $formatted[] = $input['input'].' '.$input['label'];
    }
 
    return join(' ', $formatted);
  }
}

There are tons of little tricks like these which make the life of a developer using the forms framework easier, I’ll try to share them with you progressively.

Notes

[1] All my examples are using latest Symfony 1.2.


Ce billet intitulé Little Symfony Forms Tricks a été rédigé par Nicolas Perriault et publié sur le blog Prendre un Café sous licence Creative Commons BY-NC-SA.

Juillet 2009 – Arnaud Limbourg: Mercurial Subversion et hgsubversion

J'ai voulu recemment utiliser mercurial sur un dépôt subversion. Le support de subversion par mercurial n'est, au moment où j'écris, pas au niveau de ce qu'offre par exemple git-svn. L'espoir est cependant incarné par hgsubversion, une extension mercurial permettant d'utiliser mercurial comme client subversion.

Selon son auteur l'extension n'est pas prête à être utilisé en production mais que cela ne vous arrête pas à l'essayer. Il faut toutefois noter une grosse limitation, si le dépôt nécessite une authentification il faut enter trois fois de suite son login et mot de passe, ce qui rend l'utilisation embêtante. Cela devrait être bientôt corrigé.

MaJ 21 juillet: un récent commit sur le dépôt active le schema url suivant "svn+http(s)", vos données de login subversion sont maintenant utilisées. Editer le fichier .hg/hgrc pour mettre à jour le chemin vers le dépôt.

L'installation sur OS X est très simple une fois que l'on a cherché en vain :-) :

  • installer python avec macports la version fournie avec 10.5 a des "bindings" trop vieux
  • installer subversion via macports
  • installer les bindings python-subversion via macports
  • installer mercurial depuis le source, étape très importante, il ne faut pas utiliser le paquet binaire car il utilise le python de 10.5, celui qui a les bindings trop anciens

En partant du principe que vous avez macports installé et fonctionnel, les étapes sont les suivantes:

sudo port install python26
sudo port install subversion
sudo port install subversion-python26bindings
wget http://mercurial.selenic.com/release/mercurial-1.3.tar.gz
tar xvzf mercurial-1.3.tar.gz && cd mercurial-1.3
sudo make install
cd ..
hg clone http://bitbucket.org/durin42/hgsubversion/
vi ~/.hgrc

Mettre le contenu suivant:

[extensions]
rebase=
svn=/chemin/vers/clone/hgsubversion/hgsubversion

Vous pouvez maintenant cloner un dépôt subversion:

hg clone http://svn.repos

Pour le reste je vous renvoie vers la page wiki.

Juillet 2009 – Arnaud Limbourg: Mercurial Subversion et hgsubversion

J'ai voulu recemment utiliser mercurial sur un dépôt subversion. Le support de subversion par mercurial n'est, au moment où j'écris, pas au niveau de ce qu'offre par exemple git-svn. L'espoir est cependant incarné par [hgsubversion][hgsub], une extension mercurial permettant d'utiliser mercurial comme client subversion. Selon son auteur l'extension n'est pas prête à être utilisé en production mais que cela ne vous arrête pas à l'essayer. Il faut toutefois noter une grosse limitation, si le dépôt nécessite une authentification il faut enter trois fois de suite son login et mot de passe, ce qui rend l'utilisation embêtante. Cela devrait être bientôt corrigé. MaJ 21 juillet: un récent commit sur le dépôt active le schema url suivant "svn+http(s)", vos données de login subversion sont maintenant utilisées. Editer le fichier .hg/hgrc pour mettre à jour le chemin vers le dépôt. L'installation sur OS X est très simple une fois que l'on a cherché en vain :) : - installer python avec [macports][] la version fournie avec 10.5 a des "bindings" trop vieux - installer subversion via macports - installer les bindings python-subversion via macports - installer mercurial depuis le source, étape très importante, il ne faut pas utiliser le paquet binaire car il utilise le python de 10.5, celui qui a les bindings trop anciens En partant du principe que vous avez [macports][macports] installé et fonctionnel, les étapes sont les suivantes: sudo port install python26 sudo port install subversion sudo port install subversion-python26bindings wget http://mercurial.selenic.com/release/mercurial-1.3.tar.gz tar xvzf mercurial-1.3.tar.gz && cd mercurial-1.3 sudo make install cd .. hg clone http://bitbucket.org/durin42/hgsubversion/ vi ~/.hgrc Mettre le contenu suivant: [extensions] rebase= svn=/chemin/vers/clone/hgsubversion/hgsubversion Vous pouvez maintenant cloner un dépôt subversion: hg clone http://svn.repos Pour le reste je vous renvoie vers la [page wiki][hgsubwiki]. [hgsub]: http://www.bitbucket.org/durin42/hgsubversion/ [macports]: http://www.macports.org/ [hgsubwiki]: http://mercurial.selenic.com/wiki/HgSubversion

Juillet 2009 – PHP Index: Le projet PHP a migré de CVS à Subversion

Un message d'information pour les amateurs de Subversion : le projet PHP a fini sa migration de CVS à Subversion.

Les responsables du projet PHP ont cherché une nouvelle plateforme de versioning afin de palier aux manques de CVS. Dans un message d'information, un des responsables reviens sur le choix de SVN comparé à Git notamment, ainsi que la procédure de migration. Si cela vous intéresse, vous pouvez consulter ce message à cette adresse.

  • Subversion c'est quoi ?

    Subversion, souvent appelé SVN, est un logiciel de gestion de versions similaire à CVS, mais plus récent. Il a été conçu avec l'idée d'utiliser au mieux les concepts de CVS, mais en améliorant certains points qui posaient problèmes.

  • Pourquoi être passé à SVN ?

    Contrairement à CVS, SVN gère les répertoires (même vides) ainsi que le renommage et le déplacement de fichiers. Ce point est le plus utile puisqu'il permet de suivre l'historique d'un fichier même s'il a été renommé et déplacé plusieurs fois.

    Le système de numérotation des versions est également modifié pour être plus simple. À chaque fois que l'on modifie un fichier, tous les fichiers sont "renumérotés" de manière à pouvoir facilement revenir à une version antérieure "cohérente" de tous le projet.

    Enfin, l'application ("commit") des modifications dans le repository se fait de manière atomique : si un problème survient lors du commit de plusieurs fichiers, aucune des modifications n'est prise en compte, ce qui empêche d'avoir un état incohérent dans le repository suite à un problème réseau pendant la transmission des données par exemple.

Cette migration s'est accompagnée d'une réorganisation des dossiers pour une meilleure visibilité et le bonheur de tous :
Ancienne plateforme : http://cvs.php.net/viewvc.cgi/
Nouvelle plateforme : http://svn.php.net/viewvc/

Juillet 2009 – Bloc-note de développeurs: Formulaire de contact avec PHPMailer

Le formulaire de contact est le premier et le plus simple moyen de communication entre un client et le propriétaire du site. Que ce soit sur un blog pour demander un article à l'administrateur ou sur un site professionnel pour demander un devis, le formulaire de contact se doit d'être simple à (...)

Juillet 2009 – Prendre un Café: Installing php 5.3, apache2 and MySQL 5 on OS X using Macports

I wanted to test latest php 5.3 on my OSX box. So here’s a quick reminder on how to proceed to a full setup of apache2, mysql5 and php 5.3 using Macports.

First, get a fresh copy of the Macports installer for OSX. Install macports, then in a shell prompt, type:

$ sudo port install mysql5 +server
$ sudo port install php5 +apache2 +debug +pear +sqlite +mysql5 

You have now the time to have lunch, dinner, sex or to watch an episode of Derrick[1].

To enable the php module for apache:

$ cd /opt/local/apache2/modules
$ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so

Then, add this line in the /opt/local/apache2/conf/httpd.conf file:

Include conf/extras-conf/*.conf

Copy one of the standard php.ini files proposed by the default installation:

$ sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini

To start apache automatically at system startup:

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

Or manually:

$ sudo /opt/local/apache2/bin/apachectl start

To initialize, configure and start MySQL automatically:

$ sudo -u mysql mysql_install_db5
$ sudo /opt/local/bin/mysql_secure_installation5
$ sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper start
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

Now launch your browser at http://localhost/: you’re done. Have some rest.

Notes

[1] Don’t try to do all that stuff at the same time, result cannot be guaranteed


Ce billet intitulé Installing php 5.3, apache2 and MySQL 5 on OS X using Macports a été rédigé par Nicolas Perriault et publié sur le blog Prendre un Café sous licence Creative Commons BY-NC-SA.

Juillet 2009 – Nexen.net: Migration projet PHP

Image pour le titre du contenu
Le projet PHP vient de faire un grand changement, le projet vient d'effectuer une mise à niveau de leur système de contrôle de version en passant de CVS à Subversion.
Le site PHP.NET vient de l'annoncer et signale le nouveau lien qui sera utile pour les développeurs contributeurs.

Juillet 2009 – Nexen.net: Open Humanity

Image pour le titre du contenu
Open Humanity (appelé OH) est un nouveau bureau virtuel accessible depuis votre navigateur. Ce type de logiciel rejoint la famille des Web OS car les WebOS reproduisent les fonctionnalités d'un système d'exploitation et de son interface graphique directement à travers votre navigateur.
Open Humanity est un jeune projet, réalisé en PHP et Mysql.
Il intègre les fonctionnalités de type social et permet de partager et créer des espaces de travail commun pour un groupe d'utilisateur. Il se veut être a mi chemin entre un réseau social et un WebOS.

Juillet 2009 – Nexen.net: Utiliser XML avec MySQL 5.1

Image pour le titre du contenu
Voici le 1er article d'une série de 5, concernant l'utilisation du XML avec MySQL 5.1
Olivier Dasini, a travers son blog, vous montrera la possibilité de faire communiquer ces 2 technologies.
Ce premier article traite du sujet suivant : « Générer du XML avec les programmes clients mysql et mysqldump »

Juillet 2009 – Nexen.net: Fonctions utiles en PHP

Image pour le titre du contenu
Le sujet revient régulièrement concernant l'optimisation du code PHP, mais avoir une synthèse des fonctions est toujours utile.
Le site HM2K a établi une liste en anglais de 50 fonctions utiles pour l'optimisation de PHP, le site « La ferme du Web » vous l'a traduite.
Les fonctions sont très nombreuses comme par exemple :
echo est plus rapide que print.
et beaucoup d'autres fonctions à découvrir.

Juillet 2009 – Hello Design: Un été avec PHP Apero

L'été est bien là, et un PHP Apero est prévu dans quelques jours à Paris (le jeudi 23 juillet)

Cet apéro permettra de se retrouver autour d'un petit verre et de PHP

Pour vous inscrire... http://www.aperophp.net/apero.php?id=412

Juillet 2009 – Nexen.net: Bench PHP 5.2 vs PHP 5.3

Image pour le titre du contenu
Après la sortie de PHP 5.3, il était nécessaire de faire des tests au niveau des performances.
Pour rappel, voici environ 1 an, les performances de PHP 5.3 étaient un des critères importants comme l'apparition des nouvelles fonctionnalités. Pascal Martin a réalisé ces tests comparatifs sur des réalisations de projets comme Wordpress, Drupal, le Quick Start de Zend Framework, tests qu'il a publié sur son blog.
L'analyse, très complète, vous permettra de voir l'importance de PHP 5.3

Juillet 2009 – PHP Index: Salon E-commerce Paris 2009

Depuis 10 ans, la société E-BUSINESS EVENTS crée et organise plusieurs conventions et salons par an sur les NTIC, réunissant 40 000 décideurs, 1500 orateurs et exposants sur toute la FRANCE et dans plusieurs villes d'Europe. Le salon E-COMMERCE PARIS est un des événements les plus importants du secteur en Europe. 29,30 septembre & 1er octobre 2009 le sixième salon de E-COMMERCE PARIS aura lieu à Porte de Versailles - Pavillon 7.3.

Au programme :

  • 13 salles de conférences en parallèle pendant 3 jours
  • 450 exposants
  • débats
  • formations

Cet événement est gratuit, il suffit de s'y inscrire pour avoir le badge d'accès.

Pour plus d'informations ou l'inscription visitez le site officiel de l'événement.

Juillet 2009 – PHP Index: JpGraph 3.0.0 RC1

JpGraph 3.0.0 est désormais disponible au téléchargement.

De nombreuses modifications ont été effectuées, parmi lesquelles :

  • réécriture complète de la documentation (près de 700 pages maintenant)
  • ajout des courbes hypsométriques
  • ajout des graphes de visualisation des matrices
  • ajout d'un lecteur de données en matrice
  • ajout d'un outil de création des codes à barres en lignes de commandes
  • possibilité de Zoom sur les diagrammes de Gantt
  • possibilité de création des ruptures sur les diagrammes de Gantt
  • ajout des couleurs indigo nommées
  • correction des bugs
  • compatibilité totale avec PHP 5.3
  • étude de cas
  • ...

Plus d'informations : http://www.aditus.nu/jpgraph/jpdownload.php

Juillet 2009 – Nexen.net: Le bon chemin pour votre projet PHP

Image pour le titre du contenu
Derek Reynolds propose sous la forme d'un tutorial, les orientations pour bien commencer un nouveau projet en PHP.
Ce tutorial est intéressant, en prendre connaissance vous montrera comment placer et configurer vos dossiers, mais aussi concevoir la réalisation d'un template.

Juillet 2009 – Nexen.net: PHPTV : Symfony Live 2009

Image pour le titre du contenu
Voici quelques semaines, PHPTV avait couvert l'évènement Symfony Live organisé par Sensio Labs et en partenariat avec l'AFUP (Association Française des Utilisateurs de PHP)
Les premières vidéos viennent d'être mises à disposition avec, pour commencer, un reportage et quelques interviews.
Les prochaines vidéos vont suivre dans très peu de temps.... A suivre

Juillet 2009 – Nexen.net: PHPMyAdmin Avancé

Image pour le titre du contenu
Le site « Kamelot Blog » montre 3 possibilités supplémentaires pour utiliser PhpMyAdmin. Ces 3 options sont souvent peu connues du grand public, et surtout pas aussi utilisées qu'il le faudrait. Les 3 points que montre ce site sont :
  • Le regroupement de table par préfixe
  • L'historique des commandes
  • La gestion des relations

Juillet 2009 – Kamelot Blog: PhpMyAdmin "avancé" (partie 2)

Il existe plein d'options dans phpMyAdmin pas très connues.

Trois me plaisent plus particulièrement.

  • le regroupement de table par préfixe (Partie 1)
  • L'historique des commandes.
  • la gestion des relations

Partie 1 - Partie 2

Pour les 2 possibilités suivantes, vous devrez créer un ensemble de tables spéciales. Ces tables peuvent se trouver dans votre propre base de données, ou dans une base de données séparée.

Il faudra donner le nom de cette db dans $cfg['Servers'][$i]['pmadb'].

Mémorisation des requêtes réalisées

Il y a en fait 2 possibilités

L'historique

Il faudra créer une table dans $cfg['Servers'][$i]['pmadb']. et mettre le nom de la table dans $cfg['Servers'][$i]['history']

Il mémorisera toutes les requêtes.

Cette liste pouvant grandir un peu trop, $cfg['QueryHistoryMax']. permet de limiter leur nombre

Apparemment il y a moyen de se passer de la table et de gerer ca en javascript (base par navigateur dans ce cas)

En bookmark

(Depuis la version 2.2.0) Il faudra créer une table dans $cfg['Servers'][$i]['pmadb']. et mettre le nom de la table dans $cfg['Servers'][$i]['bookmarktable']

[Mysql]

-- 
-- Table structure for table `pma_bookmark`
-- 

CREATE TABLE IF NOT EXISTS `pma_bookmark` (
  `id` int(11) NOT NULL auto_increment,
  `dbase` varchar(255) NOT NULL default '',
  `user` varchar(255) NOT NULL default '',
  `label` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
  `query` text NOT NULL,
  PRIMARY KEY  (`id`)
)
  ENGINE=MyISAM COMMENT='Bookmarks'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

la gestion des relations

(Depuis la version 2.2.4)

il faut ajouter à la config le nom de la table $cfg['Servers'][$i]['relation'] = 'pma_relation';

Donc faites comme vous le sentez mais généralement c'est pma_relation

[Mysql]

DROP TABLE IF EXISTS `PMA_relation`;
CREATE TABLE `PMA_relation` (
    `master_db` VARCHAR(64) NOT NULL DEFAULT '',
    `master_table` VARCHAR(64) NOT NULL DEFAULT '',
    `master_field` VARCHAR(64) NOT NULL DEFAULT '',
    `foreign_db` VARCHAR(64) NOT NULL DEFAULT '',
    `foreign_table` VARCHAR(64) NOT NULL DEFAULT '',
    `foreign_field` VARCHAR(64) NOT NULL DEFAULT '',
    PRIMARY KEY (`master_db`, `master_table`,`master_field`),
    KEY `foreign_field` (`foreign_db`, `foreign_table`)
) TYPE=MyISAM COMMENT='Relation table';

Pour faire un peiti test, j'ai créé dans ma db test 3 tables

[Mysql]
-- Généré le : Mar 28 Juillet 2009 à 23:03
-- Version du serveur: 5.0.75

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `test`
--

-- --------------------------------------------------------

--
-- Structure de la table `classe`
--

CREATE TABLE IF NOT EXISTS `classe` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `nom` varchar(30) NOT NULL,
  `prof` varchar(30) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Contenu de la table `classe`
--

INSERT INTO `classe` (`id`, `nom`, `prof`) VALUES
(1, 'premiere latin', 'Mr carton'),
(2, 'premiere langue', 'Madame crayon');

-- --------------------------------------------------------

--
-- Structure de la table `eleve`
--

CREATE TABLE IF NOT EXISTS `eleve` (
  `id` int(8) unsigned NOT NULL auto_increment,
  `prenom` varchar(15) NOT NULL,
  `nom` varchar(15) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Contenu de la table `eleve`
--

INSERT INTO `eleve` (`id`, `prenom`, `nom`) VALUES
(1, 'jean', 'bon'),
(2, 'Marc', 'Assin'),
(3, 'simon', 'brol'),
(4, 'julien', 'folie');

-- --------------------------------------------------------

--
-- Structure de la table `inscription`
--

CREATE TABLE IF NOT EXISTS `inscription` (
  `idclasse` int(10) unsigned NOT NULL,
  `ideleve` int(10) unsigned NOT NULL,
  `role` varchar(30) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Contenu de la table `inscription`
--

INSERT INTO `inscription` (`idclasse`, `ideleve`, `role`) VALUES
(1, 1, ''),
(1, 2, ''),
(2, 1, ''),
(2, 4, '');

Dans l'affichage de la table on a ceci

On peut alors aller dans la structure d'une table et ensuite cliquer sur "gestion des relations".

On a une select box pour dire à quel champs d'une autre table peut-être lié les champs de la table courante

Quand ceci est fait, quand on affiche le contenu de la table, les valeurs deviennent des liens vers l'affichage des enregistrements correspondants dans l'autre table.

Juillet 2009 – Nexen.net: Le futur des blogs

Image pour le titre du contenu
Les blogs ont beaucoup évolué depuis ces dernières années, se rapprochant même des CMS.
Cependant un blog reste un blog, et l'avenir des blogs se profile vers un autre horizon.
Webmedia Explorer, réalisé en PHP, est un générateur de site Web en temps réel pour la lecture du système de fichiers. Vous allez pouvoir organiser un site comme vous rangez votre bureau d'ordinateur, mais pour le Web..
L'avantage vient de ce que cette API va tirer profit d'un algorithme très puissant de mise en cache.

Juillet 2009 – Nexen.net: Actualité de développement PEAR, edition 249

Image pour le titre du contenu
11 paquets ont été mis à jour cette semaine :
  • Event_Dispatcher : Répartition d'événements avec des fonctions de callbacks
  • DB_odbtp : Interface de base de données avec ODBTP
  • Net_POP3 : Classe POP3
  • Log : Utilitaire de log
  • Math_RPN : Notation polonaise inverse
  • Net_IDNA : Code d'encodage et décodage
  • Net_Sieve : Gestion des serveurs de temps
  • Text_Diff : Moteur pour effectuer et afficher des différences de texte
  • PHP_UML : Un paquet qui analyse les dossiers, et retourne une représentation UML/XMI des classes trouvées
  • Services_Scribd : Net_HL7 :
PEAR est la bibliothèque de composants PHP.

 

 

Juillet 2009 – Nicolas Loeuillet: phpwtf.org toutes les aberrations du langage PHP

Avis à tous les détracteurs PHP, voici un nouveau site qui vous donne le bâton pour taper sur ce langage.

phpwtf.org (wtf pour what the fuck, manière assez vulgaire pour demander ce qui se passe) recense une dizaine (pour l’instant) de perles PHP. Ce site est alimenté par un des développeurs du projet Drupal.

Juillet 2009 – Nexen.net: Actualité de développement PECL, edition 246

Image pour le titre du contenu
4 paquets ont été mis à jour cette semaine :
  • pecl_http : support étendu de HTTP
  • zip : extension zip
  • mongo : Pilote Mongo Database
  • gearman : PHP wrapper to libgearman
PECL est la bibliothèque d'extensions C de PHP.

 

 

Juillet 2009 – Bloc-note de développeurs: Jouez le jeton de la sécurité

Aujourd'hui je vais vous parler de sécurité. En particulier de la protection contre les failles CSRF (ou XSRF), car ce type de faille est très peu connu et laisse énormément de possibilités à l'attaquant. Le principe de l'attaque par CSRF est très simple : "Je ne peux pas faire une action, alors je (...)

Juillet 2009 – PHP Index: La nouvelle version 1.9 du Zend Framework est prête pour PHP 5.3 et offre de nouveaux composants professionnels

Des composants métier tels que : les web services RESTful, la mise en file d’attente des processus asynchrones, LDAP, RSS/Atom, et le support de DBUnit test.

CUPERTINO, Californie, 30 Juillet 2009 - Zend Technologies, Inc., the PHP company, a annoncé aujourd’hui que le très répandu projet Open Source Zend Framework, qui a été téléchargé plusieurs millions de fois, sort sa cinquième mise à jour depuis ses débuts il y a deux ans et sera disponible ce vendredi. Cette nouvelle version 1.9 supporte PHP 5.3, et voit arriver de nouvelles fonctionnalités professionnelles pour le développement d’applications Web.

“Zend Framework continue à séduire les développeurs PHP professionnels qui souhaitent bénéficier d’un ensemble cohérent de bonnes pratiques, de design patterns et d’un projet communautaire,” a déclaré Zeev Suraski, Chief Technology Officer et co-fondateur de Zend. “Avec Zend Framework, les talents et les solutions du monde entier sont déjà à portée de main pour résoudre toute problématique business, ceci grâce à la très importante communauté Open Source Zend Framework.”

Les nouvelles fonctionnalités de Zend Framework 1.9 :
- Le support complet de PHP 5.3, et de la version 5.2, permet aux développeurs d’utiliser les toutes dernières fonctionnalités du langage pour développer leurs applications basées sur le ZF.
- Les services Web REST : sont désormais plus facile à utiliser grâce au routage/ détection automatisé.
- Gestion des messages : utile pour les traitements différés (transactions par cartes bancaires, upload média), communication cross-platform, fonctionnalités de message utilisateurs, et bien plus.
- LDAP : Microsoft ActiveDirectory & Novell, plus de fonctionnalités de recherches, de tri et de hiérarchie.
- RSS & Atom : utilisation de ces formats de flux très populaires via une API commune et un cache HTTP plus performant
- Support de DBUnit : gestion facilitée des tests unitaires consacrés aux bases de données.

"En plus d’avoir utilisé le Zend Framework pour développer le site Shape.com, SonomaCreative bâtit tous ses nouveaux sites Web avec les composants Zend Framework en combinaison avec nos propres composants,” déclare Mark Gordon, CEO de SonomaCreative, une Web Agency basée en Californie du Nord.

“Nous avons également trouvé que Zend Studio 7, qui supporte la création et la génération de code Zend Framework, facilite et accélère notre job de développement d’applications Web pour nos clients. L’association de Zend Framework et Zend Studio nous permet d’être plus productifs car nous passons plus de temps à personnaliser les applications pour nos clients et moins de temps à bâtir la plomberie et les composants standards dont toutes les applications ont besoin.”

L’autre nouveauté
Zend Studio 7.0 sort aujourd’hui avec un nouveau support amélioré de la génération de code pour les applications Zend Framework. Pour de plus amples détails, consultez : http://www.zend.com/fr/products/studio

Proposé par Christophe Chervy

Juillet 2009 – PHP Index: Zend lance la nouvelle version majeure de son IDE PHP Zend Studio

Zend Studio 7.0 supporte le tout nouveau PHP 5.3 & booste la productivité pour les développements PHP critiques

CUPERTINO, Californie, 30 juillet 2009 – Zend Technologies, Inc., the PHP company, a annoncé aujourd’hui la sortie de la nouvelle version majeure de Zend Studio, l’environnement de développement intégré (IDE) de référence de la société pour le langage dynamique PHP. Conçu pour améliorer drastiquement la productivité pour le développement d’applications Web critiques, les fonctionnalités de Zend Studio 7.0 supportent la toute nouvelle version 5.3 de PHP ainsi que l’intégration avec Zend Server et Zend Framework.

“PHP est rapidement devenu un des éléments clés en entreprise, et Zend Studio 7.0 fournit tout ce dont les développeurs ont besoin pour bâtir des applications PHP dynamiques et stratégiques avec de hauts niveaux de performance, de sécurité et de fiabilité” a déclaré Andi Gutmans, CEO et co-fondateur de Zend Technologies. “Zend Studio, avec Zend Framework et Zend Server, fournit une solution PHP qui répond à l’ensemble des problématiques rencontrées lors du cycle de vie complet d’une application Web, du développement à la production.”

Zend Studio est l’IDE PHP de référence. Il fournit un environnement de développement complet qui optimise la productivité des développeurs. Bâti sur le projet open source Eclipse PDT 2.1 (PHP Development Tools) emmené par Zend – actuellement le projet Eclipse le plus populaire – Zend Studio est le seul IDE disponible pour les développeurs qui réunit toutes les fonctionnalités pour développer des applications métiers critiques. De plus, les clients Zend Studio bénéficient d’un immense écosystème de solutions disponibles via la communauté Eclipse.

Zend Studio 7.0 ajoute de nombreuses nouvelles fonctionnalités et améliorations afin de faciliter le développement et augmenter les performances de développement d’applications Web. Une indication sur l’intérêt des clients pour cette nouvelle mouture, est que la version bêta a été téléchargée plus de 20 000 fois via le site Zend (www.zend.fr) depuis sa disponibilité le mois dernier. Parmi les nouvelles fonctionnalités majeures de Zend Studio 7.0, on trouve :

• Le support de PHP 5.3 : Zend Studio 7.0 est un IDE complet pour la nouvelle version PHP 5.3. Le support de Zend Studio pour les fonctionnalités 5.3 rendent plus simples la maintenance, et le code plus concis grâce à l’assistant de code, la nouvelle coloration syntaxique et les nouvelles fonctionnalités du langage dans sa version 5.3, telles que les namespaces et les closures, qui permettent aux programmeurs de mieux organiser leur code et d’utiliser des patterns dynamiques de codage.

• Codage Pointer/cliquer avec Zend Framework : une meilleure intégration avec le Zend Framework, le framework de développement PHP de référence, fournit des méthodes plus productives grâce au développement rapide d’applications (RAD), permettant la création en mode pointer/cliquer d’applications Zend Framework critiques, personnalisables et basées sur les standards.

• Intégration améliorée avec Zend Server : le support de Zend Studio 7.0 pour Zend Server – Le serveur d’applications Web de Zend pour déployer, gérer et superviser les applications Web en PHP – fournit des logiciels significativement plus rapides et plus fiables. Zend Server optimise la fiabilité, la sécurité et les performances en entreprise grâce à la supervision applicative, les correctifs de sécurité, les mises à jour produits et la notification d’événements.

Pour obtenir plus d’informations sur les nouvelles fonctionnalités contenues dans Zend Studio 7.0, visitez http://www.zend.com/fr/products/studio

Jon Whitcraft, développeur principal chez Indianapolis Motor Speedway, commente, “Zend Studio est notre IDE PHP de choix pour tous nos sites à fort trafic, tel que indy500.com. La mise à jour de Zend Studio for Eclipse 6.1 vers 7.0 est significative, car notre équipe pourra rapidement développer des applications basées sur Zend Framework et les déployer tout aussi vite sur Zend Server afin de booster les performances et en faciliter la maintenance.”

L’autre nouveauté du jour :
Zend Technologies a également annoncé la sortie de Zend Framework 1.9 ce vendredi. Cette version inclura le support de PHP 5.3 et 5.2, avec de nouvelles fonctionnalités et améliorations professionnelles pour le développement d’applications Web. Pour de plus amples détails, cliquez ici.

A propos de Zend Technologies

Zend Technologies Inc., la PHP Company, est le leader des produits et services de développement, déploiement et gestion d’applications Web PHP critiques. PHP est utilisé par plus de 20 millions de sites Internet et est rapidement devenu le langage le plus répandu pour développer des applications stratégiques. Mondialement déployée dans plus de 27 000 entreprises, la gamme de produits Zend apporte une solution complète durant tout le cycle de vie d’une application PHP. Le siège de Zend est situé à Cupertino en Californie.

Pour plus d’informations, visitez www.zend.fr ou appelez le 01 48 55 02 00.

Proposé par Christophe Chervy