mk              Fri May 18 14:08:07 2001 EDT

  Added files:                 
    /phpdoc/de/pear     standards.xml 

  Modified files:              
    /phpdoc/de  Translators 
    /phpdoc/de/pear     about.xml 
  Log:
  PEAR Stuff updated, committed Files by Thomas Schöfbeck
  
Index: phpdoc/de/Translators
diff -u phpdoc/de/Translators:1.164 phpdoc/de/Translators:1.165
--- phpdoc/de/Translators:1.164 Fri May 18 13:13:06 2001
+++ phpdoc/de/Translators       Fri May 18 14:08:07 2001
@@ -147,7 +147,8 @@
 variables.xml               Thomas Schuermann       fertig
 -------- pear --------------------------------------------------------------
 about.xml                  Mark Kronsbein          fertig
+                           Thomas Schöfbeck
 pear.xml
-standards.xml
+standards.xml              Thomas Schöfbeck        fertig
 ----------------------------------------------------------------------------
 preface.xml                 Egon Schmid             fertig  
Index: phpdoc/de/pear/about.xml
diff -u phpdoc/de/pear/about.xml:1.1 phpdoc/de/pear/about.xml:1.2
--- phpdoc/de/pear/about.xml:1.1        Wed May 16 16:45:01 2001
+++ phpdoc/de/pear/about.xml    Fri May 18 14:08:07 2001
@@ -2,39 +2,41 @@
   <title>Über PEAR</title>
   <simpara>
    PEAR ist <ulink url="&url.malinimg;">Malin Bakken</ulink> gewidmet,
-   geboren am 1999-11-21 (der erste PEAR Code wurde zwei Stunden vor 
-   ihrer Geburt geschrieben).
+   die am 21.11.1999 geboren wurde (der erste PEAR Code wurde gerade 
+   einmal zwei Stunden vor ihrer Geburt geschrieben).
   </simpara>
 
   <sect1 id="pear-whatis">
-   <title>Was ist PEAR?</title>
+   <title>Whas ist PEAR?</title>
    <simpara>
-    PEAR ist eine Code Sammlung für PHP Erweiterungen und PHP Code-Bibliotheken
-    angeregt durch TeX's CTAN und Perl's CPAN.
+    PEAR ist ein Code-Archiv für PHP Erweiterungen und PHP 
+    Bibliotheken, inspiriert von TeX's CTAN und Perl's CPAN.
    </simpara>
    <para>
-    Das Ziel von PEAR ist:
+    Der Zweck von PEAR ist:
     <itemizedlist>
      <listitem>
       <simpara>
-       Autoren einheitliche Mittel bereitzustellen, um andere
-       Entwicklern an ihrem Code teilhaben zu lassen
+       eine einheitliche Möglichkeit für Autoren von Bibliotheken zu 
+       bieten, andere Entwickler an ihrem Code mitarbeiten, bzw. ihren 
+       Code mitverwenden zu lassen
       </simpara>
      </listitem>
      <listitem>
       <simpara>
-       der PHP Community eine Infrastruktur zur Verbreitung von Code zu bieten
+       der PHP-Gemeinde eine Infrastruktur zu geben, um sich die gleiche 
+       Code-Basis teilen zu können
       </simpara>
      </listitem>
      <listitem>
       <simpara>
-       Standards festzulegen, welche Entwicklern helfen, portierbaren und
-       benutzbaren Code zu schreiben
+       Standards zu definieren, um die Entwickler beim Schreiben von 
+       portablem und wiederverwendbarem Code zu unterstützen
       </simpara>
      </listitem>
      <listitem>
       <simpara>
-       Werkzeuge für Verwaltung und Verbreitung von Code bereitzustellen
+       Werkzeuge zur Wartung und Verteilung der Codes anzubieten
       </simpara>
      </listitem>
     </itemizedlist>

Index: phpdoc/de/pear/standards.xml
+++ phpdoc/de/pear/standards.xml
 <chapter id="pear.standards">
  <title>PEAR Codierstandards</title>
  <sect1 id="pear.standards.indenting">
   <title>Einrücken</title>
   <para>
    Benutzen Sie Einrückungen von 4 Zeichen, ohne Tabulatoren. Wenn Sie 
    Emacs zum editieren von PEAR Code verwenden, sollten Sie den
    indent-tabs-mode auf nil setzen. Hier ist ein Beispiel für einen 
    mode-hook, welcher Emacs entsprechend dieser Richtlinien konfiguriert
    (versichern Sie sich, daß der mode-hook auch aufgerufen wird, wenn Sie 
    PHP Dateien editieren):
    <programlisting role="elisp">
(defun php-mode-hook ()
  (setq tab-width 4
        c-basic-offset 4
        c-hanging-comment-ender-p nil
        indent-tabs-mode nil))
</programlisting>
   </para>
   <para>Hier sind die vim rules für das gleiche Problem:
    <programlisting role="vim">
  set expandtab 
  set shiftwidth=4 
  set tabstop=4 
</programlisting>
   </para>
  </sect1>

  <sect1 id="pear.standards.control">
   <title>Kontrollstrukturen</title>
   <para>
    Diese beinhalten if, for, while, switch, etc. Hier ein Beispiel für 
    eine if Anweisung, nachdem es die komplizierteste von ihnen ist: 
    <programlisting role="php">
if ((Bedingung1) || (Bedingung2)) {
    Anweisung1;
} elseif ((Bedingung3) &amp;&amp; (Bedingung4)) {
    Anweisung2;
} else {
    Default-Anweisung;
}
</programlisting>
   </para>
   <simpara>
    Kontrollstrukturen sollten ein Leerzeichen zwischen dem Schlüsselwort 
    und der öffnenden Klammer haben, um sie von Funktionsaufrufenbesser zu 
    unterscheiden.
   </simpara>
   <simpara>
    Sie sollten immer geschweifte Klammern benutzen auch wenn sie in 
    manchen Situationen rein technisch nur optional anzuwenden sind. Sie 
    zu verwenden erhöht nicht nur die Lesbarkeit und vermindert daher die 
    Wahrscheinlichkeit von logischen Fehlern, wenn neue Zeilen hinzugefügt
    werden.
   </simpara>
   <para>
    Für switch-Anweisungen:
     <programlisting role="php">
switch (Bedingung) {
case 1:
    Anweisung1;
    break;

case 2:
    Anweisung2;
    break;

default:
    Default-Anweisung;
    break;

}
</programlisting>
   </para>
  </sect1>

  <sect1 id="pear.standards.funcalls">
   <title>Funktionsaufrufe</title>
   <para>
    Funktionsaufrufe sollten zwischen dem Funktionsnamen, der öffnenden 
    Klammer, und dem ersten Parameter, sowie zwischen dem letzten Parameter 
    und der schließenden Klammer keine Leerzeichen enthalten. Die einzelnen 
    Parameter sollten zwischen den Beistrichen und dem nächsten Parameter 
    durch Leerzeichen getrennt werden. Hier ein Beispiel:
    <programlisting role="php">
$var = foo($bar, $baz, $quux);
</programlisting>
   </para>
   <para>
    Wie oben gezeigt, sollte das zur Zuweisung des Rückgabewertes einer 
    Funktion an eine Variable verwendete Gleichheitszeichen auf jeder Seite 
    von einem Leerzeichen umgeben sein. Im Falle eines Blocks von 
    Zuweisungen können mehrere Leerzeichen eingefügt werden, um die 
    Lesbarkeit zu erhöhen: 
    <programlisting role="php">
$short         = foo($bar);
$long_variable = foo($baz);
</programlisting>
   </para>
  </sect1>

  <sect1 id="pear.standards.funcdef">
   <title>Funktionsdefinitionen</title>
   <para>
    Funktionsdeklarationen folgen der "eine entsprechnde Klammer" Konvention:
    <programlisting role="php">
function fooFunction($arg1, $arg2 = '')
{
    if (Bedingung) {
        Anweisung;
    }
    return $val;
}
</programlisting>
   </para>
   <para>
    Argumente mit Default-Werten werden am Ende der Argumentenliste 
    aufgeführt. Versuchen Sie immer einen bedeutungsvollen Wert von einer
    Funktion zurückzugeben, wenn ein Rückgabewert angebracht ist. Hier ein 
    etwas längeres Beispiel:
    <programlisting role="php">
function connect(&amp;$dsn, $persistent = false)
{
    if (is_array($dsn)) {
        $dsninfo = &amp;$dsn;
    } else {
        $dsninfo = DB::parseDSN($dsn);
    }
    
    if (!$dsninfo || !$dsninfo['phptype']) {
        return $this->raiseError();
    }
    
    return true;
}
    </programlisting>
   </para>
  </sect1>

  <sect1 id="pear.standards.comments">
   <title>Kommentare</title>
   <para>
    Inline-Dokumentation für Klassen sollten entsprechend der PHPDoc 
    Konvention erfolgen (ähnlich Javadoc). Mehr Information über PHPDoc
    finden Sie hier: <ulink url="&url.phpdoc;">&url.phpdoc;</ulink>
   </para>
   <para>
    Weitere Kommentare, welche nicht der Klassendokumentation dienen, werden 
    nachdrücklich empfohlen. Eine generelle Faustregel ist: Wenn Sie auf ein 
    Stück Code blicken und denken "Wow, ich möchte das nicht versuchen und 
    beschreiben", daß Sie es auf jeden Fall kommentieren sollten, bevor Sie 
    vergessen, wie es funktioniert.
   </para>
   <para>
    Kommentare im Stil von C (/* */) und C++ (// ) sind zu verwenden, 
    während Kommentare im Stile von perl/shell (#) zu vermeiden sind.
   </para>
  </sect1>

  <sect1 id="pear.standards.including">
   <title>Einfügen von Code</title>
   <para>
    Verwenden Sie überall dort, wo Sie bedingungslos eine Klassendatei 
    einfügen <function>require_once</function>. Wenn Sie eine Klassendatei 
    bedingt einfügen wollen (z.B. Fabrikmethoden) verwenden Sie 
    <function>include_once</function>. Beide Anweisungen stellen sicher, daß 
    die einzufügende Datei nur einmal eingefügt wird. Sie benutzen die selbe 
    Dateiliste, weshalb Sie sich keine Sorgen über deren gleichzeitige 
    Benutzung machen brauchen - alle mittels <function>require_once</function> 
    eingefügten Dateien werden mittels <function>include_once</function> 
    nicht noch einmal eingefügt.
    <note>
     <simpara>
      <function>include_once</function> und
      <function>require_once</function> sind Statements, keine Funktionen. 
      Sie <emphasis>benötigen</emphasis> keine Klammern um den Dateinamen, 
      um die Datei einzufügen.
     </simpara>
    </note>
   </para>    
  </sect1>

  <sect1 id="pear.standards.tags">
   <title>PHP Code Tags</title>
   <para>
    Benutzen Sie <emphasis>immer</emphasis> <literal>&lt;?php ?></literal> 
    um den PHP Code zu begrenzen, und nicht die Kurzform 
    <literal>&lt;? ?></literal>. Dies ist zur PEAR Konformität erforderlich
    und ist auch der portabelste Weg, PHP Code auf verschiedenen 
    Betriebssystemen bzw. Setups einzufügen.
   </para>
  </sect1>

  <sect1 id="pear.standards.header">
   <title>Kommentare im Dateikopf</title>
   <para>
    Alle Source Code-Dateien in der PEAR Kerndistribution sollten den 
    folgenden Kommentarblock am Anfang der Datei enthalten:
    <programlisting role="php">
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | PHP version 4.0                                                      |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group             |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license,       |
// | that is bundled with this package in the file LICENSE, and is        |
// | available at through the world-wide-web at                           |
// | http://www.php.net/license/2_02.txt.                                 |
// | If you did not receive a copy of the PHP license and are unable to   |
// | obtain it through the world-wide-web, please send a note to          |
// | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
// +----------------------------------------------------------------------+
// | Authors: Original Author &lt;[EMAIL PROTECTED]>                        |
// |          Ihr Name &lt;[EMAIL PROTECTED]>                                 |
// +----------------------------------------------------------------------+
//
// &dollar;Id&dollar;
</programlisting>
   </para>
   <para>   
    Es gibt keine festen Regeln, wann ein neuer Code Autor für seine 
    Beiträge der Liste von Autoren hinzugefügt werden sollte. Generell 
    sollten dessen Änderungen in die Kategorie "Erheblich" fallen (d.h. 
    sie sollten irgendwo bei 10 bis 20 Prozent der Codeänderungen liegen).
    Ausnahmen könnten für das Umschreiben von Funktionen oder das Beisteuern 
    einer neuen Logik gemacht werden. 
   </para>
   <para>
    Einfache Reorganisation von Code oder das beheben von Bugs würde ein 
    Hinzufügen einer neuen Person in die Liste der Autoren nicht rechtfertigen. 
   </para>
   <para>
    Dateien außerhalb des PEAR Kernarchivs sollten einen ähnlichen Block mit 
    Copyright, Lizenz, und den Autoren aufweisen. Alle Dateien sollten 
    außerdem die modeline Kommentare enthalten, um die Konsistenz zu fördern. 
   </para>
  </sect1>

  <sect1 id="pear.standards.cvstags">
   <title>CVS Tags</title>
   <para>
    Fügen Sie den &dollar;Id&dollar; CVS Tag in jede Datei ein. Wenn Sie 
    eine Datei editieren und dieser Tag noch nicht vorhanden ist, fügen Sie 
    ihn bitte hinzu (oder ersetzen Sie bereits vorhandene Formen wie "Last 
    Modified:", etc.).
    <note>
     <simpara>
      Wir haben einen speziellen $Horde Tag in Horde CVS, um unsere 
      Versionen getrennt zu verfolgen; wir könnten das gleiche tun und 
      einen $PEAR Tag einführen, welcher auch bleiben würde, wenn die 
      PEAR Dateien einmal von einem anderen Source-Kontrollsystem 
      verwaltet werden, etc.
     </simpara>
    </note>
   </para>
  </sect1>

  <sect1 id="pear.standards.exampleurls">
   <title>Beispiel URLs</title>
   <para>
    Verwenden Sie "example.com" lt. RFC 2606 für alle Beispiel URLs.
   </para>
  </sect1>

  <sect1 id="pear.standards.constants">
   <title>Konstanten benennen</title>
   <para>
    Konstanten sollten immer in Großbuchstaben benannt werden, und die 
    Worttrennung sollte mit Unterstrichen erfolgen. Geben Sie als Präfix
    zum Konstantennamen den Namen der Klasse bzw. des Paketes an, in 
    welcher die Konstante benutzt wird. Zum Beispiel beginnen alle 
    Konstanten, welche von dem <literal>DB::</literal> - Paket benutzt 
    werden, mit "<literal>DB_</literal>". 
   </para>
  </sect1>
  
 </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
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

Reply via email to