Konbini 24/7 Blog – We’re always Open

Konbini 2 Commentaires »

Konbini a ouvert son blog h24, 7j/7.

“Konbini” is the Japanese word for a convenience store, which commonly offers a large array of products and is open 24/7. Just like an online convenience store for entertainment, anytime you visit Konbini.com, wide selections of shows are instantly available to enjoy and share.

Au programme :

Mots-clefs :, , , , ,
 

Transfer Object Assembler avec Doctrine 1

Doctrine, Zend 7 Commentaires »

doctrineLe pattern Transfert Object TO, Data Transfert Object DTO, ou encore Value Object VO permet d’échanger des données entre deux applications.

Wikipédia : Son but est de simplifier les transferts de données entre les sous-systèmes d’une application logiciel. Les objets de transfert de données sont souvent utilisés en conjonction des objets d’accès aux données.

Qui dit Transfert Object, veux aussi dire Transfert Object Assembler.

Conversion d’object

Le pattern Transfert Object Assembler permet de passer d’un DTO à un Objet d’accès au données, et inversement.
C’est le moyen le plus simple pour travailler avec le pattern Data Transert Object et un ORM.

Domain Object Model -> Data Transfert Object

Avec l’ORM Doctrine, le transfert d’un « Domain Object Model DOM » ou ici Doctrine_Record vers un DTO est très simple.
Il suffit de réaliser un parser qui analyse l’objet issu de Doctrine, et qui remplit les données du DTO.

Data Transfert Object -> Domain Object Model

Convertir un DTO vers un DOM peut s’avère plus complexe.
En effet, Doctrine utilise des collections d’objet qui lui sont propres, mais a aussi besoin de connaitre les clés primaires et leurs contenus pour pouvoir créer un objet. Car un objet issu de Doctrine_Record n’a pas les même propriétés quand il est existant en base de donnée, ou qu’il est en phase d’être sauvegardé.

Implémentation de Transfer Object Assembler

Une implémentation du pattern Transfert Object Assembler vient de voir le jour après moult et moult péripéties.

Cette implémentation permet donc le transférer de DTOs à partir de DOMs et inversement.
Associer au pattern Service Layer, cela peut s’avérer être très pratique.

Voici un exemple simple d’utilisation :

$oProgram = new ProgramDTO ();
$oProgram->title = "Dorothe";
 
$oVideoDTO = new VideoDTO ();
$oVideoDTO->idVideo = 30;
$oVideoDTO->program = $oProgram;
 
$oAssembler = $new Assembler ();
$oVideo = $oAssembler->createDomainObject ($oVideoDTO);
$oVideo->save ();

Nous avons ici créé une nouvelle entrée dans la table programs, et réalisé une liaison entre ce nouvel objet et la vidéo existante d’identifiant 30.
Le tout one-shot !

L’intérêt de cette implémentation, c’est d’être fonctionnel avec :

  • Les objets persistant
  • Les objets non-persistant
  • Les compositions d’objets sur N niveau

Utilisation avec le pattern Service Layer

Nous allons voir l’exemple le plus simple, soit l’implémentation des méthodes CRUD pour un objet générique.
L’utilisation du nommage des classes provient de l’utilisation de Zend Framework.

/**
 * @param Model_DTO_Video
 * @return Model_DTO_Video
 */
public function create (Model_DTO_Video $poVideoDTO)
{
	$oModelVideo		= null;
	$oAssembler		= new Model_Utils_Assembler ();
	$oModelVideo		= $oAssembler->createDomainObject($poVideoDTO, true);
	$oModelVideo->save ();
	$poVideoDTO->idShow	= $oModelVideo->idShow;
	return $poVideoDTO;
}
 
/**
 * @param Model_DTO_Video
 * @return Model_DTO_Video
 */
public function read (Model_DTO_Video $poVideoDTO)
{
	$query	= Doctrine_Query::create ()
		->select ("video.*")
		->from ("Model_Video video")
		->where ("video.id_show = ?", $piIdVideo);
	$oModelVideo	= $query->fetchOne ();
	$oAssembler	= new Model_Utils_Assembler ();
	return $oAssembler->createTransfertObject ($oModelVideo);
}
 
/**
 * @param Model_DTO_Video
 * @return Model_DTO_Video
 */
public function update (Model_DTO_Video $poVideoDTO)
{
	$oModelVideo	= null;
	$oAssembler	= new Model_Utils_Assembler ();
	$oModelVideo	= $oAssembler->createDomainObject($poVideoDTO, true);
	$oModelVideo->save ();
 
	return $poVideoDTO;
}
 
/**
 * @param Model_DTO_Video
 * @return Model_DTO_Video
 */
public function delete (Model_DTO_Video $poVideoDTO)
{
	$oModelVideo	= null;
	$oAssembler	= new Model_Utils_Assembler ();
	$oModelVideo	= $oAssembler->createDomainObject($poVideoDTO, false);
	$oModelVideo->delete ();
 
	return $poVideoDTO;
}

Téléchargement

Contenu de l’archive :

  • Implémentation du pattern Transfer Object Assembler
  • Interface du pattern Transfer Object Assembler
  • Classe de définition d’un DTO

Pour faire fonctionner l’assembler. Vous devez définir une classe qui hérite de Assembler, et ainsi surchargez la propriété $_relationships avec vos liaisons entre DTO et DOM.

Dernière mise à jour : 20 Septembre 2010
Transfert_Object_Assembler_Doctrine_1.2.zip – 6 Ko.

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

Recherche développeur d’application Flash / iPhone

Konbini 2 Commentaires »

Nous recherchons un stagiaire ou un contrat d’apprentissage pour nous assister sur le développement des applications frontend.
Voici le speach :

Konbini recherche un(e) stagiaire développeur d’applications.
Créée en 2008 par Lucie Beudet et David Creuzot, entrepreneurs chevronnés du Web, la chaîne vidéo konbini.com produit et diffuse en exclusivité des programmes de divertissement originaux.
konbini logo
Proposition
1 contrat en tant que développeur d’application / architecte logiciel dans le secteur Internet / video streaming.
lieu de travail : Paris (France : Ile de France)
durée du stage : 6 mois ou plus
début du stage : au plus tôt
rémunération : selon convention

Votre mission
Vous serez chargé(e) du développement d’applications pour iPhone / iPad ainsi que de la réalisation de RIA et RDA en ActionScript3 / Flex.

Idéalement en formation bac+4/5 vous connaissez ActionScript 3, Cocoa / CocoaTouch, JAVA/J2EE, PHP5, MySQL, JavaScript Ajax et vous êtes à l’aise avec les formats vidéo pour internet et la notion de streaming.
Une connaissance de l’interface de Flash ainsi que des notion élémentaires de design d’interface seront un plus.

Les qualités recherchées sont la rigueur, l’autonomie et l’esprit d’équipe.

N’hésiter pas à nous contacter : thomas.tourlourat [at] konbini [dot] com ou thomas [at] tourlourat [dot] com

Mots-clefs :, , , , , , ,
 

Konbini se dote d’un nouveau lecteur embed

Konbini Aucun commentaire »

Nous allons pouvoir faire tourner les vidéos Konbiniènes maintenant ;)

Mots-clefs :, , ,
 

Konbini

Konbini 5 Commentaires »

konbiniKonbini.com est une nouvelle plateforme interactive de divertissement légale et gratuite.
Konbini est la première chaîne conçue par et pour la web génération, qui diffuse et produit ses propres programmes.

Et voila, après quatre années chez ITS Group, j’entreprends un nouveau challenge chez Konbini.

Objectif

Concevoir et développer une application métier pour la gestion des vidéos diffusées sur le site.

Logo JavaActuellement en phase de conception, nous envisageons Java EE6 ou PHP5 pour la réalisation des services.

Une chose est sur, Adobe AIR et Adobe Flex seront utilisés pour le développement des applications clientes.

Twitter

twitterMonster, Viadeo… Et bien non, c’est grâce à Twitter que j’ai été mis en relation avec Vincent Maitray, Directeur Technique de Konbini.

Voici le Tweet de Thibault Imbert auquel j’ai répondu : « Si quelqu’un cherche un poste de dev AS3/Flex ou interactive designer Flash, contactez moi (pas seulement par DM) :) « .

L’entreprise

Je quitte une SSII de 500 collaborateurs pour une boite de communication multimédia de 15 collaborateurs.
Autant dire qu’il y a de très nombreux changements.

Curieux de l’expérience que peut offrir une telle entreprise, j’ai hâte de voir mon évolution au sein de Konbini.

Télétravail

ObserveAndReportEncore une nouveauté pour moi: Le télétravail.
Il va falloir que je m’impose une discipline de vie très strict; car travailler à la maison peut paraitre facile, mais l’on est vite tenté de faire autre chose…

En tout cas, je me suis aménagé un joli bureau pour que je sois en condition réelle de travail.


Les programmes de Konbini

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