Archive

Articles taggués ‘Extensions’

Yii Framework – Une extension pour la mise en cache des data providers (et plus encore…)

Yii Framework

De retour avec une petite extension pour Yii Framework concoctée par votre serviteur.

Yii 1.1 a introduit un certain nombre de classes assez pratiques dont une classe reprenant le concept de data provider pour les active record : CActiveDataProvider.

Cette classe est intensivement utilisée par certains widgets dont CGridView en particulier.

Par ailleurs, Yii 1.1.7 permet désormais de gérer la mise en cache aisée des requêtes des Active Record permettant des gains de performance et un soulagement de la base de données. Malheureusement,  CActiveDataProvider n’a pas été adaptée pour tirer partie de cette possibilité. Qui plus est, cette classe comporte un bug assez embêtant : dès lors que votre Active Record utilise des critères ‘having’ et/ou ‘group’, le nombre d’éléments résultants calculés par le data provider n’en tient pas compte (produisant des effets indésirables, notamment sur les paginateurs qui affichent un nombre de pages incohérent).

En attendant d’éventuelles évolutions et corrections natives, vous pouvez utiliser mon extension EActiveDataProviderEx afin de pouvoir bénéficier du cache et de la correction du compte du nombre d’éléments à télécharger sur le site officiel de Yii Framework.

Lire la suite…

Categories: PHP Tags: , ,

Yii news – Nouveau tutorial « barre de progression »

Yii Framework

Bon. Le blog a été particulièrement calme ces derniers temps… On va tenter de le ranimer un peu ;)

Quelques nouvelles de mon Framework PHP préféré (et j’espère le votre aussi).

Yii 1.1 continu à évoluer en intégrant à chaque version sont lot d’améliorations et corrections. A noter que la prochaine version 1.1.6 se verra dotée d’un bien pratique générateur de requêtes.

Le site de Yii Framework a également connu une petite révolution en octobre dernier en changeant son thème graphique (il était temps). J’apprécie particulièrement la section référence à l’API très bien repensée (avec affichage des portions de code de chaque méthode, super idée).

Signe que ce framework rencontre de plus en plus d’adeptes, le nombre d’extensions publiées est en littérale explosion. Bien sûre, le niveau de qualité et d’intérêt n’est pas toujours au rendez-vous, mais on trouve quelques perles bien pratiques pour certains projets, notamment des projets de partage de générateurs de code pour Gii dont certains sont très prometteurs (Giix).

Mon extension personnelle CSaveRelationsBehavior n’a guère évoluée. Quelques optimisation et correctifs sont en préparation et son utilisation au quotidien dans le cadre de mes projets professionnels actuels se révèle maintenant indispensable.

Enfin, chose promise depuis un bout de temps, la section Tutoriaux du blog vient de s’enrichir d’une nouvelle page : Yii : Une barre de progression pour les processus longs. Vous y découvrirez comment faire patienter élégamment vos utilisateurs pendant le traitement de tâches lourdes. Bonne lecture et vos suggestions sont toujours les bienvenues.

CSaveRelationsBehavior : un comportement Yii pour enregistrer les données relationnelles

Yii Framework

CSaveRelationsBehavior, un comportement pour Yii Framework, vient d’être publié par votre serviteur.

L’objet de ce comportement est d’étendre les fonctionnalité des ActiveRecords afin de permettre l’enregistrement automatique des données relationnelles HasMany et ManyMany lorsque le modèle principal est créé ou modifié.

En effet, contrairement à d’autres framework comme CakePHP ou Symphony, cette fonctionnalité n’est pas incluse nativement dans Yii. Rien de bien problématique dans la mesure ou cette opération peut être écrite au besoin au niveau des modèles le nécessitant. Mais comme j’étais lassé de devoir reproduire ce genre de code fréquemment, l’écriture d’un comportement pour les ActiveRecord c’est assez naturellement imposé.

Amis développeurs Yii, vos commentaires sont les bienvenus :)

[Edit 17/05/2010 : Deux applications de démonstrations sont maintenant disponibles en téléchargement sur le dépôt de l’extension. Elles permettent de se faire une idée très précise de ce qui est réalisable avec cette extension qui est désormais également hébergée sur Google Code (documentation, dépôt SVN, rapport de bugs…).]

Lire la suite…

Best of des extensions pour Yii Framework

Yii Framework

Pour les développeurs sous Yii (qui sont de plus en plus nombreux), voici mon top 6 des meilleurs extensions disponibles sur le site officiel :

  1. nestedset : Si le tree behaviour de CakePHP vous manque dans vos développements Yii, c’est l’extension qu’il vous faut. Il s’agit d’une très bonne implémentation de concept de Preordered Tree Traversal. Encore à l’état de beta, mais hautement utilisable
  2. cclientscriptminify : Vous voulez optimiser et compresser automatiquement vos javascripts et css sur votre site de production ? Cette extension complète efficacement l’API de Yii afin d’y parvenir sans difficultés (gains de performance pour vos utilisateurs finaux à la clé)
  3. xreturnable : Un excellent comportement de contrôleur qui vous permet de gérer les url de retour. Cela permet de gérer facilement le cas classique ou, lorsqu’un utilisateur accède à l’édition d’un enregistrement par une liste paginée ou triée, vous souhaité le re-diriger exactement sur la page et le contexte d’où il est parti après validation du formulaire.
  4. jui : Intégrer des interfaces jQuery UI dans un framework PHP n’a jamais été aussi simple
  5. image : Excellente interface entre Yii et la classe de manipulation d’images de Kohana. La création de vignettes devient un jeu d’enfant
  6. mailer : Un très bon warpper pour utiliser la classe d’envoi de mails PHPMailer. Quasiment indispensable dans un projet digne de ce nom

Evidement, l’utilité de ces extensions variera pour vous en fonction du type d’application que vous développez.

Les autres extensions proposées sur le site sont loin d’avoir toutes le même niveau d’intérêt ou de qualité. Malheureusement, certaines sont même largement buggées (ephotovalidator par exemple) ou très mal implémentées (acselect…). Donc avant de vous lancer dans l’installation d’une extension, la prudence est de mise. N’hésitez pas à jeter un oeil sur le code source de ce que vous installez afin d’éviter les déceptions.

Enfin, de nombreuses extensions sont également trouvables dans le forum. La création d’une extension n’est pas très compliquée. Un futur tutorial vous montrera la marche à suivre.

A bientôt donc :)

Categories: PHP Tags: , ,
Optimization WordPress Plugins & Solutions by W3 EDGE