AMF / Zend Authentication using Database

Flash, Flex, Zend 20 Commentaires »

Cet article s’inscrit à la suite du précèdent billet : Authentification & Autorisation avec Zend AMF.

Zend_Amf_Adobe_Auth est une classe livré avec Zend 1.10. Elle peut être utilisée comme service d’authentification pour un serveur Zend_Amf_Server. Le soucis, c’est que cette classe fonctionne conjointement avec un fichier XML réputé statique.

Voici donc le code d’une classe qui permet l’authentification d’un utilisateur AMF via la base de données.
Sachant que nous développons cela pour offrir des services AMF, cette classe utilisera la logique métier implémentée au sein des services.

class Auth_AmfDatabase extends Zend_Amf_Auth_Abstract
{
    protected $_acl;
    protected $_users = array();
 
    public function __construct()
    {
        $this->_acl = new Zend_Acl();
 
        $oServiceRole	= new Service_Role ();
        $oRoles		= $oServiceRole->fetchAll ( );
 
        foreach ( $oRoles as $oRole )
        	$this->_acl->addRole ( new Zend_Acl_Role( $oRole->title ) );
    }
 
    public function getAcl()
    {
        return $this->_acl;
    }
 
    public function authenticate()
    {
        if (empty($this->_username) ||
            empty($this->_password)) {
            require_once 'Zend/Auth/Adapter/Exception.php';
            throw new Zend_Auth_Adapter_Exception('Username/password should be set');
        }
 
        $oServiceUser	= new Service_User ();
        $oUser		= $oServiceUser->authentication ( $this->_username, $this->_password );
 
        if ( null == $oUser )
        {
        	return new Zend_Auth_Result(Zend_Auth_Result::FAILURE,
                null,
                array('Username and / or Password not found')
                );
        }
        else
        {
        	$id = new stdClass();
       	 	$id->role = $oUser->role->code;
       	 	$id->name = $oUser->username;
 
        	return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $id);
        }
    }
}

Le constructeur récupère l’ensemble des rôles existants en base de données pour peupler l’objet ACL.
La méthode authenticate va vérifier le couple Login / Password, et en cas de succès va retourner un objet Zend_Auth_Result contenant lui même un objet standard.
Cet objet standard doit avoir une propriété role et name, le rôle contiendra l’identifiant que vous avez définit dans vos autorisations ACL. Le name devra contenir le login de votre utilisateur.

Cette classe a été inspirée par Zend_Amf_Adobe_Auth. N’hésitez pas à l’adapter pour vos propres besoins.

Mots-clefs :, , , , ,
 

Flash – Restreindre l’instanciation d’une classe par un seul objet

AIR, Flash, Flex 4 Commentaires »

Comment restreindre l’instanciation d’une classe à une autre classe.

Voici une idée complètement « crazy » au quelle je vais apporter une solution à travers ce billet.
Nous allons utiliser un principe connu par de nombreux framework Web qui permet d’assurer la validité d’un formulaire: Le jeton !

L’intérêt étant de combiner cela avec le pattern Factory.

public class Master
{
	private static var _jeton	: Number	= -1;
 
	public function Master()
	{
	}
 
	public static function createSlave () : Slave
	{
		var _tmpSlave	: Slave;
 
		_jeton		= Math.random() * 500;
		_tmpSlave	= new Slave (_jeton);
		_jeton		= -1;
 
		return _tmpSlave;			
	}
 
	public static function get jeton () : Number
	{
		return _jeton;
	}
}
public class Slave
{
	public function Slave(_pJeton : Number = 0) : void
	{
		if (Master.jeton !== _pJeton && Master.jeton !== -1)
			throw new Error ("Instanciation obligatoire par Master.createSlave");
	}
}
new Slave (); //throw Error
Master.createSlave (); //Retourne un objet du type Slave
Mots-clefs :, , , , ,
 

Configuration ASDoc FlexBuilder

Flex 2 Commentaires »

Même si FlashBuilder pointe le bout de son nez, comme que je suis toujours en retard voici un petit mémo pour configurer ASDoc sous FlexBuilder.

Sous Eclipse / FlexBuilder: Run > External Tools > Open External Tools Dialog…

  • Location: %programfiles%\Adobe\Flex Builder 3\sdks\3.3\bin\asdoc.exe
  • Working Directory: ${project_loc}
  • Arguments: -source-path ./src/ -window-title « ${project_name} » -main-title « ${project_name} » -doc-sources « ${project_loc}/src/ »

Par défaut, la documentation sera dans votre répertoire projet /asdoc-output

Aussi, si vous utilisez des librairies qui se croisent pour vos projets, il faudra indiquer à ASDoc où trouver les SWC correspondants. Pour cela -library-path fera l’affaire.
Pour conserver un lien vers les autres librairies dont Flex, utiliser l’argument comme suit : -library-path+= »${workspace_loc}/Project/bin/ »

PS: Pour le répertoire de ASDoc.exe pensez à utiliser votre version du SDK de Flex, car vous disposez peut-être d’une version différente de la mienne.

Mots-clefs :, , , , , ,
 

Attirer des visiteurs sur un site éditorial grâce à un jeu

Flex, Web Aucun commentaire »

circuit électriqueLes membres de l’équipe de MagicSocket ont développés leur site éditorial en intégrant un jeu assez prenant.

L’idée du jeu est simple : représentation d’un circuit de voiture électrique, avec une compétition possible entre fantôme.

L’intégration du circuit par rapport au contenu éditorial n’a pas été faite de manière classique, le jeu n’est pas dans une cellule d’un coin de la page, mais tout autours du site et entre les différents articles.

Je trouve que l’idée est très bonne pour générer du trafic.
Alors attention, le type de trafic sera surement composé majoritairement de joueur qui n’auront rien à faire du contenu éditorial.
Mais pour une agence de communication / développement, quoi de mieux d’avoir se type d’interface qui fera parler d’elle.

Par contre, nous retrouvons les inconvénients d’un site full flash : lourdeur au niveau du chargement et de l’utilisation, et référencement naturel inexistant.

Mots-clefs :, , , , , ,
 

Reflex : Architecture MVC

Flex 7 Commentaires »

Fabien de la Fabrick a publié une « micro-architecture » MVC pour Flex.
Ces mots de présentation sont :

Souvent dans le monde de Flex, les équipes ne sont pas forcement homogènes. Certains sont habitués à la rigueur de Java, d’autres sont plus “devsigners freestyle” venant du monde Flash. Les premiers aiment les grosses mécaniques comme PureMVC, ou Prana Framework “Spring like”. Les seconds connaissent au mieux Cairngorm, au pire confondent MVC et VMC – ce qui n’a rien a voir, sauf si vous faites une application riche sur le thème de la ventilation.

Pour l’instant deux didacticiels sont disponibles : Introduction et Exemple et l’utilisation de l’IOC où il faut comprendre « Injection Of Content » plutôt que « Inversion Of Control« .

Ceci est un article orienté publicité d’une part, mais aussi « déploiement ». Toute personne recherchant un framework MVC tombera sur PureMVC ou Cairngorm, et bien maintenant, il y aura aussi ReFlex qui entrera dans la liste.

Si vous utilisez ReFlex, n’hésitez pas à faire des retours à l’auteur.

Edit : Oubli de ma part, gros framework incluant le pattern MVC : Vegas développé par eKameleon. D’ailleurs Vega n’inclue pas uniquement le pattern MVC, mais aussi beaucoup d’autres choses, il peut avoir l’air très difficile à appréhender. Mais comme toute nouvelle découverte, cela demande de l’investissement. Mais rassurez-vous, c’est un framework très riche en documentation.

A vous de faire votre choix ;)

Mots-clefs :, , , , , , , , ,
 

Le point sur la mise à jour Adobe

AIR, Flash, Flex Aucun commentaire »

On en parle un peu sur le net : InterfacesRiches.fr ou bit-101.com

En résumé, AIR passe en version 1.5, apparition de Catalyst pour simplifier les échanges entre les Graphistes et les Développeurs, ainsi que l’arrivée de Cocomo.

D’ailleurs, l’application AIR WebKut qui limitait les images à 2880 pixels en dimension, devrait passer à 16 Millions de pixels, et sera donc capable de prendre Armetiz.info en entier :p

Catalyst – Travail collaboratif : Graphiste / Développeur

Adobe à fait de jolies vidéos pour présenter leur futur produit.
Si l’on s’attarde dessus, on découvre une plate-forme d’échange pour les graphistes et les développeurs.

  • Le graphiste pourra importer des ressources graphiques provenant de PhotoShop ou Illustrator, et de leur affecter des « comportements ».
  • Suite à ça, le développeur récupérera ces éléments pour ajouter la couche logique.
  • A chaque instant, nous serons capable de compiler le projet, que ce soit juste après l’importation des visuels, ou à la fin du projet.

Nous remarquons aussi qu’Adobe a de nouveau choisi Eclipse comme interface de développement.

Pour finir sur Catalyst, Adobe va nous permettre de faire un grand pas au niveau MVC Conceptuel sur les grands projets, mais concernant les petits projets, est-ce que le jeu en vaudra la chandelle ?

Social RIA


Cocomo, un ensemble de composants mis à disposition pour concevoir des applications orientées Web Social.
Ces « composants » permettront une connexion simplifiée avec les serveurs Adobe, et vous aurez un outil de monitoring pour surveiller les transferts de donnée.

Si l’on regarde les fonctionnalités proposées, on a de quoi être intéressé :

  • VoIP Audio
  • Webcam Video
  • Chat
  • Multi-User Whiteboards
  • Real-Time File Sharing
  • User Management
  • Roles and Permissions
  • Robust Data Messaging

En effet, les tchats vidéo de type mebeam.com qui étaient « innovants » pourront être imités très facilement sans réel investissement financier.

Alors qu’il n’y a aucun cout de mentionné, on est libre de penser que ces opérations seront gratuites ?
Mais dans ce cas, comment peut-on attendre un service de qualité ? Peut-on construire un projet d’entreprise utilisant cette technologie ?

Adobe Flash Plateforme

Et pour finir, Adobe a décidé de regrouper les principales technologies sous une même entité : Flash Plateforme.
Du bien, du pas bien… Si ce n’est que le nom qui change, on peut y voir un simple coups marketing.

Maintenant, si l’on croise les vidéos de Catalyst avec le beau schéma, on peut-être à même de penser que les prochaines versions du Flash Player intégreront les capacités du frameworks AIR, et grâce à une simple condition nous pourrons bénéficier d’un SWF qui s’adapte en fonction du mode de lecture ( desktop / on-line)

if(Capabilities.playerType == "Desktop")
{
    //Desktop
}
else
{
    //On-line
}

PS : Après une mise à jour de AIR, les images générées par WebKut sont toujours coupées à 2880 pixels de hauteur…

Edit : Concernant l’intégration de AIR/Flash/Flex au sein du player Flash, cela ne sera surement pas fait pour des raisons de poids. Flash étant un logiciel Web, son but est d’être le plus léger possible pour être chargé rapidement.

Mots-clefs :, , , ,
 

Apprendre Flex – Vidéo de formation Adobe

Elearning, Flex Aucun commentaire »

Cela fait quelques semaines déjà que des vidéos de formation Flex sont proposées par Adobe, mais cela ne fait que quelques jours qu’elles sont toutes disponibles.

5 Jours pour être autonome sur Flex

C’est le slogan utilisé par Adobe pour introduire ces tutoriels entrelacés d’exercices.
Voici le programme :

  • Day 1: Flex basics – Les bases de Flex
  • Day 2: Component development – Développement de composant
  • Day 3: Putting it all together – Mixer l’ensemble
  • Day 4: Adding visual appeal – Améliorer l’aspect graphique
  • Day 5: Architecture and advanced topics – Architecture et sujet avancé

Une journée est composée d’une petite dizaine de vidéo durant 8 min en moyenne.
Il faut donc prendre une heure de son temps pour faire un module.

Les vidéos sont très bien réalisée, l’anglais y est parfaitement compréhensible avec les sous-titres inclus.

Aussi, l’illustration de notion élémentaire comme la gestion des événements est très formatrice et permet d’avoir un autre point de vue que celui fournit par les livres.

Dans le même principe que la découverte de la POO avec Flash, prenez votre temps pour découvrir les vidéos et n’hésitez pas à revenir en arrière lorsqu’une notion n’est pas comprise.
La vertu du Elearning, c’est de pouvoir recommencer autant de fois que l’on souhaite notre formation, abusez de cela.

Adobe propose même la visualisation hors-ligne des vidéos.

PS : Si quelqu’un souhaite modifier mes traductions, qu’il le fasse maintenant ou se taise à jamais ;)

Liens utiles :

Edit du 25 Novembre 08 :
Pour faire le tour des composants et possibilités de Flex, vous pouvez installer Tour de Flex qui est une application AIR regroupant une très grande quantité de composant avec les codes sources associés.
C’est vraiment un must have quand on apprend ou même utilise Flex, car vous avez la dedans une grosse bibliothèque d’exemple fonctionnel.

Mots-clefs :, , , , ,
 
Designed by NattyWP Wordpress Themes.
Images by desEXign.