Pages pour juillet 2009

Les commandes à retenir sous symfony

samedi 18 juillet 2009

Les initialisations

Les initialisations ne contiennent pas de paramètres, a part le nom des objets qui sont créés (projet, appli, module)

Générer un projet

$ ./symfony init-project room-on-line

Générer une application

$ ./symfony init-app accountancy

Avec symfony, un projet peut contenir plusieurs applications. Dans cet exemple j’ai créé une application de facturation nommée : accountancy

Générer un module

$ ./symfony init-module accountancy customer
$ ./symfony propel-generate-crud accountancy customer Customer

Les applications contiennes à leur tour des modules. Ici j’ai ajouté le module client (customer), dans l’application de facturation (accountancy)

La seconde ligne permet de générer les actions de lecture et de modification de la base. Je ne comprends pas pourquoi elles ne sont pas faites systématiquement comme en rails…

Le modèle de données

Ici j’utiliserai propel.

Éditer le modèle de données

Il faut éditer le fichier : config/schema.yml

propel:
customer:
id:            ~
pays_id: { type: integer, foreignTable: customer, foreignReference: id}
name:         { type: varchar(255), required: true }
shortname:    { type: varchar(255) }
adress:       { type: varchar(255) }
zipcode:      { type: varchar(5)   }
city:         { type: varchar(255) }
phone:        { type: varchar(15)  }
booking:
id:            ~
customer_id:   ~
date:         { type: date         }
valuation:
id:            ~
date:         { type: date         }
comment:      { type: longvarchar  }
invoice:
id:            ~
booking_id:    ~
customer_id:   ~
number:       { type: integer      }
paid_at:      { type: date         }
is_paid:      { type: boolean      }
is_cancelled: { type: boolean      }

Maintenant que le modèle de données à été édité, on va construire le modèle de données en fonction de ce fichier schema.yml.

Construire tout (les formulaires, le sql…)

$ ./symfony propel:build-all

Symfony est désormais prêt à utiliser ce modèle de données, mais il n’a pas encore appliqué le modèle à la base de données.

Injecter le code SQL dans la base de données

$ ./symfony propel:insert-sql

La base de données contient maintenant les tables du projet.

Générer des actions de test

$ ./symfony propel:generate-module accountancy customer Customer

Je viens de créer les actions CRUD (Create Read Update Delete) du module client (customer).

Ce module se trouve dans l’application accountancy, et stocke ses données dans la base Customer.

Vider le cache

$ ./symfony cc
Symfony génère énormément de fichier cache pour améliorer ses performances. Le problème c’est que ce cache doit régulièrement être vidé, notamment avant de faire un commit sur un serveur de source comme subversion.

Internationaliser

Générer ou mettre à jour un fichier de langue
$ ./symfony i18n:extract --auto-save --auto-delete accountancy fr
Mon fichier i18n français pour l’application accountancy a été regénéré avec les valeurs des templates.

Numériforge est né

vendredi 17 juillet 2009

Vendredi 17 juillet 2009, 13h50 : Paris, rue du Louvre

Me voilà sorti de la Chambre de Commerce et d’Industrie de Paris, avec en main tous les papiers officiels de la création de Numériforge.

Pour le moment la société est basée à mon domicile, j’ai comme materiel mon vieux PC, et un serveur chez OVH.

J’ai commencé à travailler pour mon premier client : room-on-line.com, il propose un système de réservation pour les hôtels / restaurants. Son projet est d’ajouter à son logiciel existant un module de facturation. Ce projet est bien pour commencer, mais je ne compte pas m’arrêter là…

En tout cas pour le moment je dois me concentrer sur la réussite de ce projet, et sur la viabilité de mon entreprise. Il y a tant de choses à faire que j’espère trouver le temps de rapporter quelques lignes sur ce journal.