git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@343234 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Andrey Gromov
2017-10-11 21:32:51 +00:00
parent 7790ef59d0
commit d91fb2cf21
6 changed files with 563 additions and 121 deletions

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b90505533de3950c34838bd3715e3e40088c9a05 Maintainer: irker Status: ready --> <!-- EN-Revision: 5e40a5a43dffadda040c030eaa12d88510a0987c Maintainer: irker Status: ready -->
<!-- Reviewed: yes --> <!-- Reviewed: yes -->
<!-- $Revision$ --> <!-- $Revision$ -->
@ -41,31 +41,31 @@ class SimpleClass
} }
?> ?>
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<para> <para>
Псевдо-переменная <varname>$this</varname> доступна в том случае, Псевдо-переменная <varname>$this</varname> доступна в том случае,
если метод был вызван в контексте объекта. <varname>$this</varname> если метод был вызван в контексте объекта. <varname>$this</varname>
является ссылкой на вызываемый объект. Обычно это тот объект, которому является ссылкой на вызываемый объект. Обычно это тот объект, которому
принадлежит вызванный метод, но может быть и другой объект, если метод был принадлежит вызванный метод, но может быть и другой объект, если метод был
вызван <link linkend="language.oop5.static">статически</link> из контекста вызван <link linkend="language.oop5.static">статически</link> из контекста
другого объекта. другого объекта.
Начиная с PHP 7.0.0, вызов нестатического метода статическим способом из Начиная с PHP 7.0.0, вызов нестатического метода статическим способом из
неподходящего контекста приведет к тому, что $this будет неопределен внутри метода. неподходящего контекста приведет к тому, что $this будет неопределен внутри метода.
Вызов нестатического метода статическим способом из неподходящего контекста было Вызов нестатического метода статическим способом из неподходящего контекста было
объявлено устаревшив в PHP 5.6.0. Начиная с PHP 7.0.0, подобный вызов объявлен объявлено устаревшив в PHP 5.6.0. Начиная с PHP 7.0.0, подобный вызов объявлен
совсем устаревшим (если только вызов не произошел из подходящего контекста). совсем устаревшим (если только вызов не произошел из подходящего контекста).
До PHP 5.6.0, подобные вызовы уже сопровождались строгим уведомлением. До PHP 5.6.0, подобные вызовы уже сопровождались строгим уведомлением.
</para> </para>
<para> <para>
<example xml:id="language.oop5.basic.class.this"> <example xml:id="language.oop5.basic.class.this">
<title>Несколько примеров с псевдо-переменной <varname>$this</varname></title> <title>Несколько примеров с псевдо-переменной <varname>$this</varname></title>
<simpara> <simpara>
Мы предполагаем, что error_reporting отключен для этого примера; в противном случае Мы предполагаем, что error_reporting отключен для этого примера; в противном случае
следующий код, в зависимости от версии PHP, вызовет предупреждения уровней следующий код, в зависимости от версии PHP, вызовет предупреждения уровней
"устаревшее" или "строгое". "устаревшее" или "строгое".
</simpara> </simpara>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
class A class A
@ -120,27 +120,27 @@ $this is not defined.
]]> ]]>
</screen> </screen>
</example> </example>
</para> </para>
</sect2> </sect2>
<sect2 xml:id="language.oop5.basic.new"> <sect2 xml:id="language.oop5.basic.new">
<title>new</title> <title>new</title>
<para> <para>
Для создания экземпляра класса используется директива <literal>new</literal>. Для создания экземпляра класса используется директива <literal>new</literal>.
Новый объект всегда будет создан, за исключением случаев, когда он содержит Новый объект всегда будет создан, за исключением случаев, когда он содержит
<link linkend="language.oop5.decon">конструктор</link>, в котором определен вызов <link linkend="language.oop5.decon">конструктор</link>, в котором определен вызов
<link linkend="language.exceptions">исключения</link> в случае ошибки. <link linkend="language.exceptions">исключения</link> в случае ошибки.
Рекомендуется определять классы до создания их экземпляров Рекомендуется определять классы до создания их экземпляров
(в некоторых случаях это обязательно). (в некоторых случаях это обязательно).
</para> </para>
<para> <para>
Если с директивой <literal>new</literal> используется строка (<type>string</type>), Если с директивой <literal>new</literal> используется строка (<type>string</type>),
содержащая имя класса, то будет создан новый экземпляр этого класса. Если содержащая имя класса, то будет создан новый экземпляр этого класса. Если
имя находится в пространстве имен, то оно должно быть задано полностью. имя находится в пространстве имен, то оно должно быть задано полностью.
</para> </para>
<example> <example>
<title>Создание экземпляра класса</title> <title>Создание экземпляра класса</title>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
$instance = new SimpleClass(); $instance = new SimpleClass();
@ -257,20 +257,21 @@ echo (new DateTime())->format('Y');
]]> ]]>
</screen> </screen>
</example> </example>
</sect2> </sect2>
<sect2 xml:id="language.oop5.basic.properties-methods"> <sect2 xml:id="language.oop5.basic.properties-methods">
<title>Properties and methods</title> <title>Properties and methods</title>
<para> <para>
Свойства и методы класса живут в разделенных "пространствах имен", так что Свойства и методы класса живут в разделенных "пространствах имен", так что
возможно задавать свойство и метод с одним и тем же именем. возможно задавать свойство и метод с одним и тем же именем.
Ссылки как на свойства, так и на методы имеют одинаковую нотацию, и получается, Ссылки как на свойства, так и на методы имеют одинаковую нотацию, и получается,
что получите вы доступ к свойству или же вызовете метод - определяется контекстом что получите вы доступ к свойству или же вызовете метод - определяется контекстом
использования. использования.
</para> </para>
<example> <example>
<title>Доступ к свойству vs. вызов метода</title> <title>Доступ к свойству vs. вызов метода</title>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php
class Foo class Foo
{ {
public $bar = 'property'; public $bar = 'property';
@ -283,26 +284,27 @@ class Foo
$obj = new Foo(); $obj = new Foo();
echo $obj->bar, PHP_EOL, $obj->bar(), PHP_EOL; echo $obj->bar, PHP_EOL, $obj->bar(), PHP_EOL;
]]> ]]>
</programlisting> </programlisting>
&example.outputs; &example.outputs;
<screen> <screen>
<![CDATA[ <![CDATA[
property property
method method
]]> ]]>
</screen> </screen>
</example> </example>
<para> <para>
Это означает, что вызвать <link linkend="functions.anonymous">анонимную Это означает, что вызвать <link linkend="functions.anonymous">анонимную
функцию</link>, присвоенную переменной напрямую не получится. функцию</link>, присвоенную переменной напрямую не получится.
Вместо этого сначала присвойте свойство переменной, например. Вместо этого сначала присвойте свойство переменной, например.
Начиная с PHP 7.0.0 возможно осуществить подобный вызов, заключив свойство Начиная с PHP 7.0.0 возможно осуществить подобный вызов, заключив свойство
в скобки. в скобки.
</para> </para>
<example> <example>
<title>Вызов анонимной функции содержащейся в свойстве</title> <title>Вызов анонимной функции содержащейся в свойстве</title>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php
class Foo class Foo
{ {
public $bar; public $bar;
@ -323,39 +325,39 @@ echo $func(), PHP_EOL;
// или так, начиная с of PHP 7.0.0: // или так, начиная с of PHP 7.0.0:
echo ($obj->bar)(), PHP_EOL; echo ($obj->bar)(), PHP_EOL;
]]> ]]>
</programlisting> </programlisting>
&example.outputs; &example.outputs;
<screen> <screen>
<![CDATA[ <![CDATA[
42 42
]]> ]]>
</screen> </screen>
</example> </example>
</sect2> </sect2>
<sect2 xml:id="language.oop5.basic.extends"> <sect2 xml:id="language.oop5.basic.extends">
<title>extends</title> <title>extends</title>
<para> <para>
Класс может наследовать методы и свойства другого класса используя Класс может наследовать методы и свойства другого класса используя
ключевое слово <literal>extends</literal> при его описании. Невозможно наследовать несколько ключевое слово <literal>extends</literal> при его описании. Невозможно наследовать несколько
классов, один класс может наследовать только один базовый класс. классов, один класс может наследовать только один базовый класс.
</para> </para>
<para> <para>
Наследуемые методы и свойства могут быть переопределены (за исключением Наследуемые методы и свойства могут быть переопределены (за исключением
случаев, когда метод класса объявлен как <link linkend="language.oop5.final">final</link>) случаев, когда метод класса объявлен как <link linkend="language.oop5.final">final</link>)
путем объявления их с теми же именами, как и в родительском классе. путем объявления их с теми же именами, как и в родительском классе.
Существует возможность доступа к переопределенным методам или статическим Существует возможность доступа к переопределенным методам или статическим
методам путем обращения к ним через методам путем обращения к ним через
<link linkend="language.oop5.paamayim-nekudotayim">parent::</link> <link linkend="language.oop5.paamayim-nekudotayim">parent::</link>
</para> </para>
<para> <para>
Когда переопределяются методы число и типы аргументов должны оставаться Когда переопределяются методы число и типы аргументов должны оставаться
такими же как и были, иначе PHP вызовет ошибку уровня <constant>E_STRICT</constant>. такими же как и были, иначе PHP вызовет ошибку уровня <constant>E_STRICT</constant>.
Это не относится к конструктору, который можно Это не относится к конструктору, который можно
переопределить с другими параметрами. переопределить с другими параметрами.
</para> </para>
<example> <example>
<title>Простое наследование классов</title> <title>Простое наследование классов</title>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
class ExtendClass extends SimpleClass class ExtendClass extends SimpleClass
@ -381,22 +383,22 @@ $extended->displayVar();
]]> ]]>
</screen> </screen>
</example> </example>
</sect2> </sect2>
<sect2 xml:id="language.oop5.basic.class.class">
<title>::class</title>
<sect2 xml:id="language.oop5.basic.class.class"> <para>
<title>::class</title> Начиная с версии PHP 5.5 можно использовать ключевое слово <literal>class</literal>
для разрешения имени класса. С помощью конструкции <literal>ClassName::class</literal>
<para> можно получить строку с абсолютным именем класса <literal>ClassName</literal>.
Начиная с версии PHP 5.5 можно использовать ключевое слово <literal>class</literal> Обычно это довольно полезно при работе с классами, использующими
для разрешения имени класса. С помощью конструкции <literal>ClassName::class</literal> <link linkend="language.namespaces">пространства имен</link>.
можно получить строку с абсолютным именем класса <literal>ClassName</literal>. </para>
Обычно это довольно полезно при работе с классами, использующими <para>
<link linkend="language.namespaces">пространства имен</link>. <example xml:id="language.oop5.basic.class.class.name">
</para> <title>Разрешение имени класса</title>
<para> <programlisting role="php">
<example xml:id="language.oop5.basic.class.class.name">
<title>Разрешение имени класса</title>
<programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
namespace NS { namespace NS {
@ -423,7 +425,7 @@ NS\ClassName
если класс не существует. Ошибка в этом случае не выдается. если класс не существует. Ошибка в этом случае не выдается.
</para> </para>
</note> </note>
</sect2> </sect2>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a2e72b2b3b376d7c852353a511c9a443fbffab6c Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.mhash-count" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>mhash_count</refname>
<refpurpose>Получить наибольший доступный ID хеша</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>mhash_count</methodname>
<void/>
</methodsynopsis>
<para>
Возвращает наибольший доступный ID хеша.
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Получить наибольший доступный идентификатор хеша. Хеши нумеруются от 0 до этого
ID.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Обход всех хэшей</title>
<programlisting role="php">
<![CDATA[
<?php
$nr = mhash_count();
for ($i = 0; $i <= $nr; $i++) {
echo sprintf("The blocksize of %s is %d\n",
mhash_get_hash_name($i),
mhash_get_block_size($i));
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a2e72b2b3b376d7c852353a511c9a443fbffab6c Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.mhash-get-block-size" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>mhash_get_block_size</refname>
<refpurpose>Получить размер блока для заданного хеша</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>mhash_get_block_size</methodname>
<methodparam><type>int</type><parameter>hash</parameter></methodparam>
</methodsynopsis>
<para>
Возвращает размер блока для заданного <parameter>hash</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>hash</parameter></term>
<listitem>
<para>
ID хеша. Одна из констант <constant>MHASH_hashname</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает размер в байтах или &false;, если параметр <parameter>hash</parameter>
задан некорректно.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>mhash_get_block_size</function></title>
<programlisting role="php">
<![CDATA[
<?php
echo mhash_get_block_size(MHASH_MD5); // 16
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a2e72b2b3b376d7c852353a511c9a443fbffab6c Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.mhash-get-hash-name" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>mhash_get_hash_name</refname>
<refpurpose>Получить имя указанного хеша</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>mhash_get_hash_name</methodname>
<methodparam><type>int</type><parameter>hash</parameter></methodparam>
</methodsynopsis>
<para>
Возвращает имя заданного <parameter>hash</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>hash</parameter></term>
<listitem>
<para>
ID хеша. Одна из констант <constant>MHASH_hashname</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает строку с названием или &false;, если такого хеша нет.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>mhash_get_hash_name</function></title>
<programlisting role="php">
<![CDATA[
<?php
echo mhash_get_hash_name(MHASH_MD5); // MD5
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@ -0,0 +1,109 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a2e72b2b3b376d7c852353a511c9a443fbffab6c Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.mhash-keygen-s2k" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>mhash_keygen_s2k</refname>
<refpurpose>Генерация ключа</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>mhash_keygen_s2k</methodname>
<methodparam><type>int</type><parameter>hash</parameter></methodparam>
<methodparam><type>string</type><parameter>password</parameter></methodparam>
<methodparam><type>string</type><parameter>salt</parameter></methodparam>
<methodparam><type>int</type><parameter>bytes</parameter></methodparam>
</methodsynopsis>
<para>
Генерирует ключ в соответствии с заданным <parameter>hash</parameter> и указанным
паролем <parameter>password</parameter>.
</para>
<para>
Используется алгоритм S2K с солью, как описано в документе OpenPGP
(<link xlink:href="&url.rfc;2440">RFC 2440</link>).
</para>
<para>
Помните, что пользовательские пароли не являются подходящими
ключами для криптографических алгоритмов, так как обычно они как минимум
набираемы на клавиатуре. Такие пароли используют только 6-7 бит (или меньше)
на символ. Так что такие пароли крайне рекомендуется предварительно преобразовывать
(например этой функцией).
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>hash</parameter></term>
<listitem>
<para>
ID хеша. Одна из констант <constant>MHASH_hashname</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>password</parameter></term>
<listitem>
<para>
Пользовательский пароль.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>salt</parameter></term>
<listitem>
<para>
Должна быть разной и достаточно случайной для каждого создаваемого
ключа. Так как <parameter>salt</parameter> должна быть известна
при проверке ключа, то хорошей идеей будет добавить ее к ключу.
Соль имеет фиксированный размер в 8 байт и будет дополнена нулями, если
заданный параметр будет короче.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>bytes</parameter></term>
<listitem>
<para>
Длина ключа в байтах.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает строку с ключем или &false; в случае ошибки.
</para>
</refsect1>
</refentry>
<!-- 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
-->

View File

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a2e72b2b3b376d7c852353a511c9a443fbffab6c Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.mhash" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>mhash</refname>
<refpurpose>Вычисляет хеш</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>mhash</methodname>
<methodparam><type>int</type><parameter>hash</parameter></methodparam>
<methodparam><type>string</type><parameter>data</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>key</parameter></methodparam>
</methodsynopsis>
<para>
<function>mhash</function> applies a hash function specified by
<parameter>hash</parameter> to the <parameter>data</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>hash</parameter></term>
<listitem>
<para>
ID хеша. Одна из констант <constant>MHASH_hashname</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
Строка с пользовательскими данными.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>key</parameter></term>
<listitem>
<para>
Если задано, то функция вернет результирующий HMAC.
HMAC - это код аутентификации сообщений, использующий хеш-функции.
Не все алгоритмы поддерживаемые mhash могут быть использованы в
режиме HMAC.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает строку с результирующим хешем или HMAC, или &false; в случае ошибки.
</para>
</refsect1>
</refentry>
<!-- 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
-->