2 Getting Started traduction

Toutes les données pour la plate forme de poker et belote
Répondre
Avatar du membre
France fastgil.com
Le Fou
Le Fou
En ligne : Non
Messages : 4799
Enregistré le : 13 janv. 2007, 15:44
Joueur de Poker : oui
Pseudo Winamax : fastgil.com
Localisation : marseille
Genre :
Olympus Arcade : 11 Top 20 des joueurs de l arcade
Pays :
France (fr)
France
Contact :
    unknown unknown
verseau 

2 Getting Started traduction

Message non lu par France fastgil.com » 19 sept. 2011, 11:09

Statistiques

Stats Relax

_________________

Stats Poker/Aracde


_________________
2 Prise en main traduction de la page http://www.spicefactory.org/parsley/doc ... .php#intro

Le présent chapitre donne une introduction très rapide sur la façon de construire une application avec du persil, un lien vers d'autres parties du manuel pour obtenir des descriptions plus détaillées. La plupart des explications s'appliquent de la même manière à la construction des applications Flex ou Flash. Des exemples qui s'appliquent seulement pour le développement Flex sera relevé en conséquence.

2.1 Bonjour tout le monde l'exemple d'application

Si vous préférez d'examiner un exemple d'application simple, avant de lire le manuel, vous pouvez trouver un échantillon Bonjour tout le monde ici, "Afficher la source" est activée. Ce chapitre ne reflète pas l'exemple d'application though. Cela pourrait changer dans les futures versions lorsque les échantillons supplémentaires sont ajoutés à l'encadrement.

2.2 Ajouter la SWCS Framework

Pour commencer à travailler avec Persil vous devez ajouter plusieurs de ses SWCS à votre classpath en premier lieu. Quels sont ceux que vous aurez besoin dépend de l'ensemble de fonctionnalités que vous utilisez et si vous serez la construction d'une application Flash ou Flex. La meilleure façon de commencer est d'ajouter la SWCS qui contiennent l'ensemble du cadre. Vous les trouverez dans le dossier de lancement du zip de téléchargement.

requetes SWCS prescrites pour les demandes de persil
• Flex-flex3-$ (version). CFC (ou-flex4, quand l'aide de Flex 4)
• spicelib-flex-$ (version).

requetes Swc SWCS prescrites pour les demandes de persil
• Flash-flash-$ (version ). spicelib
• CFC-flash-$ (version).

swc sélectionner individuellement cadre SWCS
Si vous souhaitez sélectionner de manière explicite le cadre des modules que vous utilisez en fait pour garder votre classpatch propre, vous pouvez aussi choisir plusieurs des SWCS module contenu dans le modules de dossier dans le dossier de lancement. Pour cela vous aurez besoin de connaître le contenu et les dépendances pour ceux SWCS, qui est décrite au point 1.4 Spicelib Module SWCS.
http://www.spicefactory.org/parsley/doc ... hp#modules

2.3 Définition des dépendances d'objets

C'est probablement la caractéristique la plus fréquemment utilisée de Persil.
Définir les dépendances est beaucoup plus confortable du fait de Persil 2 où nous avons introduit de configuration avec des métadonnées ou MXML en plus des fichiers XML.

Utilisant le [Injecter] tag métadonnées
Vous pouvez utiliser la balise sur les propriétés:

Code : Tout sélectionner

[Inject]
public var loginService:LoginService;

Code : Tout sélectionner

[Inject]
public function set loginService (service:LoginService) : void {
Ou vous pouvez l'utiliser sur les méthodes pour déclarer des dépendances multiples à la fois:

Code : Tout sélectionner

[Inject]
public function init (loginService:LoginService, cartService:CartService = null) : void {
La bonne chose, dans l'exemple ci-dessus est que Persil se répercutera sur les types de paramètres et de traiter les paramètres optionnels comme les dépendances optionnelles. Donc, dans cet exemple, le conteneur va lever une erreur si le LoginService est manquante, mais en silence sauter la CartService si elle n'est pas présente dans le conteneur.

Enfin, vous pouvez également utiliser un identificateur similaire ([InjectConstructor]) sur la déclaration de classe pour l'injection de constructeur (comme le compilateur Flex ne tient pas compte des métadonnées sur les constructeurs):

Code : Tout sélectionner

[InjectConstructor]
public class LoginAction {

    function LoginAction (loginService:LoginService, cartService:CartService = null) : void {
Là encore, la seconde (en option) paramètre sera traitée comme une dépendance optionnelle en conséquence


Meilleures pratiques
dans tous les exemples, nous avons montré dans cette section les dépendances seront sélectionnés par type, puisque Persil va réfléchir sur la propriété et les types de paramètre de méthode. Pour bénéficier du découplage qu'un conteneur CIO vous propose de préférer à déclarer les types d'interface à des points d'injection. De cette façon vous pouvez passer d'implémentations dans la configuration sans toucher les points d'injection de classes qui ont besoin de ces services.

Bien sûr, cela ne fonctionne que lorsque vous ajoutez seulement un objet unique correspondant au type au point d'injection au conteneur. Si vous avez mise en œuvre de plusieurs de la même interface, vous aurez besoin pour passer à l'injection par id place: il est disponible uniquement pour les propriétés:

Code : Tout sélectionner

[Inject(id="mainLoginService")]
public var loginService:LoginService;
Le choix entre la propriété, une méthode ou l'injection de constructeur est à vous. Certains préfèrent l'injection de constructeur, car elle permet une meilleure encapsulation, vous permettant de créer des catégories immuables. Mais l'injection de constructeur en Flex présente certaines limitations, en particulier si vous réunissez les objets avec une configuration MXML, voir 4 injection de dépendance pour les détails.
http://www.spicefactory.org/parsley/doc ... .php#intro

2.4 Envoi et recevoir des messages

Bien Dependency Injection permet déjà un certain niveau de découplage, si vous déclarez des points d'injection avec des types d'interface, pour certaines parties de l'application que vous préférez couplage lâche même, en laissant les parties de votre demande de communiquer à travers des messages, sans que l'expéditeur et les objets de réception d'avoir à connaître l'autre.
Si vous générez une application avec le modèle d'architecture MVC par exemple, vous allez probablement créer des classes du médiateur qui transforment les événements de faible niveau pour afficher les messages d'application qui seront expédiés à travers une application de messagerie sous-système de l'échelle de sorte que toute action / contrôleur peut s'inscrire à tous les types de messages, il est intéresse

Pour plus de détails sur ce sujet voir le point 5 de messagerie et 9, la construction d'architectures MVC.
http://www.spicefactory.org/parsley/doc ... .php#intro

De persil 2, vous pouvez configurer l'envoi ainsi que le côté de réception avec des balises de métadonnées. La partie d'envoi mai simplement contenir un [ManagedEvents] balise à la déclaration de classe, qui annonce des événements de ce dépêches classe doit être bien gérée:

Code : Tout sélectionner

[Event(name="loginSuccess",type="com.bookstore.events.LoginEvent")]
[Event(name="loginFailed",type="com.bookstore.events.LoginEvent")]
[Event(name="stateChange",type="flash.events.Event")]
[ManagedEvents("loginSuccess,loginFailure")]

public class LoginServiceImpl extends EventDispatcher implements LoginService {

    [...]
    
    private function handleLoginResult (user:User) : void {
        dispatchEvent(new LoginEvent("loginSuccess", user));
    }
    
}

Ici on indique le conteneur que chaque fois que cela envoie un événement de classe Loginsuccess type ou loginfailed nous voulons que le conteneur de l'envoyer à tous les gestionnaires enregistrés.
D'autres événements seront simplement ignorées, cette classe ne peut toujours envoyer des événements de faible niveau d'autres objets qui dépendent directement de cette classe mai auditeurs réguliers pour vous inscrire.
Pour la partie réception, vous pouvez utiliser les touches [MessageHandler] balise pour signaler l'intérêt pour un particulier type de message, déterminé par le type de paramètre de la méthode:

Code : Tout sélectionner

[MessageHandler]
public function login (event:LoginEvent) : void {
Si vous Route plusieurs types de messages différents de la même classe d'événements à travers le système, vous pouvez en outre choisir par type d'événement:

Code : Tout sélectionner

[MessageHandler(selector="loginSuccess)]
public function login (event:LoginEvent) : void {
Comme avec Dependency Injection sélectionnant les receveurs de messages par type améliore la robustesse du système, puisque vous n'aurez pas à prendre soin des constantes de type d'événement unique pour l'ensemble du système.

Il ya des mots clés pour le côté de réception comme [MessageBinding] ou [MessageInterceptor ]. Celles-ci seront expliqués dans 5 Messaging.
http://www.spicefactory.org/parsley/doc ... .php#intro

Furhermore car le module est appelé messagerie et non pas des événements système, vous pouvez utiliser n'importe quelle classe comme un message, non seulement les classes étendant flash.events.Event. Pour plus de détails voir 5.4 Injected MessageDispatchers.
http://www.spicefactory.org/parsley/doc ... ispatchers


2.5 l'assemblage d'objets

Il ya quelques options de configuration beaucoup plus en plus des tags pour Dependency Injection et Messagerie. Mais puisque ce sont eux les plus courantes que nous allons maintenant vous montrer comment assembler ces objets pour le conteneur de la COI. Une fois que vous ajouté des balises de métadonnées pour les classes que vous devez dire le récipient où les objets qu'il doit gérer.

Applications Flex
Dans Flex, vous voudrez peut-être préférez MXML configuration. Vous pouvez créer une classe simple MXML (en utilisant mx: Object comme la balise racine), et ajoutez toutes les classes que vous voulez être géré par Persil:

Code : Tout sélectionner

<mx:Object 
    xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:services="com.bookstore.services.*"
    xmlns:actions="com.bookstore.actions.*">
    
    <services:LoginServiceImpl timeout="3000"/>

    <services:CartServiceImpl timeout="3000"/>
    
    <actions:LoginAction/>

    <actions:AddToCartAction/>

    <actions:DeleteCartAction/>
    
</mx:Object> 

Bien sûr, vous pouvez également utiliser ce fichier de configuration pour la mise en valeur des propriétés supplémentaires. Elles seront combinées avec le traitement des balises de métadonnées pour toutes les classes ajoutées au conteneur.

Dans cet exemple, nous ne précise pas les attributs id. Si vous utilisez juste d'injection par type que vous n'avez pas besoin d'eux. Dans le cas où vous utilisez les identifiants à des points d'injection, comme dans le dernier exemple de la section sur l'injection vous devez les indiquer ici:

Code : Tout sélectionner

<services:AdminLoginServiceImpl id="adminLogin" timeout="3000"/>
<services:UserLoginServiceImpl id="userService" timeout="3000"/>
Vous pouvez ensuite utiliser ces identifiants à des points d'injection:

Code : Tout sélectionner

[Inject(id="adminLogin")]
public var adminLogin:LoginService;

[Inject(id="userLogin")]
public var userLogin:LoginService;
Mais en général, vous devriez essayer d'éviter l'injection par id et ne l'utiliser lorsque vous travaillez avec plusieurs instances du même type.

Applications Flash
Dans ce cas MXML n'est pas disponible. Ainsi, le mécanisme de configuration préférée est sans doute l'utilisation de fichiers XML. Bien sûr, vous pouvez également utiliser des fichiers externes XML dans les applications Flex si vous ne voulez pas compiler la configuration dans votre application.
Un exemple de configuration XML correspondant à l'exemple MXML ci-dessus ressemblerait à ceci:

Code : Tout sélectionner

<objects 
    xmlns="http://www.spicefactory.org/parsley"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.spicefactory.org/parsley 
        http://www.spicefactory.org/parsley/schema/2.0/parsley-core.xsd"
    >
    
    <object type="com.bookstore.services.LoginServiceImpl">
        <property name="timeout" value="3000"/>
    </object>
    
    <object type="com.bookstore.services.CartServiceImpl">
        <property name="timeout" value="3000"/>
    </object>
    
    <object type="com.bookstore.actions.LoginAction"/>

    <object type="com.bookstore.actions.AddToCartAction"/>

    <object type="com.bookstore.actions.DeleteCartAction"/>
</objects>
Comme avec l'exemple MXML on ne précise pas une id pour les définitions d'objets. Vous pouvez l'ajouter si nécessaire pour l'injection par id.
Ce sont les options les plus communes pour l'assemblage d'objets.
Vous trouverez de nombreux exemples dans 3 Configuration et initialisation.
http://www.spicefactory.org/parsley/doc ... .php#intro

2.6 Initialisation du Cadre

Maintenant que vous avez configuré vos classes avec des balises de métadonnées et les rassembla en MXML ou XML, il est enfin temps pour initialiser le tout. Heureusement, dans la plupart des cas il s'agit d'une seule ligne ou une balise simple.
Pour la configuration MXML fichier, nous avons créé, en supposant que nous l'appelions BookStoreConfig.mxml, la balise ressemblera à ceci:

Code : Tout sélectionner

<parsley:ContextBuilder config="{BookStoreConfig}"/>
C'est tout ce qu'il ya à faire.
Pour l'exemple XML, nous devons initialiser le contexte par programme dans une application Flash:

Code : Tout sélectionner

XmlContextBuilder.build("config.xml");
Nous avons couvert les cas d'utilisation la plus courante ici. Il ya beaucoup plus d'options telles que le fractionnement de la configuration en plusieurs fichiers, ou même en utilisant des mécanismes de configuration différentes comme MXML et XML dans la même application et de leur fusion dans un contexte unique. Cela sera démontré en 3.6 La combinaison des mécanismes de configuration multiple.
http://www.spicefactory.org/parsley/doc ... hp#combine

Pour les applications modulaires vous ne voulez pas d'amalgame dans un contexte monolithique et de charger tous ces trucs sur le démarrage d'application. Pour la construction d'applications modulaires et le chargement et le déchargement des configurations sur demande voir 8 Construire des applications modulaires.
http://www.spicefactory.org/parsley/doc ... .php#intro


2.7 Services Ajout de plus

Puisqu'il s'agit de la section Mise en route, nous ne couvrait que les cas d'utilisation les plus courantes. Mais j'espère que pour des applications simples, il suffit de vous permettre de continuer. Comme vous l'avez remarqué mai déjà le manuel est assez vaste et si vous pensez vous besoin de beaucoup plus d'options que traités dans ce chapitre, vous devriez consulter les autres chapitres.
Si vous souhaitez simplement avoir une idée de l'ensemble de fonctionnalités Persil vous offre mai voulez pour commencer Liste des Fonctionnalités 1.1.
http://www.spicefactory.org/parsley/doc ... p#features

Les options les plus intéressantes ne sont pas couverts dans ce chapitre sont probablement:

• 3.4 ActionScript de configuration: Vous n'êtes pas limité à la configuration avec des métadonnées, MXML ou XML, il ya même une option de suite, qui vous donne une flexibilité supplémentaire.

• 5.7 MessageInterceptors: Une alternative intéressante à la MessageHandlers abordés dans ce chapitre qui vous permet même d'interférer avec le processus d'envoi de message (par exemple, de suspension et de reprise ou d'annuler le traitement des messages).

• 5.9 Asynchronous méthodes de commande: vous pouvez laisser le cadre de gérer les opérations asynchrones et de leurs résultats et les défauts de vous.

• 6.1 usines utilisant: Au lieu de l'assemblage d'objets cible lui-même, vous pouvez également ajouter des usines pour le conteneur du CIO qui créent des objets, qui vous donne plus de souplesse sur la façon dont les objets sont instanciés.

• 6.2 Asynchronous objet d'initialisation: l'option de configuration pour l'initialisation asynchrone objets (par exemple des objets qui ont besoin de charger des données avant de pouvoir opérer). Dans ce cas, le conteneur va reporter l'initialisation d'autres objets que ceux qui sont configurés pour être asynchrones sont prêts.

• 7 dynamique Voir Câblage: Nous avons déjà évoqué brièvement un. Vous permet de fil Flex composants définis en MXML pour objets déclarés dans le conteneur de la COI.

• 8 Bâtir des applications modulaires: Associate services configurés, des actions, des médiateurs et ainsi de suite avec un contexte de configuration qui peuvent être chargés et déchargés à la demande.

• 10.1 ResourceBindings: Pour les propriétés liantes d'objets gérés à des ressources localisées, les mettre à jour automatiquement lorsque les modifications localeChain.

• 11.2 Création de balises de configuration: Si vous souhaitez ajouter vos propres métadonnées, MXML ou des balises de configuration XML. Utile pour simplifier les tâches récurrentes de configuration ou de créer des cadres sur le dessus de persil.



Répondre

Retourner vers « AcoeurS-City-Games »