Archive pour la catégorie ‘Méthodologie’

Générer un document word en PHP, pour de vrai

Nous voici arrivés au bout du chemin, au commencement…d’un nouveau chemin (et un long !). Nous avons vu comment faire une génération de documents Word à partir de modèles, nous avons vu comment insérer des images, nous pouvons de même créer des tableaux, souligner, mettre des entêtes, des pied-de-pages, etc. Il est maintenant grand temps d’avancer et de créer, pour de vrai, from scratch, des documents Word modernes, au format docx (donc notamment compatibles avec Apple Pages et OpenOffice Write).

Lire la suite de cette entrée »

Insérer une image dans un fichier Word généré

Nous y voilà ! Jusqu’à maintenant, on s’est bien amusé, mais on n’a pas encore fait grand chose… Du simple rechercher/remplacer, en fait; on a profité du fait que, avec l’ouverture des fichiers Word au format XML, le contenu des fichiers Word est devenu complètement lisible. Bon, ok, ce n’est pas tout à fait vrai, il a fallu jongler un peu avec les tableaux…

Mais là, vous allez voir ce que vous allez voir, nous allons maintenant insérer des images dans les fichiers Word, et j’aime autant vous dire d’emblée deux choses :

  1. ce n’est pas, a priori, une affaire simple;
  2. il est très facile de ne pas optimiser la chose…

Lire la suite de cette entrée »

Générer un document Word depuis un modèle

Le cadre est donné, nous allons maintenant voir comment il est possible de générer dynamiquement un document Word, en PHP, depuis un fichier modèle. Pour cet article, nous prendrons comme exemple un facture qu’il faut générer dynamiquement. Nous sommes tous d’accord pour dire que, dans l’absolu, une facture est le pire exemple possible…
En effet, qui souhaite envoyer à l’un de ses clients une facture en Word, format largement éditable et modifiable ?

Ceci étant, je peux d’un simple revers de la main anéantir cet argument en disant, par exemple, que je souhaite pouvoir ajouter un petit message personnalisé à chacun de mes clients.

Plus sérieusement, une facture est un document quasi-universellement reconnu, quel que soit le métier qu’on exerce, et cela constitue donc bien, selon moi, un exemple parfaitement pédagogique. Lire la suite de cette entrée »

Générer un document Word dynamiquement, en PHP

Le sujet est explicite, simple, connu et sérieux. Vous développez un outil de gestion pour un de vos clients, et ce dernier souhaite que votre application puisse générer des documents; en développeur moderne que vous êtes, vous êtes naturellement parti du principe que les modifications doivent s’opérer directement dans l’application, et que vous pouvez donc exporter tranquillement en PDF à l’aide d’une des nombreuses librairies disponibles pour ce faire (FPDF, HTML2PDF, HTML2PS, etc.).

Or, il s’avère que votre client veut pouvoir modifier ces documents en-dehors de l’application (le bougre); dans certains cas, vous pourrez le ramener facilement à la raison (pour la facturation : « Comment, mais vous ne vous rendez pas compte !! Une facture est une pièce comptable, et vous ne pourrez plus garantir l’intégrité de votre comptabilité s’il est possible de modifier une facture en dehors de l’application… »).

Dans d’autres cas, en revanche, votre partie est perdue d’avance, et le client veut pouvoir rajouter des mots doux à l’intention des destinataires, sans pour autant que cela figure dans l’application. Du coup, vous bataillez pour une sortie txt, rtf…rien n’y fait; votre client veut du MS Word, et puis c’est tout.

Bienvenue dans le monde désenchanté de la génération dynamique de fichiers word en PHP (ben oui, en .NET, ce serait évidemment trop facile).

Lire la suite de cette entrée »

Les mots de passe des utilisateurs

Vous créez une application web (peu importe le langage, nous allons comme à notre habitude fixer les exemples en PHP, mais j’insiste sur le fait que ceci reste valable pour le Java, .NET, etc.) sur laquelle des utilisateurs vont pouvoir (et devoir) s’authentifier; pour ce faire, et c’est l’usage, ils disposeront d’un login et d’un mot de passe. Quelles sont les règles de base, parfois évidentes, à mettre en place ? Quelles contraintes donner aux utilisateurs ? Quid si l’application est une application interne à une société ou une application tout à fait publique ?

Lire la suite de cette entrée »

eXtreme Programming dans le monde réel (Partie 3)

Bon, on avance… Lors du premier épisode, on a rappelé succintement de quoi il s’agit; lors du second, on a déterminé comment confronté les valeurs à la réalité des projets informatiques; il nous reste maintenant à déterminer ce qu’il en est des commandements, et on pourra enfin imaginer ce qu’est un mode XP « dégradé » acceptable dans le monde réel.
Lire la suite de cette entrée »

eXtreme Programming dans le monde réel (Partie 2)

Nous y sommes; nous avons rapidement revu ce qu’est le mode XP dans un précédent article (cf. « eXtreme Programming dans le monde réel (Partie 1) » ), et nous allons maintenant confronter la viabilité de ses valeurs et des ses commandements à la réalité des projets.

Lire la suite de cette entrée »

eXtreme Programming dans le monde réel (Partie 1)

Inutile de rejouer le film depuis le début avec résumé des épisodes précédents, je vous fais rapidement le pitch; il y a quelques années, un groupe de personnes telles que des architectes logiciels, des développeurs, des ingénieurs, etc. ont mis au point une méthode de développement sensée être bien mieux adaptée aux projets logiciels modernes que les autres, et l’ont appelée eXtreme Programming (ou XP si affinités). La question du jour — qui sera vraisemblablement traitée sur plusieurs articles, tant le sujet est copieux — est de savoir dans quelle mesure cette méthodes est implémentable dans la vraie réalité réelle du monde d’aujourd’hui. Est-il réellement possible de réaliser des projets en mode XP ? Si non, quel est le plus grand sous-ensemble des règles édictées par le mode XP qui puisse réellement être implémenté ?

Lire la suite de cette entrée »

Les grands principes de nomenclature – Partie I : les classes

Je ne vais pas aller par quatre chemins : déterminer des règles de nomenclature, des naming guidelines and conventions, et surtout s’y tenir, c’est une des clés d’une bonne implémentation dans le monde fou et parfois cruel du développement informatique. Pas besoin que j’en fasse des caisses, si vous ne saisissez pas l’intérêt de la chose, je ne peux pas faire grand chose pour vous à ce stade, et c’est seulement votre expérience qui vous ramènera sur le droit chemin. Cet article va se concentrer sur les classes; de prochains articles parleront du modèle de données, du design pattern, et sera complété au fur et à mesure de ma volonté de le faire.
Lire la suite de cette entrée »