Files
doc-fr/reference/sca/book.xml
Damien Seguy 1476597ce0 initial transalation
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@274693 c90b9560-bf6c-de11-be94-00142212c4b1
2009-01-27 08:51:20 +00:00

176 lines
5.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.1 $ -->
<!-- Purpose: xml -->
<!-- Membership: pecl -->
<!-- State: experimental -->
<!-- EN-Revision: 1.2 Maintainer: dams Status: ready -->
<!-- Reviewed: no -->
<book xml:id="book.sca" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>SCA</title>
<!-- {{{ preface -->
<preface xml:id="intro.sca">
&reftitle.intro;
&warn.experimental;
<para>
SCA pour PHP rend possible aux programmeurs PHP l'utilisation de composants
réutilisables, qui peuvent être appelées de différentes façons, avec une
interface identique et un minimum de tracas. Actuellement, les composants
peuvent s'appeller l'un l'autre, localement ou via des services Web,
mais a l'avenir, il est prévu de mettre en place d'autres moyens de communication.
SCA fournit aux programmeurs une approche aussi naturelle que possible
pour cela.
</para>
<para>
Les composants SCA utilisent des annotations style phpDocumentor
(voyez http://www.phpdoc.org/) pour déclarer des dépendances avec les
autres composants SCA ou les services Web. L'exécuteur SCA de PHP
résout ces dépendances à l'exécution, pour les autres composants, et permet
au développeur PHP de se concentrer sur la logique métier, plutôt que
sur la localisation des ressources.
</para>
<para>
Le modèle SCA pour PHP peut être étendu pour supporter de nombreux autres
types de services, tels que REST et Atompub. Cependant, les services Web,
et plus exactement, les services SOAP sur HTTP avec document WSDL) sont les
seuls qui soient spécifiés.
</para>
<para>
Les composants utilisent aussi les annotations pour définir les interfaces
avec lesquels ils exposent leurs services. L'exécuteur SCA pour PHP va
automatiquement générer le document WSDL pour ces annotations, afin que les
composants puissent exposer facilement leurs services Web. Ces annotations sont
une extension naturelle de phpDocumentor. Déployer un service Web
peut alors êtr aussi simple que de placer un composant PHP dans la racine
Web d'un serveur Web.
</para>
<para>
Les composants utilisent aussi les annotations pour spécifier les structures
de données (exprimées avec des types complexe de schéma XML), qui sont gérés
avec Service Data Objects (SDOs).
</para>
<para>
Un script PHP qui n'est pas un composant SCA et qui ne contient aucune
annotation peut utiliser les services d'un composant SCA. Un script PHP ou
un composant peut faire des appels à un service Web qui n'utilise pas SCA,
mais en utilisant le même système d'appels et d'annotations pour obtenir
une référence.
</para>
<para>
Tout d'abord, nous présent un composant SCA simple, ConvertedStockQuote,
qui illustre l'utilisation de SCA pour PHP. Il dispose d'une méthode
<function>getQuote</function>, qui, à partir d'un identifiant d'actions
retourne le cours de l'action, converti dans une devise donnée.
Nous utiliserons cet exemple comme base pour présenter SCA pour PHP
dans le reste de la documentation.
</para>
<para>
<example>
<title>Exemple simple avec SCA</title>
<programlisting role="php">
<![CDATA[
<?php
include "SCA/SCA.php";
/**
* Calcule le prix d'une action, à partir de son symbole, dans une devise.
*
* @service
* @binding.soap
*/
class ConvertedStockQuote {
/**
* Le service de taux de change à utiliser
*
* @reference
* @binding.php ../ExchangeRate/ExchangeRate.php
*/
public $exchange_rate;
/**
* Le service de cotation des actions à utiliser
*
* @reference
* @binding.soap ../StockQuote/StockQuote.wsdl
*/
public $stock_quote;
/**
* Lit le prix d'une action, pour un symbole, dans une devise
*
* @param string $ticker Le symbole.
* @param string $currency La devise.
* @return float Le cours de l'action.
*/
function getQuote($ticker, $currency)
{
$quote = $this->stock_quote->getQuote($ticker);
$rate = $this->exchange_rate->getRate($currency);
return $rate * $quote;
}
}
?>
]]>
</programlisting>
</example>
</para>
<para>
Dans cet exemple, nous voyons que le composant SCA est implémenté à l'aide
d'une classe PHP, et qu'il inclut <filename>SCA.php</filename>. La classe
contient un mélange de logique métier et de références à d'autres services
et composants. Dans la méthode illustrée, <function>getQuote</function>
il n'y a que de la logique métier, mais elle repose sur les variables
<varname>$stock_quote</varname> et
<varname>$exchange_rate</varname> qui ont été initialisées.
Ces variables font référence à deux autres composants, et seront initialisées
par l'exécutable SCA, via des proxy pour ces deux services, à chaque
fois que notre composant est exécuté. Les annotations de ces deux services
montrent que l'un est un service local, qui sera appelé avec le même exécutable
PHP, et que l'autre est un composant distant, qui sera appelé avec une
requête SOAP. Ce composant expose alors la méthode
<function>getQuote</function>, localement et comme service Web, pour que
l'on puisse y accéder localement et à distance.
</para>
</preface>
<!-- }}} -->
&reference.sca.setup;
&reference.sca.constants;
&reference.sca.examples;
&reference.sca.reference;
</book>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->