Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions appendices/examples.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 330a38c4d45556b49e06ebe6d39e0e311534cd8c Maintainer: lacatoire Status: ready -->
<!-- Reviewed: no -->
<appendix xml:id="examples" xmlns="http://docbook.org/ns/docbook">
<title>Über die Beispiele im Handbuch</title>
<simpara>
Es ist zu beachten, dass viele Beispiele in der PHP-Dokumentation der Klarheit und Kürze halber
auf die Behandlung von Fehlern und Ausnahmen verzichten.
</simpara>
<simpara>
Das bedeutet nicht, dass die Fehlerbehandlung in Produktivcode weggelassen werden sollte,
da dies dazu führen kann, dass <exceptionname>TypeError</exceptionname>s ausgelöst werden,
Fehlschlagwerte umgewandelt werden, etwa &false; in eine leere Zeichenkette,
oder Annahmen verletzt werden, was schwer auffindbare Fehler verursachen kann.
Einige Erweiterungen stellen vollständige Beispiele bereit, in denen die Fehlerbehandlung enthalten ist,
um die korrekte Verwendung der verschiedenen von der Erweiterung bereitgestellten Funktionen und Methoden
zu demonstrieren.
</simpara>
</appendix>
<!-- 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:"~/.phpdoc/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
-->
126 changes: 126 additions & 0 deletions chmonly/integration.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 7cecc752c7a19aa6ea422ac7ae82952a21bedd67 Maintainer: lacatoire Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="chm.integration" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Integration des PHP-Handbuchs</title>

<para>
<note>
<para>
Die hier bereitgestellten Informationen richten sich hauptsächlich an IDE-Autoren oder
fortgeschrittene Benutzer, die diese CHM-Datei in ihre
bevorzugten IDEs oder andere Komponenten ihrer Produktivumgebung integrieren möchten.
</para>
</note>
</para>
<para>
Es gibt mehrere Editoren mit Unterstützung für die CHM-Integration,
aber möglicherweise müssen einige Dinge über den Inhalt der CHM-Datei bekannt sein,
um das Handbuch erfolgreich in die eigene Umgebung zu integrieren.
</para>
<para>
Die CHM-Datei wird mithilfe von XSL-Stylesheets aus XML-Quellen erstellt. Dies ist
derzeit innerhalb der PHP-Handbuch-Familie einzigartig, da alle anderen Versionen
mithilfe von DSSSL-Stylesheets erzeugt werden. Das bedeutet auch, dass
unbeabsichtigte Unterschiede in der Darstellung auftreten können. Auf die Ausgabe der XSLT
wird ein spezielles Konvertierungsskript angewendet, das mehrere praktische
Funktionen hinzufügt und das Handbuch zusammen mit den Einstellungsdateien
und Skin-Beispielen verpackt.
</para>
<para>
Wer noch nie mit CHM-Dateien gearbeitet hat, kann sich diese als komprimierte
Dateien mit vom Betriebssystem unterstütztem Zugriff auf die enthaltenen Dateien sowie zusätzlicher Such-
und Indexunterstützung vorstellen. CHM-Dateien können jedoch nur mit dem HTML-Help-
Viewer angezeigt werden; auf die enthaltenen Dateien kann direkt über ein spezielles URL-
Präfix, den CHM-Dateinamen und die angeforderte enthaltene Datei zugegriffen werden. Da der gesamte
Hilfeinhalt in HTML-Dateien gespeichert ist, können Seiten der CHM-Datei
im Internet Explorer angezeigt werden.
</para>
<simpara>
Angenommen, die Datei <filename>php_manual_en.chm</filename> wurde unter
<filename>c:\phpmanual</filename> abgelegt, dann kann auf die Indexdatei des Handbuchs (die
beim ersten Mal angezeigt wird) über die folgende URL zugegriffen werden:
<literal>mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html</literal>.
Hierbei ist <literal>mk:@MSITStore:</literal> das spezielle "Protokoll",
<filename>C:\phpmanual\php_manual_en.chm</filename> ist die CHM-Datei mit ihrem
vollständigen Pfad. Der Teil <filename>/_index.html</filename> ist der Pfad zur
Indexdatei innerhalb der CHM, und <literal>::</literal> ist genau das, was zwischen
dem CHM-Pfad und diesem Dateipfad eingefügt werden muss.
</simpara>
<para>
<note>
<para>
Alle Dateien befinden sich im Stammverzeichnis der CHM, anders als bei den vorherigen
CHM-Versionen, die ein Sprachverzeichnis enthielten. Bilder, Stylesheets
und andere ergänzende Dateien haben Namen, die mit einem Unterstrich beginnen
(wie der oben gezeigte Hauptindex), um Namenskollisionen zu vermeiden.
</para>
</note>
</para>
<para>
Die Namen der erzeugten Dateien folgen denselben Regeln wie das Online-
Handbuch, mit der Ausnahme, dass die Erweiterung <literal>.html</literal> und
nicht <literal>.php</literal> lautet. Am wichtigsten ist, dass die Dateien der Funktions-
dokumentation <filename>function.FUNCNAME.html</filename> heißen,
wobei <literal>FUNCNAME</literal> der Funktionsname ist, mit allen
Unterstrichen, die in Bindestriche umgewandelt wurden. Einige Beispiele sind
<filename>function.echo.html</filename>,
<filename>function.mysql-close.html</filename>,
<filename>function.imagecopy.html</filename>.
</para>
<para>
Mithilfe all dieser Informationen kann eine Handbuchseite für eine von einem Benutzer
angeforderte Funktion angezeigt werden. In der Distribution ist ein einfaches Beispiel enthalten,
das <filename>php_quickref.hta</filename> heißt. Dabei handelt es sich um eine
<link xlink:href="&url.chm.hta;">HTML-Anwendung</link>, die den
einfachen Vorgang der Anzeige einer Handbuchseite für eine Funktion demonstriert. Die
darin definierte Funktion <literal>quickRef()</literal> erledigt diese Aufgabe.
</para>
<para>
Um das Handbuch in eine IDE ohne direkte
Unterstützung für das PHP-Handbuch (genauer gesagt für die Umwandlung von Unterstrichen in Bindestriche) zu integrieren,
kann die mitgelieferte Datei <filename>_function.html</filename> verwendet werden, um auf
eine Funktionsseite zuzugreifen. Diese Datei ist einfach eine Weiterleitung und kann über
die URL parametrisiert werden, etwa als <filename>_function.html#mysql_close</filename>. Diese Seite
leitet automatisch zur Seite der Funktion mysql_close
(<filename>function.mysql-close.html</filename>) weiter. Es kann der vollständige
Pfad dieser Datei angegeben werden, falls die IDE kontextsensitive
Hilfe unterstützt, und die von der IDE angegebene Zeichenkette als Parameter übergeben werden. Ein Beispiel
hierfür ist die Integration in UltraEdit 9 (siehe die Website dieser Edition).
</para>
<para>
Der Index des Handbuchs (zugänglich über die Registerkarte Index im Navigations-
bereich) kann ebenfalls zu Integrationszwecken verwendet werden. Alle HTML-Seiten
sind im Index mit ihren Titeln als Indexbegriffe enthalten (einschließlich der
Funktionsbeschreibungsseiten).
</para>
<para>
Wer als Entwickler von Desktop-Anwendungen die CHM-Datei eng
in das eigene Programm integrieren möchte (etwa um den Inhaltsverzeichnisbaum
in der Hilfebox der IDE anzuzeigen), findet weitere Informationen unter
<link xlink:href="&url.chm.helpware;">&url.chm.helpware;</link> sowie
Links zu weiteren nützlichen Ressourcen. Die offizielle Website für HTML Help befindet sich
unter <link xlink:href="&url.chm;">&url.chm;</link>.
</para>
</chapter>

<!-- 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:"~/.phpdoc/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
-->
136 changes: 136 additions & 0 deletions reference/cmark/commonmark.cql.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 7cecc752c7a19aa6ea422ac7ae82952a21bedd67 Maintainer: lacatoire Status: ready -->
<!-- Reviewed: no -->
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.commonmark-cql" role="class">

<title>Die Klasse CommonMark\CQL</title>
<titleabbrev>CommonMark\CQL</titleabbrev>

<partintro>

<!-- {{{ CommonMark\Parser intro -->
<section xml:id="commonmark-cql.intro">
&reftitle.intro;
<simpara>
Die CommonMark Query Language ist eine DSL zur Beschreibung der Navigation durch einen CommonMark-Knotenbaum, implementiert als Parser und Compiler für einen kleinen Satz von Anweisungen sowie eine virtuelle Maschine zur Ausführung dieser Anweisungen.
</simpara>
<formalpara>
<title>Pfade:</title>
<para>
In ihrer einfachsten Form kombiniert eine CQL-Abfrage die folgenden Pfade und <literal>/</literal>, um die Navigation durch einen Baum zu beschreiben:
<simplelist>
<member>firstChild</member>
<member>lastChild</member>
<member>previous</member>
<member>next</member>
<member>parent</member>
</simplelist>
Beispielsweise würde <literal>/firstChild/lastChild</literal> zum letzten Kindknoten des ersten Kindknotens navigieren.
</para>
</formalpara>
<formalpara>
<title>Schleifen</title>
<para>
CQL kann angewiesen werden, eine Schleife auszuführen, beispielsweise über die Kinder eines bestimmten Knotens oder seine Geschwister, indem der Pfad <literal>children</literal> oder <literal>siblings</literal> verwendet wird. Beispielsweise navigiert <literal>/firstChild/children</literal> zu allen Kindern des ersten Kindknotens.
</para>
</formalpara>
<formalpara>
<title>Teilabfragen</title>
<para>
CQL kann mithilfe einer Teilabfrage wie <literal>[/firstChild]</literal> angewiesen werden, wie navigiert werden soll. Beispielsweise navigiert <literal>/firstChild/children[/firstChild]</literal> zum ersten Kindknoten aller Kinder des ersten Kindknotens.
</para>
</formalpara>
<formalpara>
<title>Schleifeneinschränkungen</title>
<para>
Während einer Schleife kann CQL angewiesen werden, den navigierten Pfad auf Knoten eines bestimmten Typs zu beschränken. Beispielsweise navigiert <literal>/children(BlockQuote)</literal> zu den Kindern eines Knotens, dessen Typ <literal>BlockQuote</literal> ist. Die folgenden Typen werden (ohne Beachtung der Groß-/Kleinschreibung) erkannt:
<simplelist>
<member>BlockQuote</member>
<member>List</member>
<member>Item</member>
<member>CodeBlock</member>
<member>HtmlBlock</member>
<member>CustomBlock</member>
<member>Paragraph</member>
<member>Heading</member>
<member>ThematicBreak</member>
<member>Text</member>
<member>SoftBreak</member>
<member>LineBreak</member>
<member>Code</member>
<member>HtmlInline</member>
<member>CustomInline</member>
<member>Emphasis</member>
<member>Strong</member>
<member>Link</member>
<member>Image</member>
</simplelist>
Typen können als Vereinigung verwendet werden, beispielsweise navigiert <literal>/children(BlockQuote|List)</literal> zu den Kindern eines Knotens, dessen Typ <literal>BlockQuote</literal> oder <literal>List</literal> ist. Typen oder Vereinigungen von Typen können auch negiert werden. Beispielsweise navigiert <literal>/children(~BlockQuote)</literal> zu den Kindern eines Knotens, dessen Typ nicht <literal>BlockQuote</literal> ist, und <literal>/children(~BlockQuote|Paragraph)</literal> navigiert zu den Kindern eines Knotens, dessen Typ nicht <literal>BlockQuote</literal> oder <literal>Paragraph</literal> ist
</para>
</formalpara>
<formalpara>
<title>Pfadeinschränkungen</title>
<para>
CQL kann angewiesen werden, eine Schleife zu erstellen, um zu einem Knoten eines bestimmten Typs an einem bestimmten Pfad zu navigieren. Beispielsweise navigiert <literal>/firstChild(BlockQuote)</literal> zum ersten Kindknoten, dessen Typ <literal>BlockQuote</literal> ist. Beachten Sie, dass auf diese Art von Pfad, ebenso wie bei anderen Schleifen für <literal>children</literal> und <literal>siblings</literal>, nur eine Teilabfrage folgen kann.
</para>
</formalpara>
<formalpara>
<title>Hinweise zur Implementierung</title>
<para>
Obwohl CQL als Teil der PHP-Erweiterung CommonMark implementiert wurde, steht es unabhängig von PHP und verwendet weder die virtuelle Maschine noch die interne Repräsentation von Werten von PHP.
</para>
</formalpara>
</section>
<!-- }}} -->

<section xml:id="commonmark-cql.synopsis">
&reftitle.classsynopsis;

<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>CommonMark\CQL</classname></ooclass>

<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>CommonMark\CQL</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->

<classsynopsisinfo role="comment">&Constructor;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('commonmark-cql.construct')/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])"/>

<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.commonmark-cql')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
</classsynopsis>
<!-- }}} -->

</section>

</partintro>

&reference.cmark.commonmark.cql.construct;
&reference.cmark.commonmark.cql.invoke;

</reference>
<!-- 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:"~/.phpdoc/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
-->
Loading
Loading