mirror of
https://github.com/php/doc-ru.git
synced 2025-07-24 09:59:46 +00:00
new
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@343234 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: b90505533de3950c34838bd3715e3e40088c9a05 Maintainer: irker Status: ready -->
|
||||
<!-- EN-Revision: 5e40a5a43dffadda040c030eaa12d88510a0987c Maintainer: irker Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<!-- $Revision$ -->
|
||||
|
||||
@ -41,31 +41,31 @@ class SimpleClass
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Псевдо-переменная <varname>$this</varname> доступна в том случае,
|
||||
если метод был вызван в контексте объекта. <varname>$this</varname>
|
||||
является ссылкой на вызываемый объект. Обычно это тот объект, которому
|
||||
принадлежит вызванный метод, но может быть и другой объект, если метод был
|
||||
вызван <link linkend="language.oop5.static">статически</link> из контекста
|
||||
другого объекта.
|
||||
Начиная с PHP 7.0.0, вызов нестатического метода статическим способом из
|
||||
неподходящего контекста приведет к тому, что $this будет неопределен внутри метода.
|
||||
Вызов нестатического метода статическим способом из неподходящего контекста было
|
||||
объявлено устаревшив в PHP 5.6.0. Начиная с PHP 7.0.0, подобный вызов объявлен
|
||||
совсем устаревшим (если только вызов не произошел из подходящего контекста).
|
||||
До PHP 5.6.0, подобные вызовы уже сопровождались строгим уведомлением.
|
||||
</para>
|
||||
<para>
|
||||
<example xml:id="language.oop5.basic.class.this">
|
||||
<title>Несколько примеров с псевдо-переменной <varname>$this</varname></title>
|
||||
<simpara>
|
||||
Мы предполагаем, что error_reporting отключен для этого примера; в противном случае
|
||||
следующий код, в зависимости от версии PHP, вызовет предупреждения уровней
|
||||
"устаревшее" или "строгое".
|
||||
</simpara>
|
||||
<programlisting role="php">
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Псевдо-переменная <varname>$this</varname> доступна в том случае,
|
||||
если метод был вызван в контексте объекта. <varname>$this</varname>
|
||||
является ссылкой на вызываемый объект. Обычно это тот объект, которому
|
||||
принадлежит вызванный метод, но может быть и другой объект, если метод был
|
||||
вызван <link linkend="language.oop5.static">статически</link> из контекста
|
||||
другого объекта.
|
||||
Начиная с PHP 7.0.0, вызов нестатического метода статическим способом из
|
||||
неподходящего контекста приведет к тому, что $this будет неопределен внутри метода.
|
||||
Вызов нестатического метода статическим способом из неподходящего контекста было
|
||||
объявлено устаревшив в PHP 5.6.0. Начиная с PHP 7.0.0, подобный вызов объявлен
|
||||
совсем устаревшим (если только вызов не произошел из подходящего контекста).
|
||||
До PHP 5.6.0, подобные вызовы уже сопровождались строгим уведомлением.
|
||||
</para>
|
||||
<para>
|
||||
<example xml:id="language.oop5.basic.class.this">
|
||||
<title>Несколько примеров с псевдо-переменной <varname>$this</varname></title>
|
||||
<simpara>
|
||||
Мы предполагаем, что error_reporting отключен для этого примера; в противном случае
|
||||
следующий код, в зависимости от версии PHP, вызовет предупреждения уровней
|
||||
"устаревшее" или "строгое".
|
||||
</simpara>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
class A
|
||||
@ -120,27 +120,27 @@ $this is not defined.
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="language.oop5.basic.new">
|
||||
<title>new</title>
|
||||
<para>
|
||||
Для создания экземпляра класса используется директива <literal>new</literal>.
|
||||
Новый объект всегда будет создан, за исключением случаев, когда он содержит
|
||||
<link linkend="language.oop5.decon">конструктор</link>, в котором определен вызов
|
||||
<link linkend="language.exceptions">исключения</link> в случае ошибки.
|
||||
Рекомендуется определять классы до создания их экземпляров
|
||||
(в некоторых случаях это обязательно).
|
||||
</para>
|
||||
<para>
|
||||
Если с директивой <literal>new</literal> используется строка (<type>string</type>),
|
||||
содержащая имя класса, то будет создан новый экземпляр этого класса. Если
|
||||
имя находится в пространстве имен, то оно должно быть задано полностью.
|
||||
</para>
|
||||
<example>
|
||||
<title>Создание экземпляра класса</title>
|
||||
<programlisting role="php">
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="language.oop5.basic.new">
|
||||
<title>new</title>
|
||||
<para>
|
||||
Для создания экземпляра класса используется директива <literal>new</literal>.
|
||||
Новый объект всегда будет создан, за исключением случаев, когда он содержит
|
||||
<link linkend="language.oop5.decon">конструктор</link>, в котором определен вызов
|
||||
<link linkend="language.exceptions">исключения</link> в случае ошибки.
|
||||
Рекомендуется определять классы до создания их экземпляров
|
||||
(в некоторых случаях это обязательно).
|
||||
</para>
|
||||
<para>
|
||||
Если с директивой <literal>new</literal> используется строка (<type>string</type>),
|
||||
содержащая имя класса, то будет создан новый экземпляр этого класса. Если
|
||||
имя находится в пространстве имен, то оно должно быть задано полностью.
|
||||
</para>
|
||||
<example>
|
||||
<title>Создание экземпляра класса</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$instance = new SimpleClass();
|
||||
@ -257,20 +257,21 @@ echo (new DateTime())->format('Y');
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</sect2>
|
||||
<sect2 xml:id="language.oop5.basic.properties-methods">
|
||||
<title>Properties and methods</title>
|
||||
<para>
|
||||
Свойства и методы класса живут в разделенных "пространствах имен", так что
|
||||
возможно задавать свойство и метод с одним и тем же именем.
|
||||
Ссылки как на свойства, так и на методы имеют одинаковую нотацию, и получается,
|
||||
что получите вы доступ к свойству или же вызовете метод - определяется контекстом
|
||||
использования.
|
||||
</para>
|
||||
<example>
|
||||
<title>Доступ к свойству vs. вызов метода</title>
|
||||
<programlisting role="php">
|
||||
</sect2>
|
||||
<sect2 xml:id="language.oop5.basic.properties-methods">
|
||||
<title>Properties and methods</title>
|
||||
<para>
|
||||
Свойства и методы класса живут в разделенных "пространствах имен", так что
|
||||
возможно задавать свойство и метод с одним и тем же именем.
|
||||
Ссылки как на свойства, так и на методы имеют одинаковую нотацию, и получается,
|
||||
что получите вы доступ к свойству или же вызовете метод - определяется контекстом
|
||||
использования.
|
||||
</para>
|
||||
<example>
|
||||
<title>Доступ к свойству vs. вызов метода</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
class Foo
|
||||
{
|
||||
public $bar = 'property';
|
||||
@ -283,26 +284,27 @@ class Foo
|
||||
$obj = new Foo();
|
||||
echo $obj->bar, PHP_EOL, $obj->bar(), PHP_EOL;
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
property
|
||||
method
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
<para>
|
||||
Это означает, что вызвать <link linkend="functions.anonymous">анонимную
|
||||
функцию</link>, присвоенную переменной напрямую не получится.
|
||||
Вместо этого сначала присвойте свойство переменной, например.
|
||||
Начиная с PHP 7.0.0 возможно осуществить подобный вызов, заключив свойство
|
||||
в скобки.
|
||||
</para>
|
||||
<example>
|
||||
<title>Вызов анонимной функции содержащейся в свойстве</title>
|
||||
<programlisting role="php">
|
||||
</screen>
|
||||
</example>
|
||||
<para>
|
||||
Это означает, что вызвать <link linkend="functions.anonymous">анонимную
|
||||
функцию</link>, присвоенную переменной напрямую не получится.
|
||||
Вместо этого сначала присвойте свойство переменной, например.
|
||||
Начиная с PHP 7.0.0 возможно осуществить подобный вызов, заключив свойство
|
||||
в скобки.
|
||||
</para>
|
||||
<example>
|
||||
<title>Вызов анонимной функции содержащейся в свойстве</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
class Foo
|
||||
{
|
||||
public $bar;
|
||||
@ -323,39 +325,39 @@ echo $func(), PHP_EOL;
|
||||
// или так, начиная с of PHP 7.0.0:
|
||||
echo ($obj->bar)(), PHP_EOL;
|
||||
]]>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
</programlisting>
|
||||
&example.outputs;
|
||||
<screen>
|
||||
<![CDATA[
|
||||
42
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</sect2>
|
||||
<sect2 xml:id="language.oop5.basic.extends">
|
||||
<title>extends</title>
|
||||
<para>
|
||||
Класс может наследовать методы и свойства другого класса используя
|
||||
ключевое слово <literal>extends</literal> при его описании. Невозможно наследовать несколько
|
||||
классов, один класс может наследовать только один базовый класс.
|
||||
</para>
|
||||
<para>
|
||||
Наследуемые методы и свойства могут быть переопределены (за исключением
|
||||
случаев, когда метод класса объявлен как <link linkend="language.oop5.final">final</link>)
|
||||
путем объявления их с теми же именами, как и в родительском классе.
|
||||
Существует возможность доступа к переопределенным методам или статическим
|
||||
методам путем обращения к ним через
|
||||
<link linkend="language.oop5.paamayim-nekudotayim">parent::</link>
|
||||
</para>
|
||||
<para>
|
||||
Когда переопределяются методы число и типы аргументов должны оставаться
|
||||
такими же как и были, иначе PHP вызовет ошибку уровня <constant>E_STRICT</constant>.
|
||||
Это не относится к конструктору, который можно
|
||||
переопределить с другими параметрами.
|
||||
</para>
|
||||
<example>
|
||||
<title>Простое наследование классов</title>
|
||||
<programlisting role="php">
|
||||
</screen>
|
||||
</example>
|
||||
</sect2>
|
||||
<sect2 xml:id="language.oop5.basic.extends">
|
||||
<title>extends</title>
|
||||
<para>
|
||||
Класс может наследовать методы и свойства другого класса используя
|
||||
ключевое слово <literal>extends</literal> при его описании. Невозможно наследовать несколько
|
||||
классов, один класс может наследовать только один базовый класс.
|
||||
</para>
|
||||
<para>
|
||||
Наследуемые методы и свойства могут быть переопределены (за исключением
|
||||
случаев, когда метод класса объявлен как <link linkend="language.oop5.final">final</link>)
|
||||
путем объявления их с теми же именами, как и в родительском классе.
|
||||
Существует возможность доступа к переопределенным методам или статическим
|
||||
методам путем обращения к ним через
|
||||
<link linkend="language.oop5.paamayim-nekudotayim">parent::</link>
|
||||
</para>
|
||||
<para>
|
||||
Когда переопределяются методы число и типы аргументов должны оставаться
|
||||
такими же как и были, иначе PHP вызовет ошибку уровня <constant>E_STRICT</constant>.
|
||||
Это не относится к конструктору, который можно
|
||||
переопределить с другими параметрами.
|
||||
</para>
|
||||
<example>
|
||||
<title>Простое наследование классов</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
class ExtendClass extends SimpleClass
|
||||
@ -381,22 +383,22 @@ $extended->displayVar();
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</sect2>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="language.oop5.basic.class.class">
|
||||
<title>::class</title>
|
||||
|
||||
<sect2 xml:id="language.oop5.basic.class.class">
|
||||
<title>::class</title>
|
||||
|
||||
<para>
|
||||
Начиная с версии PHP 5.5 можно использовать ключевое слово <literal>class</literal>
|
||||
для разрешения имени класса. С помощью конструкции <literal>ClassName::class</literal>
|
||||
можно получить строку с абсолютным именем класса <literal>ClassName</literal>.
|
||||
Обычно это довольно полезно при работе с классами, использующими
|
||||
<link linkend="language.namespaces">пространства имен</link>.
|
||||
</para>
|
||||
<para>
|
||||
<example xml:id="language.oop5.basic.class.class.name">
|
||||
<title>Разрешение имени класса</title>
|
||||
<programlisting role="php">
|
||||
<para>
|
||||
Начиная с версии PHP 5.5 можно использовать ключевое слово <literal>class</literal>
|
||||
для разрешения имени класса. С помощью конструкции <literal>ClassName::class</literal>
|
||||
можно получить строку с абсолютным именем класса <literal>ClassName</literal>.
|
||||
Обычно это довольно полезно при работе с классами, использующими
|
||||
<link linkend="language.namespaces">пространства имен</link>.
|
||||
</para>
|
||||
<para>
|
||||
<example xml:id="language.oop5.basic.class.class.name">
|
||||
<title>Разрешение имени класса</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
namespace NS {
|
||||
@ -423,7 +425,7 @@ NS\ClassName
|
||||
если класс не существует. Ошибка в этом случае не выдается.
|
||||
</para>
|
||||
</note>
|
||||
</sect2>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
74
reference/mhash/functions/mhash-count.xml
Normal file
74
reference/mhash/functions/mhash-count.xml
Normal 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
|
||||
-->
|
85
reference/mhash/functions/mhash-get-block-size.xml
Normal file
85
reference/mhash/functions/mhash-get-block-size.xml
Normal 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
|
||||
-->
|
84
reference/mhash/functions/mhash-get-hash-name.xml
Normal file
84
reference/mhash/functions/mhash-get-hash-name.xml
Normal 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
|
||||
-->
|
109
reference/mhash/functions/mhash-keygen-s2k.xml
Normal file
109
reference/mhash/functions/mhash-keygen-s2k.xml
Normal 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
|
||||
-->
|
88
reference/mhash/functions/mhash.xml
Normal file
88
reference/mhash/functions/mhash.xml
Normal 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
|
||||
-->
|
Reference in New Issue
Block a user