ZF : Comment envoyer un mail avec une pièce jointe ?

Introduction

Que ce soit pour la confirmation d’inscription ou pour une newsletter, à un moment ou un autre, vous devrez envoyer un mail.

Mais cette tâche peut devenir compliquée, et encore plus s’il vous prend l’idée d’envoyer une ou plusieurs pièces jointes avec votre mail.

Heureusement, des bibliothèques existent et permettent d’éviter de concevoir notre propre code. Étant utilisateur de Zend Framework, je vais vous présenter comment envoyer des mails accompagnés de pièces jointes en utilisant ce dernier. Vous verrez alors la simplicité de la chose.
Continuer la lecture

Fonction PHP du jour : array_chunk()

Nous avons vu précédemment la fonction Levenshtein, permettant de calculer une distance entre deux mots.

Aujourd’hui, je vais vous présenter la fonction array_chunk(). Pour les « pros » de PHP, cela ne sera peut-être pas intéressant, mais même après des années de programmation, on passe parfois à coté de fonctions pouvant se révéler bien utiles.
Continuer la lecture

PHP / MySQL : comment résoudre les problèmes d’accents ?

Introduction

Le jeu de caractères est un point très important à connaître avant même d’écrire le premier bout de code d’un site web. Si vous négligez cette partie intégrante du développement, alors vous courrez à des risques d’incompatibilité qui se traduirons par l’apparition de caractères ressemblant à cela : é, �.

Nous allons voir dans cet article les points les plus importants à connaître pour partir du bon pied dans le développement de votre projet.

Continuer la lecture

PHP : enlever les accents d’une chaîne de caractères

C’est une question récurrente sur les forums. Comment enlever les accents et les remplacer par leurs équivalences ?
Beaucoup utilise des fonctions de remplacement comme strtr, str_replace, preg_replace, etc. Ces fonctions ont toutefois leur inconvénient :

  • strtr : est incompatible avec UTF-8.
  • preg_replace : nécessite l’utilisation des expressions régulières.
  • et les trois fonctions demandent de définir une liste de correspondance.

Une extension permet de palier à ces inconvénients : iconv.
Continuer la lecture

Fonction PHP du jour : levenshtein()

Je vais tenter d’écrire périodiquement un billet afin de traiter d’une fonction PHP qui me semble indispensable, ou encore qui me semble simplement utile à connaître.

Pour aujourd’hui, la fonction sera levenshtein().

Présentation

Du nom de son auteur, Vladimir Levenshtein, la distance Levenshtein permet, en gros, de trouver un nombre représentant la distance entre deux chaînes de caractères.

Pour cela, l’algorithme détermine un coût basé sur le nombre de substitution, d’ajout et de suppression de caractères afin de transformer le premier mot vers le second. Plus les deux mots présenteront des différences, plus le nombre sera élevé.

Pour plus d’informations, je vous redirige sur la page de Wikipédia, d’où je me suis inspiré. Continuer la lecture

Eclipse PDT : générer les Getter/Setter

Lorsqu’on applique le principe de l’encapsulation lors de la conception des classes, il peut devenir très long d’écrire tous les Getter/Setter (en français : Accesseur/ Mutateur) quand on a une dizaine, voir plus, d’attributs.

J’utilise Eclipse PDT comme IDE pour le développement PHP. J’ai donc farfouillé sur Internet afin de trouver un moyen de générer ces méthodes automatiquement. Mes recherches n’ont pas été très fructueuses dans un premier temps, jusqu’à ce que je tombe sur un site (1) où j’ai pu récupérer un template.

Les templates permettent de générer des morceaux de code à l’aide de mot clé directement dans l’éditeur. Par exemple, dans ma version d’éclipse, lorsque j’écris « class », ce code est généré :

class ${class_name} {
    function ${function_name}() {
        ${cursor};
    }
}

Les ${var} sont des variables de template. Vous remarquerez que ce template n’est pas à jour par rapport à PHP5, puisque le constructeur devrait être « __construct ».

Pour revenir au sujet de cet article, en modifiant légèrement le template récupéré, j’ai abouti à ceci :

/**
* @param ${type} ${dollar}${field}
* @return ${class_container}
*/
public function set${field_camelcase}(${dollar}${field})
{
    ${dollar}this->_${field} = ${dollar}${field};
    return ${dollar}this;
}

/**
* @return ${type}
*/
public function get${field_camelcase}()
{
    return ${dollar}this->_${field};
}

Pour l’enregistrer dans Eclipse : ouvrez Window > Preferences. Ensuite dans PHP > Editor > Template, créez un nouveau template. Donnez lui un nom (Name), qui sera à taper dans l’éditeur pour générer le code (ex: getset), et collez enfin le template dans « Pattern ». Vous pouvez maintenant utiliser ce template.

Au début de cet article, je recherchais à générer automatiquement tous les Getter/Setter. Hors ici, nous avons plutôt une génération semi-automatique puisque nous devons tout de même taper à la main le mot clé « getset ». Mais c’est déjà beaucoup plus rapide, un gain de temps de 60% facile je pense.

(1) désolé pour la source, mais je ne me souviens plus de l’adresse

Zend Framework : téléchargement, configuration, utilisation

Nous allons voir ici le téléchargement, l’installation et enfin la configuration de base de Zend Framework.

Téléchargement

À ce jour, la dernière version en date de cet article est la 1.10.8.

Pour la récupérer directement, vous pouvez ouvrir ce lien : téléchargement de la version 1.10.8. La dernière version du framework étant à cette adresse.

Le lien direct permet de télécharger la version minimale, ne contenant que le code du framework. Vous pouvez télécharger la version complète si vous souhaitez accéder à la documentation hors ligne ou encore voir le code source des tests unitaires. Continuer la lecture