mirror of
https://github.com/macintoshplus/doc-fr.git
synced 2026-04-25 01:28:02 +02:00
dd8b7ea694
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@272670 c90b9560-bf6c-de11-be94-00142212c4b1
288 lines
12 KiB
XML
288 lines
12 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!-- $Revision: 1.6 $ -->
|
|
<!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
|
|
<!-- Reviewed: yes -->
|
|
<!-- Purpose: remote.other -->
|
|
<!-- Membership: pecl, external -->
|
|
|
|
<book xml:id="book.hw" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Hyperwave</title>
|
|
|
|
<!-- {{{ preface -->
|
|
<preface xml:id="intro.hw">
|
|
&reftitle.intro;
|
|
<para>
|
|
<productname>Hyperwave</productname> a été développé par
|
|
<link xlink:href="&url.iicm;">IICM</link> à Graz. Son nom
|
|
original était <acronym>Hyper-G</acronym> et il a pris le nom de
|
|
Hyperwave lors de sa commercialisation (en 1996).
|
|
</para>
|
|
<para>
|
|
Hyperwave n'est pas gratuit. La version actuelle est la 5.5, disponible à
|
|
<link xlink:href="&url.hyperwave;">&url.hyperwave;</link>. Une version
|
|
limitée à 30 jours peut être demandée.
|
|
</para>
|
|
<para>
|
|
Voir aussi le module <link linkend="ref.hwapi">Hyperwave API</link>.
|
|
</para>
|
|
<para>
|
|
<acronym>HIS</acronym> est un système d'information similaire à
|
|
une base de données, (HIS, Hyperwave Information Server). HIS se
|
|
concentre sur l'enregistrement et la gestion des documents. Un
|
|
document peut être n'importe quelle donnée, qui peut être stockée
|
|
dans un fichier. Chaque document est accompagné par un enregistrement.
|
|
Cet enregistrement contient des méta données à propos
|
|
du document. Ces méta données sont des listes d'attributs qui
|
|
peuvent être étendues par l'utilisateur. Un attribut est une paire
|
|
clé/valeur de la forme : clé =valeur. L'enregistrement complet
|
|
contient autant de paires que le désire l'utilisateur. Le nom d'un
|
|
attribut n'a pas besoin d'être unique, c'est-à-dire qu'une
|
|
même clé peut apparaître plusieurs fois dans un
|
|
enregistrement. Cela peut être utile si vous devez donner un
|
|
titre à votre document en plusieurs langues, par exemple. Dans un
|
|
cas pareil, la convention est que chaque valeur de titre est
|
|
précédée par deux lettres et deux points, tel que :
|
|
<literal>"fr:Titre en français"</literal> ou <literal>"de:Titel in deutsch"</literal>. D'autres attributs
|
|
comme une description ou des mots-clés sont aussi susceptibles de
|
|
recourir à ce genre de procédé. Vous pouvez aussi
|
|
remplacer l'abréviation de langage par une autre chaîne,
|
|
tant qu'elle est séparée de la valeur par les deux points.
|
|
</para>
|
|
<para>
|
|
Chaque enregistrement a une représentation native qui contient toutes
|
|
les paires clé/valeur, séparées par un retour à
|
|
la ligne. L'extension Hyperwave reconnaît une autre représentation
|
|
qui est un tableau associatif, où les attributs servent de clés.
|
|
Les attributs multilingues étant gérés sous la forme d'un
|
|
autre tableau associatif, dont les clés sont les chaînes de
|
|
langue. En fait, tous les attributs multiformes sont gérés
|
|
sous la forme de tableau associatif. (Cela n'est pas encore complètement
|
|
codé. Uniquement les attributs de titre, description et mots-clé
|
|
sont traités correctement).
|
|
</para>
|
|
<para>
|
|
En dehors des documents, tous les hyperliens contenus dans un document sont
|
|
enregistrés dans un autre enregistrement. Les hyperliens qui sont
|
|
à l'intérieur d'un document en seront supprimés, et
|
|
enregistrés dans des objets particuliers au moment de l'insertion
|
|
dans la base de données. L'enregistrement des hyperliens
|
|
contient les informations d'origine et d'objectif. Afin d'accéder
|
|
au document original, vous devrez lire le document sans les liens,
|
|
puis lire les liens et les réinsérer (les fonctions
|
|
<function>hw_pipedocument</function> et <function>hw_gettext</function> le
|
|
font pour vous. L'avantage de séparer les liens du document est
|
|
évident : une fois qu'un document, cible d'un hyperlien, a
|
|
été renommé, le liens peut facilement être
|
|
modifié. Le document contenant le lien n'est pas modifié
|
|
pour autant. Vous pouvez même ajouter un lien à un document sans
|
|
le modifier.
|
|
</para>
|
|
<para>
|
|
Dire que <function>hw_pipedocument</function> et <function>hw_gettext</function>
|
|
font l'insertion automatiquement n'est pas aussi simple qu'il y paraît.
|
|
L'insertion implique une certaine hiérarchie de documents. Sur un serveur
|
|
web, la hiérarchie est fournie par le système de fichiers, mais
|
|
Hyperwave dispose de sa propre hiérarchie et les noms de fichiers ne
|
|
reflètent pas la position d'un objet dans cette hiérarchie.
|
|
Ainsi, la création de liens requiert en premier lieu
|
|
la construction de la hiérarchie et de l'espace des noms dans
|
|
une hiérarchie web et un espace de nom web. La différence
|
|
fondamentale entre Hyperwave et le web est qu'il y a une distinction claire
|
|
entre les noms et la hiérarchie dans Hyperwave. Le nom ne contient aucune
|
|
information à propos de la position de l'objet dans la hiérarchie.
|
|
Sur le web, le nom contient les informations de localisation dans la
|
|
hiérarchie. Cela conduit à deux méthodes d'accès :
|
|
soit la hiérarchie Hyperwave et le nom de l'objet sont inscrits dans
|
|
l'URL. Pour simplifier les choses, une deuxième approche est
|
|
pratiquée. L'objet Hyperwave de nom <literal>"mon_objet"</literal> correspond à
|
|
l'URL <literal>"http://hote/mon_objet"</literal>, peu importe alors où il est rangé
|
|
dans la hiérarchie. Un objet dont le nom est <literal>"parent/mon_objet"</literal> peut
|
|
être le fils de l'objet <literal>"mon_objet"</literal> dans la hiérarchie Hyperwave,
|
|
bien que ce soit le contraire en convention web, et cela risque de perturber
|
|
l'utilisateur.
|
|
</para>
|
|
<para>
|
|
Ayant pris cette décision, un deuxième problème surgit :
|
|
comment faire l'interface avec PHP ? L'URL <literal>http://hote/mon_objet</literal> n'appellera
|
|
aucun script PHP à moins que vous ne demandiez à votre serveur
|
|
web de le remplacer par autre chose, comme :
|
|
<literal>"http://host/php3_script/mon_objet"</literal> et le script <literal>"php3_script"</literal> utilise la
|
|
variable $PATH_INFO pour rechercher l'objet <literal>"mon_objet"</literal> sur le serveur Hyperwave.
|
|
Il y a juste un petit inconvénient, qui peut facilement être
|
|
corrigé. Réécrire une URL ne vous permettra aucun
|
|
accès aux autres documents du serveur web. Un script de recherche
|
|
dans le serveur Hyperwave serait impossible. Il vous faudra donc au moins
|
|
une autre règle pour exclure certaines URL, comme celles
|
|
qui commencent par http://host/Hyperwave. Voici, de manière simple,
|
|
comment partager un espace de nom entre un serveur web et un
|
|
serveur Hyperwave serveur.
|
|
</para>
|
|
<para>
|
|
Basé sur le mécanisme précédent, on trouve
|
|
l'insertion dans les documents.
|
|
</para>
|
|
<para>
|
|
Il est plus compliqué d'avoir PHP ne fonctionnant pas comme un module
|
|
de serveur, ou un script CGI, mais comme une application indépendante.
|
|
Dans ce cas, il est utile d'inscrire la hiérarchie et le nom de fichier
|
|
Hyperwave dans le système de fichier. Mais comme cela risque d'entrer
|
|
en conflit avec le séparateur de dossier (<literal>"/"</literal>), il faut le remplacer
|
|
par un autre caractère,. <literal>"_"</literal>.
|
|
</para>
|
|
<para>
|
|
Le protocole réseau pour communiquer avec un serveur Hyperwave est
|
|
appelé <link xlink:href="&spec.hyperwave;">HG-CSP</link>
|
|
(<literal>Hyper-G Client/Server Protocol</literal>). Il est basé sur des messages qui
|
|
initient des actions, comme lire l'en-tête de fichier. Dans
|
|
les premières versions de Hyperwave Server, deux clients natifs
|
|
(Harmony, Amadeus) étaient fournis pour permettre la communication
|
|
avec le serveur. Ils ont disparu lors de la commercialisation de Hyperwave.
|
|
En tant qu'ersatz, un client appelé wavemaster est désormais
|
|
fourni. wavemaster est un espèce de convertisseur de protocole de
|
|
<abbrev>HTTP</abbrev> en <abbrev>HG-CSP</abbrev>. L'idée est de faire
|
|
toute l'administration de la base et la visualisation des documents par une
|
|
interface web. Le wavemaster implémente un jeu d'emplacement pour
|
|
certaines actions de personnalisation de l'interface. Ce jeu est appelé
|
|
<abbrev>PLACE</abbrev> language. <abbrev>PLACE</abbrev> pêche encore par
|
|
le manque de nombreuses fonctions de programmation et le manque
|
|
d'évolutivité. Cela a conduit à l'utilisation de
|
|
JavaScript ce qui ne rend pas la vie facile.
|
|
</para>
|
|
<para>
|
|
Que PHP supporte Hyperwave permet de combler ces manques. PHP implémente
|
|
tous les messages définis par <abbrev>HG-CSP</abbrev> mais fourni
|
|
d'autres commandes puissantes, comme celle de lire des documents
|
|
complets.
|
|
</para>
|
|
<para>
|
|
Hyperwave dispose de sa propre terminologie pour localiser certaines
|
|
informations. Cette terminologie a été largement étendue.
|
|
Presque toutes les fonctions utilisent l'un des types de données
|
|
suivants :
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
object ID : un entier unique pour chaque objet sur le serveur Hyperwave. C'est
|
|
aussi un des attributs de l'enregistrement de l'objet (ObjectID). Les object ids
|
|
sont souvent utilisés comme paramètre d'entrée pour
|
|
spécifier un objet.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
object record : une chaîne contenant des paires clé=valeur. Les
|
|
paires sont séparées par un retour à la ligne. Un
|
|
enregistrement d'objet peut facilement être converti en tableau, avec
|
|
la fonction <function>hw_objrec2array</function>. De nombreuses fonctions
|
|
retournent un objet record. Ces fonctions ont leur nom qui finit par obj.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
object array : un tableau associatif qui contient tous les attributs d'un objet.
|
|
La clé est l'attribut. Si un attribut apparaît plusieurs fois, il
|
|
sera représenté sous la forme d'un tableau associatif ou
|
|
indexé. Les attributs qui dépendent des langues (comme title,
|
|
keyword ou description) seront représentés sous la forme d'un
|
|
tableau associatif dont les clés seront les abréviations de
|
|
langues. Tous les autres attributs à valeur multiple prendront la
|
|
forme d'un tableau indexé.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
hw_document : ce type est un nouveau type de données, qui contient le
|
|
document lui-même, comme HTML, PDF etc. Il est
|
|
optimisé pour les documents HTML mais peut s'utiliser avec n'importe
|
|
quel format.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>
|
|
De nombreuses fonctions qui retournent un tableau d'enregistrements, retournent
|
|
aussi un tableau associé, avec des informations statistiques. Ce tableau
|
|
est le dernier élément du tableau d'enregistrements. Les
|
|
statistiques contiennent les entrées suivantes :
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>Hidden</term>
|
|
<listitem>
|
|
<simpara>
|
|
Nombre d'objets dont l'attribut PresentationHints est Hidden.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>CollectionHead</term>
|
|
<listitem>
|
|
<simpara>
|
|
Nombre d'objets dont l'attribut PresentationHints est CollectionHead.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>FullCollectionHead</term>
|
|
<listitem>
|
|
<simpara>
|
|
Nombre d'objets dont l'attribut PresentationHints est FullCollectionHead.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>CollectionHeadNr</term>
|
|
<listitem>
|
|
<simpara>
|
|
Index du premier objet du tableau d'enregistrement avec l'attribut
|
|
PresentationHints à CollectionHead.
|
|
</simpara></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>FullCollectionHeadNr</term>
|
|
<listitem>
|
|
<simpara>
|
|
Index du premier objet du tableau d'enregistrement avec l'attribut
|
|
PresentationHints est FullCollectionHead.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>Total</term>
|
|
<listitem>
|
|
<simpara>
|
|
Total : nombre d'enregistrements.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</preface>
|
|
<!-- }}} -->
|
|
|
|
&reference.hw.setup;
|
|
&reference.hw.constants;
|
|
&reference.hw.apache;
|
|
&reference.hw.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
|
|
--> |