Archive

Articles taggués ‘PHP’

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: , ,

PHP : c’est de l’hébreu…

…et ce n’est pas qu’une expression :)

Petite aventure qui m’est arrivée cette semaine. Je testais une nouvelle extension Yii lorsque, une fois installée sur mon serveur, j’obtiens ce message d’erreur en la testant :

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

Woaou ! Je vous demande pardon ? Ca y-est, mon serveur devient dingue ou alors je suis dans un épisode de Fringe…

Après quelques recherches sur le net, en réalité, il s’avère que mon serveur n’y est pour rien (pas plus de Massive Dynamics). Il s’agissait en fait d’une petite erreur de syntaxe dans l’extension qui, si elle est exécutée sur un PHP avec APC activée (optimiseur de code), déclenche le dit message.

Explication :

Le message d’erreur est en hébreu, littéralement. Deux développeurs de PHP 3 et Zend Engine 0.5 (Zeev Suraski et Andi Gutmans) qui sont les auteurs du message en quetion sont d’origine israélienne. En traduisant, T_PAAMAYIM_NEKUDOTAYIM veut dire « Token double deux-points ». Initialement, il ne devait s’agir que d’un message à destination interne. Seulement voila, dans certaines conditions, le message fait surface.

En l’occurrence, dans mon cas, il s’agissait d’une mauvaise utilisation d’un accès à une méthode statique d’une classe. Pour les non-familiers avec le concept, un petit tour vers la documentation officielle s’impose. Par exemple dans Yii, pour ne pas être obligé d’instancer un nouvel objet AR, on peut accéder à la méthode model grace à la notation NomClasseAR::model() (notez les doubles deux-points). APC cependant ne semble pas trop apprécier le fait d’accéder à ces méthodes via une variable plutôt que directement via le nom de la classe (normalement supporté depuis PHP 5.3). Un code comme $model::model() (ou $model contient le nom de la classe) provoque le fameux message. Dans ce cas, pas le choix, il faut instancier un objet via new $model qui retourne le modèle en question.

Si les voyages forment la jeunesse, PHP forme aux langues étrangères ;)

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.

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, 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: , ,

Smarty 3, c’est pour bientôt

www.smarty.net.gif

Smarty, le célèbre et performant moteur de template PHP va bientôt passer le cap de la version 3.

Selon ses auteurs, cette version permettrait un gain de performance des templates entre 2 et 5 fois plus rapide que la version 2 actuelle. Pour l’occasion, le moteur a complètement été réécrit afin de bénéficier des dernières évolutions de PHP 5 (adieu la compatibilité avec les versions PHP 4 donc). Outre les gains de performance, bon nombres d’améliorations ont été apportées au langage qui permet, entre autre, une manipulation plus simple des objets et la possibilité de chaîner les appels (genre jQuery, les connaisseurs comprendrons ;) ).

Rappelons que bon nombre de projets open-source PHP sont basés sur ce moteur (PrestaShop par exemple, pour ne citer que lui).

Les plus aventureux d’entre vous peuvent tester dors et déjà la nouvelle version disponible sur le SVN suivant :

svn checkout http://smarty-php.googlecode.com/svn/branches/Smarty3Alpha/

Miam.

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: , ,

Microsoft aime PHP…

CodePlex

Microsoft dans sont effort d’ouverture à l’Open Source propose sur son site CodePlex, entre autre, quelques librairies et outils PHP (certaines déjà connues) bien pratiques. Elles s’avèrent même indispensables si vous souhaitez créer des passerelles entres les outils de l’éditeur et vos projets. Quelques exemples :

  • PHPExcel : une extraordinaire librairie qui sait lire, écrire les documents Excel mais également les exporter directement en HTML ou PDF par exemple.
  • PHP Toolkit for ADO .Net Data Service : cette librairie vous permet de communiquer facilement avec les services de données .NET
  • Silverlight Multi File Uploader : un sympathique uploader de fichier multiples a intégrer dans des projet Silverlight/PHP

Vous trouverez peut-être votre bonheur parmi la grande quantité de projets PHP (plus ou moins utiles et finalisés) hébergés sur le site de CodePlex. A suivre…

Zend Framework 1.9.0 disponible

Zend Framework

Décidément, ça ne traine pas chez Zend. A peine la beta et la RC 1 publiées il y a quelques jours, voici que la version 1.9.0 definitive est disponible.

On notera que cette version se concentre sur :

  • une meilleur compatibilité avec PHP 5.3
  • une amélioration notables de tous les composants orientés entreprise

Bref, ce framework commence à s’imposer définitivement comme la référence du milieu profressionnel.

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

Switch to our mobile site