svn: /phpdoc/ru/trunk/ features/commandline.xml reference/exec/functions/proc-open.xml reference/pdo/pdo/prepare.xml reference/pdo/pdo/setattribute.xml reference/var/functions/var-export.xml

[email protected] (Sergey Panteleev)
Newsgroups php.doc.ru
Message-ID <[email protected]>
sergey                                   Thu, 05 Mar 2020 10:44:02 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=349312

Log:
docs(ru): Updated to English revision

Changed paths:
    U   phpdoc/ru/trunk/features/commandline.xml
    U   phpdoc/ru/trunk/reference/exec/functions/proc-open.xml
    U   phpdoc/ru/trunk/reference/pdo/pdo/prepare.xml
    U   phpdoc/ru/trunk/reference/pdo/pdo/setattribute.xml
    U   phpdoc/ru/trunk/reference/var/functions/var-export.xml
svn-diffs-349312.txt (text/x-diff, 13.5 KB)
Modified: phpdoc/ru/trunk/features/commandline.xml
===================================================================
--- phpdoc/ru/trunk/features/commandline.xml	2020-03-05 10:39:55 UTC (rev 349311)
+++ phpdoc/ru/trunk/features/commandline.xml	2020-03-05 10:44:02 UTC (rev 349312)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 346151 Maintainer: rjhdby Status: ready -->
+<!-- EN-Revision: 349269 Maintainer: rjhdby Status: ready -->
 <!-- Reviewed: yes Maintainer: lex -->
 <!-- $Revision$ -->
 <chapter xml:id="features.commandline" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
@@ -1729,6 +1729,30 @@
    </tgroup>
   </table>

+  <table>
+   <title>История изменений</title>
+   <tgroup cols="2">
+    <thead>
+     <row>
+      <entry>&Version;</entry>
+      <entry>&Description;</entry>
+     </row>
+    </thead>
+    <tbody>
+     <row>
+      <entry>7.4.0</entry>
+      <entry>
+       Вы можете настроить встроенный веб-сервер так, чтобы он выполнял разветвление нескольких воркеров
+       для проверки кода, который требует нескольких одновременных запросов
+       к встроенному веб-серверу. Задайте в переменной окружения
+       <envar>PHP_CLI_SERVER_WORKERS</envar>
+       количество требуемых воркеров перед запуском
+       сервера.
+      </entry>
+     </row>
+    </tbody>
+   </tgroup>
+  </table>

   <example>
    <title>Запуск веб-сервера</title>

Modified: phpdoc/ru/trunk/reference/exec/functions/proc-open.xml
===================================================================
--- phpdoc/ru/trunk/reference/exec/functions/proc-open.xml	2020-03-05 10:39:55 UTC (rev 349311)
+++ phpdoc/ru/trunk/reference/exec/functions/proc-open.xml	2020-03-05 10:44:02 UTC (rev 349312)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 348652 Maintainer: tmn Status: ready -->
+<!-- EN-Revision: 349246 Maintainer: tmn Status: ready -->
 <!-- Reviewed: yes Maintainer: lex -->
 <!-- $Revision$ -->
 <!-- splitted from ./en/functions/exec.xml, last change in rev 1.28 -->
@@ -14,7 +14,7 @@
   &reftitle.description;
   <methodsynopsis>
    <type>resource</type><methodname>proc_open</methodname>
-   <methodparam><type>string</type><parameter>cmd</parameter></methodparam>
+   <methodparam><type>mixed</type><parameter>cmd</parameter></methodparam>
    <methodparam><type>array</type><parameter>descriptorspec</parameter></methodparam>
    <methodparam><type>array</type><parameter role="reference">pipes</parameter></methodparam>
    <methodparam choice="opt"><type>string</type><parameter>cwd</parameter><initializer>&null;</initializer></methodparam>
@@ -49,8 +49,28 @@
      <term><parameter>cmd</parameter></term>
      <listitem>
       <para>
-       Команда для выполнения
+       Командная для выполнения, указанная как строка (&string;).
+       Специальные символы должны быть должным образом экранированы,
+       и должны применяться правильные кавычки.
       </para>
+      <note>
+       <simpara>
+        В <emphasis>Windows</emphasis>, если для <literal>bypass_shell</literal> не установлено значение &true; в
+        <parameter>other_options</parameter>, <parameter>cmd</parameter>
+        передается в <command>cmd.exe</command> (точнее, <literal>%ComSpec%</literal>)
+        с флагом <literal>/c</literal> в виде строки  <emphasis>без кавычек</emphasis>
+        (т.е. точно так, как было задано в <function>proc_open</function>).
+        Это может привести к тому, что <command>cmd.exe</command> удалит заключающие из
+        <parameter>cmd</parameter> (подробности смотрите в документации <command>cmd.exe</command>),
+        приводя к неожиданному и потенциально даже опасному поведению, потому что сообщения об ошибках <command>cmd.exe</command> могут содержать (частично) переданный параметр
+        <parameter>cmd</parameter> (смотрите пример ниже).
+       </simpara>
+      </note>
+      <para>
+       Начиная с PHP 7.4.0, <parameter>cmd</parameter> может передаваться как массив (&array;) параметров команды.
+       В этом случае процесс будет открыт напрямую (не проходя через оболочку)
+       и PHP позаботится о экранировании любого необходимого аргумента.
+      </para>
      </listitem>
     </varlistentry>
     <varlistentry>
@@ -176,6 +196,13 @@
       <row>
        <entry>7.4.0</entry>
        <entry>
+        <function>proc_open</function> теперь также принимает массив (&array;)
+        в <parameter>cmd</parameter>.
+       </entry>
+      </row>
+      <row>
+       <entry>7.4.0</entry>
+       <entry>
         Добавлена опция <literal>create_process_group</literal> в
         параметр <parameter>other_options</parameter>.
        </entry>
@@ -256,6 +283,43 @@
    </example>
   </para>

+  <para>
+   <example>
+    <title><function>proc_open</function> причуда в Windows</title>
+    <simpara>
+     Хотя можно ожидать, что следующая программа будет искать в файле
+     <filename>filename.txt</filename> текст <literal>search</literal>
+     и выводить результаты, она ведет себя несколько иначе.
+    </simpara>
+    <programlisting role="php">
+<![CDATA[
+<?php
+$descriptorspec = [STDIN, STDOUT, STDOUT];
+$cmd = '"findstr" "search" "filename.txt"';
+$proc = proc_open($cmd, $descriptorspec, $pipes);
+proc_close($proc);
+?>
+]]>
+    </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+'findstr" "search" "filename.txt' не распознается как внутренняя или внешняя команда,
+работающая программа или пакетный файл.
+]]>
+    </screen>
+    <simpara>
+     Чтобы обойти это поведение, обычно достаточно
+     передать <parameter>cmd</parameter> в дополнительных кавычках:
+    </simpara>
+    <programlisting role="php">
+<![CDATA[
+$cmd = '""findstr" "search" "filename.txt""';
+]]>
+    </programlisting>
+   </example>
+  </para>
+
   <!-- ptys are currently disabled
   <para>
    <example>

Modified: phpdoc/ru/trunk/reference/pdo/pdo/prepare.xml
===================================================================
--- phpdoc/ru/trunk/reference/pdo/pdo/prepare.xml	2020-03-05 10:39:55 UTC (rev 349311)
+++ phpdoc/ru/trunk/reference/pdo/pdo/prepare.xml	2020-03-05 10:44:02 UTC (rev 349312)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 346459 Maintainer: rjhdby Status: ready -->
+<!-- EN-Revision: 349240 Maintainer: rjhdby Status: ready -->
 <!-- Reviewed: yes -->
 <!-- $Revision$ -->
 <refentry xml:id="pdo.prepare" xmlns="http://docbook.org/ns/docbook">
@@ -55,6 +55,18 @@
    также может заменять псевдопеременные на то, что больше подходит, если, например,
    драйвер поддерживает только именованные или, наоборот, только неименованные псевдопеременные.
   </para>
+  <note>
+   <simpara>
+    Начиная с PHP 5.3.0, синтаксический анализатор, используемый для эмулируемых подготовленных операторов
+    и для перезаписи именованных параметров или параметров стиля вопросительного знака, поддерживает нестандартные
+    обратные слеши для одинарных и двойных кавычек. Это означает, что завершающие
+    кавычки, непосредственно предшествующие обратной косой черте, не распознаются как таковые, что
+    может привести к неправильному обнаружению параметров, что приведет к сбою подготовленного оператора
+    при его выполнении. Обходной путь — не использовать эмулированную подготовку к таким
+    SQL-запросам и избегать перезаписи параметров, используя стиль параметров,
+    который изначально поддерживается драйвером.
+   </simpara>
+  </note>
  </refsect1>
  <refsect1 role="parameters">
   &reftitle.parameters;

Modified: phpdoc/ru/trunk/reference/pdo/pdo/setattribute.xml
===================================================================
--- phpdoc/ru/trunk/reference/pdo/pdo/setattribute.xml	2020-03-05 10:39:55 UTC (rev 349311)
+++ phpdoc/ru/trunk/reference/pdo/pdo/setattribute.xml	2020-03-05 10:44:02 UTC (rev 349312)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 340311 Maintainer: tmn Status: ready -->
+<!-- EN-Revision: 349307 Maintainer: tmn Status: ready -->
 <!-- Reviewed: yes Maintainer: lex -->
 <!-- $Revision$ -->
 <refentry xml:id="pdo.setattribute" xmlns="http://docbook.org/ns/docbook">
@@ -41,7 +41,7 @@
       <listitem><para><literal>PDO::ERRMODE_SILENT</literal>:
        Только установка кодов ошибок.</para></listitem>
       <listitem><para><literal>PDO::ERRMODE_WARNING</literal>:
-       Вызывать <link linkend="errorfunc.constants.errorlevels.e-warning">E_WARNING</link>.</para></listitem>
+       Вызывать <constant>E_WARNING</constant>.</para></listitem>
       <listitem><para><literal>PDO::ERRMODE_EXCEPTION</literal>:
        Выбрасывать <link linkend="class.pdoexception">исключения</link>.</para></listitem>
      </itemizedlist>

Modified: phpdoc/ru/trunk/reference/var/functions/var-export.xml
===================================================================
--- phpdoc/ru/trunk/reference/var/functions/var-export.xml	2020-03-05 10:39:55 UTC (rev 349311)
+++ phpdoc/ru/trunk/reference/var/functions/var-export.xml	2020-03-05 10:44:02 UTC (rev 349312)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 343899 Maintainer: shein Status: ready -->
+<!-- EN-Revision: 349260 Maintainer: shein Status: ready -->
 <!-- Reviewed: yes -->
 <!-- $Revision$ -->
 <!-- splitted from ./en/functions/var.xml, last change in rev 1.6 -->
@@ -74,6 +74,17 @@
      </thead>
      <tbody>
       <row>
+       <entry>7.3.0</entry>
+       <entry>
+        Теперь объекты <classname>stdClass</classname> экспортируются в виде массива, приведенного
+        к объекту (массив <code>(object) array( ... )</code>), вместо использования
+        несуществующего метода <methodname>stdClass::__setState</methodname>.
+        Практический эффект заключается в том, что теперь <classname>stdClass</classname> можно
+        экспортировать, и полученный код будет работать даже в более ранних версиях
+        PHP.
+       </entry>
+      </row>
+      <row>
        <entry>5.1.0</entry>
        <entry>
         Стало возможным экспортировать классы и массивы, содержащие
@@ -136,6 +147,30 @@
   </para>
   <para>
    <example>
+    <title>Экспорт stdClass с PHP 7.3.0</title>
+    <programlisting role="php">
+<![CDATA[
+<?php
+$person = new stdClass;
+$person->name = 'ElePHPant ElePHPantsdotter';
+$person->website = 'https://php.net/elephpant.php';
+
+var_export($person);
+]]>
+    </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+(object) array(
+   'name' => 'ElePHPant ElePHPantsdotter',
+   'website' => 'https://php.net/elephpant.php',
+)
+]]>
+    </screen>
+   </example>
+  </para>
+  <para>
+   <example>
     <title>Экспорт классов c PHP 5.1.0</title>
     <programlisting role="php">
 <![CDATA[
@@ -231,8 +266,7 @@
    <para>
     Для того, чтобы можно было использовать сгенерированный <function>var_export</function>
     PHP-код, необходимо, чтобы все затронутые объекты реализовывали
-    магический метод <link linkend="object.set-state">__set_state</link>. Помните, что StdClass
-    не реализует метод __set_state().
+    магический метод <link linkend="object.set-state">__set_state</link>. Единственное исключение — <classname>stdClass</classname>, который экспортируется с использованием массива, приведенного к объекту.
    </para>
   </note>
  </refsect1>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.