Publié par Maxence le lun, 14/09/2009 - 13:49
Ce week-end je m'apprêtait à développer un système de plugin pour Zend_Db_Table quand j'ai eu la présence d'esprit de consulter la feuille de route du ZF (http://framework.zend.com/roadmap). Bien m'en a pris car ce composant est justement prévu pour la prochaine version du framework (1.10). Il a même failli être intégré à la 1.9.
Publié par Maxence le mer, 09/09/2009 - 10:12
Les prix dégressifs sont courants dans le commerce électronique (tout comme dans le commerce traditionnel d'ailleurs). L'idée, c'est que le prix diminue en fonction des quantités demandées. Cela peut également s'appliquer aux tarifs de livraison : plus le poids augmente, plus les frais de livraison augmentent. Par exemple, voici des prix dégressifs pour des tirages photos :
Prix des tirages photos
de 1 à 100 | 0,14 € |
de 101 à 200 | 0,12 € |
plus de 200 | 0,10 € |
Publié par Maxence le lun, 10/08/2009 - 10:20
Dans une application MVC qui a besoin de faire persister des données, les contrôleurs doivent réaliser 4 opérations de base qu'on désigne souvent par l'abréviation CRUD : Create, Read, Update et Delete. Pour une application développée avec le Zend Framework, un contrôleur est en fait une classe dérivée de Zend_Controller_Action. Afin d'éviter de dupliquer inutilement du code, les développeurs choisissent souvent d'écrire une classe de base qui fournira une implémentation standard de ces opérations.
Publié par Maxence le mer, 22/07/2009 - 09:50
Il y a quelques jours, j'avais écrit un article qui expliquait comment utiliser les relations Zend_Db_Table pour charger à la demande (lazy loading) les enregistrements parents d'un objet Zend_Db_Table_Row.
Publié par Maxence le ven, 17/07/2009 - 12:18
Zend_Db_Table permet de définir des relations entre les tables. Si par exemple on a une table factures et une table clients :
CREATE TABLE `clients` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`nom` char(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `factures` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`numero` char(20) NOT NULL,
`client_id` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `client_id` (`client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `factures`
ADD CONSTRAINT `client_ibfk` FOREIGN KEY (`client_id`)
REFERENCES `clients` (`id`) ON DELETE CASCADE;
Publié par Maxence le mer, 17/06/2009 - 12:41
Quelques idées pour étendre Zend_Db_Table_Abstract.
Publié par Maxence le sam, 06/06/2009 - 16:58
Le module Active Record de Rails convertit les colonnes de type date en instance de la class Date de Ruby. On peut très simplement faire la même chose avec Zend_Db_Table_Row. Il suffit de surcharger la méthode magique __get.
Publié par Maxence le lun, 23/02/2009 - 15:03
Utiliser Zend_View_Helper_HeadScript::prepend pour charger vos scripts Javascript dans un layout
Les scripts Javascript doivent être chargés dans un ordre bien particulier. Si vous utilisez ExtJS par exemple, vous devez d'abord charger un adaptateur comme ext-base.js par exemple, puis le fichier principal ext-all.js, puis éventuellement un fichier spécifique à votre vue (login.js par exemple).
Publié par Maxence le mar, 18/11/2008 - 17:09