
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é tous.
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.
Alban Jubert PHP Mise à jour, Yii framework

Petite astuce pour optimiser le poids d’un SWF grâce aux modes de fusion.
Récemment, sur un projet, j’ai du réaliser une petite anim en Flash sur la home page du site Cavissima. J’avais une grosse contrainte de poids, j’ai optimisé à fond les éléments graphiques mais ce n’était pas suffisant. L’élément graphique le plus lourd était un PNG transparent représentant une vigne.
La solution que j’ai mise en place est d’exporter la vigne sur fond blanc (donc pas de transparence) et de mettre le MovieClip qui contient l’image dans le mode de fusion « Darken ».
Vu que j’ai un fond claire, le Player Flash va « aplatir » mon image sur le fond en fusionnant les pixels de teintes claires. Cela fonctionne dans mon cas parce que j’ai un fond claire, si il avait été foncé cela n’aurait pas fonctionné.
J’ai fait un petit exemple :
- fichier swf avec PNG transparent —> 85 Ko
- fichier swf avec PNG sur fond blanc en mode fusion « darken » —> 36 Ko
This movie requires Flash Player 9
Fichiers source de l’exemple ici.
Pascal Achard Adobe Flash, Technologies coté client Adobe Flash, optimisation

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.
Alban Jubert PHP Framework, Mise à jour, PHP, Yii framework

Pour utiliser les classes du pakage fl (fl.transitions.Tween, fl.motion.easing, …) dans un projet FlashDevelop avec le compilateur Flex et CS4, il faut dire à FlashDevelop où elles sont stockées. Pour ce faire, il suffit d’aller dans les settings –> AS3Context –> User Classpath et de copier/coller le chemin aux classes. On peut aussi aller dans Tools –> Global Classpaths…
Voici ce qu’on peut trouver dans mes « Global Classpaths » pour une config avec CS4 et Windows 7 64 bits :
C:\Program Files (x86)\Adobe\Adobe Flash CS4\Common\Configuration\Component Source\ActionScript 3.0\User Interface
C:\Program Files (x86)\Adobe\Adobe Flash CS4\Common\First Run\Classes
C:\Program Files (x86)\Adobe\Adobe Flash CS4\Common\Configuration\ActionScript 3.0\projects\Flash\src
C:\Program Files (x86)\Adobe\Adobe Flash CS4\Common\Configuration\Component Source\ActionScript 3.0
Attention pour CS3 les chemins sont un peut différents, si je me trompe pas ça doit être un truc du genre :
C:\Program Files (x86)\Adobe\Adobe Flash CS3\en\Configuration\ActionScript 3.0\Classes
Pascal Achard Adobe Air, Adobe Flash, Adobe Flex, Outils de développement Actionscript 3, FlashDevelop
Les standards ont du bon. Malgré tout, parfois, ils apportent leurs lots de petits problèmes sur lesquels on peut passer quelques heures en s’arrachant les cheveux (et il m’en reste si peu…)
Dernier exemple en date, ce sont 2 ou 3 mystérieux pixels qui apparaissent sous les balises images (img) lorsqu’on utilise le standard XHTML Strict. Pour illustrer le phénomène, prenons ce cas assez classique de montage d’image découpée en plusieurs tranches assemblées dans un tableau.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>New Web Project</title>
</head>
<body>
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="img/P1010478_01.jpg" alt="" /></td>
</tr>
<tr>
<td><img src="img/P1010478_02.jpg" alt="" /></td>
</tr>
</table>
</body>
</html> |
Ce qui donne comme résultat (sous Firefox) :

Les block images « poussent » leurs conteneurs (en l’occurrence la cellule de tableau) de quelques pixel en bas. Ca n’a évidement rien de très esthétique et ça n’est pas le résultat attendu.
Donc, à moins de changer la déclaration du type de document HTML, il va falloir ruser.
Pour contourner ce problème, il faudra définir l’affichage de vos images en mode « block » dans votre CSS. Vous pouvez le faire de plusieurs façons :
- Systématiquement dans une déclaration CSS globale de vos balises img, l’inconvénient étant que celles-ci produiront un retour à la ligne (dans ce cas, il faudra les définir localement en mode
float afin d’éviter ces retours).
- En déclarant localement un style dans vos balises
img de type style="display:block;".
- En créant une classe spécifique que vous affecterez aux images nécessitant l’ajustement.
Cette dernière solution peut donner au final :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>New Web Project</title>
<style type="text/css" media="screen">
.block {
display:block;
}
</style>
</head>
<body>
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="img/P1010478_01.jpg" alt="" class="block" /></td>
</tr>
<tr>
<td><img src="img/P1010478_02.jpg" alt="" class="block" /></td>
</tr>
</table>
</body>
</html> |
Et voila le rendu enfin correct :

Allez, à nous les montages de fou en XHTML Strict
Alban Jubert Divers Astuce, CSS, Images, Standard, XHTML

Disponible depuis quelques jours, la nouvelle version d’Aptana, IDE basée sur Eclipse et orientée développements Web, laisse un sentiment pour le moins mitigé. On se rappel des aléas des précédentes mises à jour mineurs un peu chaotiques, mais on pensait ce temps révolu. Pourtant, cette version 2, même si elle ne comporte pas de bugs majeurs, n’apporte pas que très peu de nouveautés à cet environnement. Pire encore, certains utilisateurs en seront pour leurs frais concernant la suppression de certaines fonctionnalité :
- Bye bye le pourtant fort bon module PHP. Il faudra maintenant se contenter du plugin officiel PHP pour Eclipse, autrement dit, PDT. L’équipe d’Aptana nous clame que c’est pour le meilleur… à voir.
- Oublié aussi la fonction de synchronisation de fichiers, donc obligé de lancer un outil tiers afin d’effectuer ce type d’opération
- Le filtrage des fichiers invisibles est aux abonnés absents. Maintenant, c’est tout ou rien (et bien planqué dans les paramètres du panneau « fichiers »)
- Certaines préférences de la version 1.5 ne sont pas importées (partiellement corrigé dans la version 2.0.1)
- Acheteurs de la version Pro, merci beaucoup, mais dorénavant, il n’y aura plus de régime de faveur
- J’en passe…
L’ajout principal de cette version (car il y a quand même un peu de neuf) concerne la refonte complète du système de gestion des fichiers et des connexions. Tous les panneaux fichiers, connexions et serveurs ont été fusionnés autorisant des copies simplifiées entre les différents éléments et une meilleur clarté dans la gestion des connexions par projet.
Mais ceci est bien faible en regard de ce que l’on perd en effectuant la mise à jour depuis la version 1.5. Et d’autant plus incompréhensible qu’une enquête de satisfaction avait récemment été menée auprès des utilisateurs afin de savoir ce qui devait être intégré dans les futures versions de l’IDE ! On touche sans doute la les limites du modèle Open Source.
Espérons que l’équipe de développement entende le mécontentement des utilisateurs. Certaines remarques semblent avoir déjà été prises en compte (un nouveau module de synchro serait dors-et-déjà en chantier).
En attendant, certains utilisateurs déçus pourraient bien considérer d’autres environnements (NetBeans par exemple) ou revenir à des environnements plus stables, fonctionnellement parlant, comme le bon vieux Eclipse de base. A vous de voir.
Alban Jubert Outils de développement Aptana, Eclipse, IDE, Mise à jour

Une mise à jour de MonsterDebugger est dispo, il s’agit de la version 2.51. Pour ceux qui ne le serrait pas, MonsterDebbuger est un outil assez intéressant si vous codez en ActionScript 3. Fait en Air et OpenSource, il offre la possibilité de tracer de façon détaillée vos variables, on peut aussi avoir une vue arborescente d’une application. En plus de ça, il est aussi possible d’éditer et donc de modifier les valeurs des propriétés à l’exécution, les méthodes de vos classes peuvent être aussi testées en « live ».
Voici le log :
Version 2.5.1 changes:
* Added constants that where accidentally removed in 2.5
Version 2.5 changes:
* Focus on a live application node refreshes the node
* Quotes are now displayed correctly
* Multidimensional Vectors now work properly
* Minimum display size is smaller
* Added a shift modifier to the numberic stepper
* Added auto scroll the traces datagrid
* Added auto clear the traces on connect
* Added auto update for the inspector
* Added a new overview in the memory monitor
* All event listeners are now weak references
* All methods are protected instead of private
* Messages are now bufferd and send on connect
Je me sers professionnellement de ce debugger depuis maintenant 6 mois et j’en suis très satisfait. Vue qu’il est OpenSource, on peut facilement le modifier avec FlahBuilder.
Pour info, j’ai fais remonté, via twitter, à l’équipe de De Monster une petite boulette qui s’était glissée dans la version 2.5 (suppression des constantes public static const COLOR_NORMAL…). Ils ont très vite réagit en déployant la version 2.5.1.
Bravo l’équipe des monstres de De Monster !t
Pascal Achard Adobe Air, Adobe Flash, Adobe Flex, Outils de développement Actionscript 3, Débuggeur, Mise à jour

Encore une mise à jour de FlashDevelop 3. Elle est dispo ici, voici le log :
* Whole word option added to the quick find control
* Added an option to force FlashDevelop render controls only with system colors
* You can now find and replace files in ProjectManager directories and classpaths via context menu
* ASCompletion fixes, regex engine fix and and small user interface fixes
Aller hop, on update.
Pascal Achard Adobe Flash, Adobe Flex, Outils de développement Actionscript 3, FlashDevelop

Je suis tombé sur ce framework un peu par hasard (merci twitter). The HYPE framework met en avant le fait que l’actionscript gagne en maturité ce qui est très bien mais qui à comme effet pervers de le rendre moins accessible notamment pour les créatifs.
Le principal intérêt de HYPE est de permettre aux personnes qui ne sont pas hard coder ou aux néophytes de pouvoir faire mumuse de façon créative sans être bridé par une connaissance un peu limite en AS3.
Je trouve ce framework assez intéressant, la façon dont il a été pensé fait qu’il n’est pas seulement destiné aux créatifs ou aux débutants. C’est une très bonne base qu’on peut facilement compléter en ajoutant ses propres améliorations.
Je vais suivre de près son évolution, affaire à suivre !
Pascal Achard Adobe Flash, Inspiration, Technologies coté client Actionscript 3, Framework, Inspiration

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
Alban Jubert PHP Mise à jour, PHP, Yii framework
Commentaires récents