Archive

Articles taggués ‘Yii framework’

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…

Yii 1.1.2 – Gii inside

Gii logo

Comme à son habitude, l’équipe de développement de Yii Framework vient de publier une mise à jour 1.1.2.

Au delà des habituelles corrections de bugs (une vingtaine) et d’améliorations (mise à jour de jQuery UI 1.8.1, support des relations dynamiques pour les modèles…) que vous pouvez voir ici, la grande nouveauté s’appelle Gii.

Gii est un puissant générateur de code dédié à Yii et vient compléter (pour ne pas dire remplacer) le générateur en lignes de commandes nommé yiic. En fait, il reprend les principes de son aîné (lui même inspiré des célèbres générateurs de Ruby on Rails) à savoir :

  • un générateur de modèles (qui sait lire les métas-informations des bases de données afin de créer automatiquement les régles de validation et les éventuelles informations relationnelles)
  • un générateur de contrôleurs
  • un générateur CRUD qui, en partant d’un modèle existant, est capable de généré un contrôleur est ses vues associées permettant de lister, voir, administrer, créer, mettre à jour et supprimer des enregistrements
  • un générateur de modules
  • enfin, un générateur de formulaires (nouveau dans Gii)

Tout ça, sous la forme d’une élégante interface web permettant de contrôler précisément la génération des fichiers (vue des différences entre les fichiers existant et ceux générés par exemple).

Mais ça n’est pas tout. Gii permet de facilement créer (avec un peu de code tout de même) vos propres générateurs. Et la création de vues personnalisées est un jeu d’enfants si vous désirez ajouter les fonctionnalité non prises en charge par le générateur natif.

Pour l’occasion, une documentation spécifique a été produite, à consulter ici.

Bonne génération à tous :)

Yii Framework 1.1.1 et 1.0.12 disponibles

Yii Framework

La maintenance de deux versions d’un framework n’est sans doute pas chose aisée, et on peut saluer l’effort de la (petite) équipe de développement de Yii qui maintient de cap malgré tout.

Voici donc les nouvelles versions mineures des deux branches majeures du framework :

Yii Framework 1.1.1 :

  • Plus d’une vingtaine de correction de bugs divers, essentiellement liés au passage à la nouvelle version majeure
  • La classe CActiveForm supporte désormais les validations coté serveur et coté client avec un minimum de code
  • L’outil en ligne de commandes yiic a été réécrit afin de supporter le multi-layout et le support du filtrage des vues en mode liste lors de la génération de code CRUD
  • Les commandes yiic peuvent désormais être déclarées de façon globales de telle sorte que vous pouvez partager une même commande partagée par plusieurs projets différents

Yii Framework 1.0.12 :

  • Une petite dizaine de correction de bugs mineurs
  • 3 améliorations relatives données relationnels des ActiveRecords, la classe CUrlManager et la classe CDbCriteria

Pour la liste complète des changements, c’est ici que ça se passe.

Categories: PHP Tags: ,

Yii Framework 1.1, c’est parti

Yii Framework

Le 10 janvier dernier a sonné l’arrivée de la nouvelle version majeur 1.1 de Yii Framework.

Alors que les évolutions majeurs étaient bloquées depuis la version 1.0.5 et que les révisions ultérieures n’apportait que des corrections de bugs et quelques améliorations mineurs (les mise à jour de la version 1.0 continueront jusqu’en décembre 2010 toutefois), cette nouvelle version apporte son lot de nouveauté :

  • Un nouveau générateur de formulaire orienté objet (et non interface)
  • Ajout du support des tests unitaires et fonctionnels via PHPUnit et, c’est moins courant, une passerelle avec Selenium pour les tests d’interface automatisés
  • Changements au niveau de la génération des requêtes liées aux données relationnelles permettant de récupérer les données liées en une requête (plus simple à gérer dans le cas de conditions complexes)
  • Les skins sont désormais applicables aux widgets
  • La déclaration des « safe attributes » a été complètement repensée
  • La génération des alias de tables liées au ActiveRecord a été largement simplifiée
  • On peut indiquer un prefixe a ajouter automatiquement aux noms des tables
  • Enfin, les extensions tiers se voient complétées par une riche bibliothèque officielle nommée Zii (encore peu documentée mais dans laquelle on peut trouver quelques pépites en cherchant bien)

Le revers de la médaille de toutes ces nouveautés et changements est que les développements réalisés avec la version 1.0 nécessiteront probablement des modifications plus ou moins importantes afin de tourner sur la version 1.1 :

  • Adaptation des modèles concernant les « Safe attributes » ainsi que les déclarations des relations et éventuellement, modification de certains événements dont les paramètres ont changés (beforeValidate et afterValidate par exemple)
  • Modification de la déclaration de certains ActiveRecord afin de prendre en compte les nouveaux noms d’alias
  • Modification des vues utilisant des données tabulaires

Ce qui au final, pour certains projets mettant en oeuvre beaucoup de modèles peut se révéler un travail conséquent.

Categories: PHP Tags: , , ,

Yii Framework 1.0.10

Yii Framework

Parallèlement au développement de la future mise  à jour majeur de Yii (1.1) dont la version alpha est disponible, le framework PHP continu ses avancées et améliorations sur sa version stable  1.0.10

Voici le traditionnel extrait de la liste des corrections et améliorations :

  • une dizaine de bugs corrigés (Captcha, cache, Tabview, ActiveRecord…)
  • CDbCriteria s’enrichit de nouvelles méthodes permettant de créer des conditions encore plus simplement (addInCondition et addSearchCondition)
  • une nouvelle méthode YiiBase::registerAutoloader permettant une intégration plus simple des frameworks tiers (ZendFramework par exemple)
  • un nouveau validateur CBooleanValidator permettant de valider facilement des cases à cocher par exemple
Categories: PHP Tags: , ,

Yii Framework 1.0.9 est la

Yii Framework

Amis de Yii Framwork, vous pouvez télécharger la dernière mise à  jour en date, la version 1.0.9.

Au menu :

  • le lot habituel de correction de bugs divers
  • une optimisation importante des ActiveRecord pour gérer plus efficacement les requêtes SQL lièes aux données relationnelles ainsi que de nouveaux événements ‘beforeFind‘ et ‘onBeforeFind
  • une bonne vingtaine d’améliorations portant, entre autre, sur divers classes (CDbCache, CUrlManager, CHtml, CSort, CPagination), une meilleur gestion des timezone et la mise à jour du plugin jQuery d’upload de fichiers multiples.

La liste complète des changement peut être vue ici.

Au chapitre des news, l’équipe s’est récemment agrandie pour accueillir de 4 nouveaux membres qui vont oeuvrer pour les nouvelles versions de Yii. Le framework a donc manifestement de beaux jours devant lui.

Des nouvelles de Yii Framework (1.0.8, tuto intéressant et compatibilité PHP 5.3…)

Yii Framework

Ca faisait longtemps, avec les vacances, que je ne vous avais pas « bassiné » avec Yii Framework ;)

Yii Framework 1.0.8 est donc disponible depuis le 9 août dernier (comme le temps passe) et apporte, entre autre :

  • la correction d’une bonne douzaine de bugs divers
  • des améliorations des classes CUrlManager, CHtmlCCaptcha, CCompareValidator et CActiveRecord
  • un changement dans l’ordre de priorité de l’inclusion des fichiers dans lequel les directives Yii::import() prennent le pas sur les autres types d’inclusion

Vous pouvez voir la liste de tous les changements ici.

Par ailleurs, un excellent tutorial vient d’être publié palliant à un manque de documentation concernant le développement de comportements et la gestion des événements qui sont un aspect important des concepts de Yii. Foncez, c’est extrêmement instructif.

Sur ce post de Qiang (lead développeur de Yii), on apprend que l’optimisation du framework pour PHP 5.3 n’est pas à l’ordre du jour. Il justifie cette stratégie (contraire à celle retenue par Zend Framework 1.9 par exemple) par le peu de bénéfices que cela apporterait au framework. Cette évolution est donc envisagée pour une future version. Néanmoins, en l’état, Yii semble parfaitement compatible avec PHP 5.3.

Categories: PHP Tags: , ,

Yii Framework 1.0.7 disponible

Yii Framework

Pas d’accalmie estivale pour Yii Framework : la version 1.0.7 est disponible.

Outre une quinzaine de bugs corrigés, on trouve dans cette livraison :

  • la possibilité d’afficher les informations de la pile d’appel avec Yii::trace
  • l’ajout d’une propriété index dans les paramètres relationnels des ActiceRecord permettant d’indiquer explicitement la colonne utilisée comme clé d’index
  • un nouveau paramètre anchor dans CController::redirect permettant d’effectuer la redirection vers… une ancre (bravo)
  • la possibilité de déconnecter un utilisateur sans forcément perdre toutes ses données de session (attention, une petite mise à jour de votre code sera peut-être nécessaire)
  • CHtml::errorSummary s’enrichit d’un paramètre permettant de spécifier les options HTML
  • CHttpRequest::getBrowser permet désormais de récupérer la valeur userAgent

Toutes les modifications peuvent être trouvées ici.

A bientôt pour un nouveau tutorial autour de la création d’extension pour Yii.

Categories: PHP Tags: , ,
Performance Optimization WordPress Plugins by W3 EDGE

Switch to our mobile site