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
8 changes: 7 additions & 1 deletion appendices/reserved.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 170b6cda37f29c39b9e08375344c5eb9523b2de3 Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: ff9181ea03ac348b2c7ff4ad07896f277cddcb1d Maintainer: hirokawa Status: ready -->
<!-- CREDITS: takagi,mumumu -->

<appendix xml:id="reserved" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
Expand Down Expand Up @@ -567,6 +567,12 @@
<entry>
never (PHP 8.1 以降)
</entry>
<entry>
array (PHP 8.5 以降)
</entry>
<entry>
callable (PHP 8.5 以降)
</entry>
</row>
</tbody>
</tgroup>
Expand Down
57 changes: 27 additions & 30 deletions features/persistent-connections.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cd8b964b8566801265f0d287db6eb651f93be950 Maintainer: mumumu Status: ready -->
<!-- EN-Revision: ee5ee84013f11aaaf01b09484bc9aa3225379748 Maintainer: mumumu Status: ready -->
<chapter xml:id="features.persistent-connections" xmlns="http://docbook.org/ns/docbook">
<title>持続的データベース接続</title>

Expand All @@ -11,7 +11,7 @@
持続的接続が要求された時、
PHP は(前もってオープンされたままになっている)
同じ持続的接続が既にオープンされていないかどうかを確認します。
そして、存在する場合には、それを使用します。存在しない場合には、
そして、存在する場合には、それを再利用します。存在しない場合には、
そのリンクを作成します。'同じ'接続とは、同じホスト、同じユーザー名、
同じパスワード(利用可能な場合)でオープンされた接続のことを意味します。
</simpara>
Expand All @@ -23,13 +23,12 @@
別のワーカーによって処理される場合があります)
</simpara>
<simpara>
つまり、PHP の持続的接続が使えない場合があるということです。
たとえば以下の場合です:
したがって、PHP の持続的接続は、たとえば以下の目的には使えません:
</simpara>
<simplelist>
<member>特定のデータベースセッションを、特定のWebユーザーに割り当てる場合</member>
<member>複数のリクエストにまたがる、巨大なトランザクションを生成する場合</member>
<member>あるリクエストでクエリを発行し、クエリの結果を別のリクエストで収集する場合</member>
<member>特定のデータベースセッションを特定のWebユーザーに割り当てる</member>
<member>複数のリクエストにまたがる巨大なトランザクションを生成する</member>
<member>あるリクエストでクエリを発行し、クエリの結果を別のリクエストで収集する</member>
</simplelist>
<simpara>
持続的接続は、
Expand All @@ -54,17 +53,17 @@
</simpara>
<simpara>
2番目は、最も一般的ですが、PHP を PHP-FPM か、
マルチプロセスWebサーバー(現在はApacheのみが含まれます)のモジュールとして実行する方法です。
マルチプロセスWebサーバー(現在はApacheのみ)のモジュールとして実行する方法です。
マルチプロセスサーバーは、通常、
実際にWebページを送信する複数のプロセス(子)を管理するプロセス(親)を有しています。
実際にWebページの提供を行う複数のプロセス(子)を管理するプロセス(親)を有しています。
リクエストがクライアントから来ると、
親プロセスは、
他のクライアントにすでに送信を行っていないクライアントの一つに渡します。
このため、
同じクライアントが2番目のリクエストをサーバーに送信した際に最初のではなく他の子プロセスにより送信が行われる可能性があります。
持続的接続がオープンされているとき
SQL サービスにリクエストを行うそれぞれのページは
SQL サーバーへの確立された接続を再利用することができます
持続的接続がオープンされると
同じ子プロセスが処理する後続のページは
SQL サーバーへの確立済みの接続を再利用することができます
</simpara>
<note>
<para>
Expand All @@ -91,31 +90,29 @@
よって、cron やコマンドからのような一時的なスクリプトから、
持続的接続を使ってもなんの役にも立ちません。
とはいっても、役に立つ場面はあるかもしれません。
たとえば、たくさんのリクエストや
個別のタスクがそれぞれのデータベース接続を必要とする多数のタスクを処理する
アプリケーションサーバーを書いている場合が挙げられます
たとえば、多くのリクエストやタスクを処理し
それぞれが独自のデータベース接続を必要とする可能性のある、
長時間実行のアプリケーションサーバーの場合が挙げられます
</simpara>
</simplesect>

<simplesect xml:id="persistent-connections.why">
<title>持続的接続をなぜ使うのか?</title>
<simpara>
持続的接続は、SQLサーバーへ接続するオーバーヘッドが大きい場合には有効です。
このオーバーヘッドが実際に大きいがどうかは様々な要因に依存します。
例えば、データベースの種類、
Webサーバーが動作するのと同じコンピューターで動作しているか、
SQLサーバーを動作させているマシンの負荷、等となります。
肝心なのは、接続のオーバーヘッドが高い場合、
持続的接続は著しく効果があるということです。
持続的接続は、
SQLサーバーへの接続を要求するページをリクエスト毎に処理する代わりに、
子プロセスが動作中の間一回しかサーバーへの接続を行わないようにします。
持続的接続は、SQLサーバーへ接続するオーバーヘッドが大きい場合に有効です。
このオーバーヘッドが大きいかどうかは、データベースの種類、
Webサーバーと同じマシン上にあるかどうか、
そのマシンの負荷など、様々な要因に依存します。
接続のオーバーヘッドが大きい場合、
持続的接続は著しく効果があります:
子プロセスは、SQLサーバーへの接続が必要なページを処理するたびに接続するのではなく、
動作中に一度だけ接続を行います。
このことは、
持続的接続をオープンしたプロセス毎に
サーバーへの持続的接続をオープンするということになります
持続的接続をオープンした子プロセスがそれぞれ
サーバーへの接続を維持するということになります
例えば、
20の異なった子プロセスがSQLサーバーへの持続的接続を行うスクリプトを実行した場合
各子プロセス毎にSQLサーバーへの20の異なった接続が行われます
20の異なった子プロセスがそれぞれSQLサーバーへの持続的接続を行うスクリプトを実行した場合
各子プロセスごとにSQLサーバーへの20の個別の接続が行われます
</simpara>
</simplesect>

Expand All @@ -128,7 +125,7 @@
もしデータベースの同時接続数の制限が16だとして、
サーバーに多くのアクセスがあったため、
17個の子プロセスが接続しようとするとそのうちの一つは接続に失敗します。
もしスクリプトにコネクションをシャットダウンしないようなバグ(例えば無限ループ)があると、
もしスクリプトに接続をシャットダウンしないようなバグ(例えば無限ループ)があると、
16程度の同時接続しか許容しないデータベースはすぐにダメになってしまいます。
</simpara>
<simpara>
Expand Down
2 changes: 1 addition & 1 deletion language/types/singleton.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f908fff129bcd8ec1605658e06457cb04e5b2b51 Maintainer: mumumu Status: ready -->
<!-- EN-Revision: 828980b619bb4300e196924598b6a5d398f630e4 Maintainer: mumumu Status: ready -->
<sect1 xml:id="language.types.singleton">
<title>シングルトン型</title>

Expand Down
5 changes: 4 additions & 1 deletion reference/classobj/functions/class-alias.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f5a677b8fdc3f7f72f2225f906cac0e466d4558d Maintainer: takagi Status: ready -->
<!-- EN-Revision: ff9181ea03ac348b2c7ff4ad07896f277cddcb1d Maintainer: takagi Status: ready -->
<refentry xml:id="function.class-alias" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>class_alias</refname>
Expand All @@ -19,6 +19,9 @@
ユーザー定義のクラス <parameter>class</parameter> に対して作成します。
エイリアスは、元のクラスとまったく同一のものとなります。
</para>
<simpara>
クラスのエイリアスに PHP の<link linkend="reserved.other-reserved-words">予約語</link>は使用できません。
</simpara>
<note>
<simpara>
PHP 8.3.0 以降では、<function>class_alias</function>
Expand Down
4 changes: 2 additions & 2 deletions reference/curl/constants_curl_setopt.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: c9888ac6e5c75d00d50f9c2fd741ae3a82a479ec Maintainer: nsfisis Status: ready -->
<!-- EN-Revision: d7d6dd60085409b295916649e4bd7107742659a2 Maintainer: nsfisis Status: ready -->
<variablelist role="constant_list">
<title><function>curl_setopt</function></title>
<varlistentry xml:id="constant.curlopt-abstract-unix-socket">
Expand Down Expand Up @@ -242,7 +242,7 @@
<listitem>
<para>
接続するまでの最大待機秒数を指定します。
0 を指定するといつまでも待機します。
<literal>0</literal> を指定するといつまでも待機します。
このオプションは、有効な <type>int</type> にキャストできる任意の値を受け付けます。
デフォルト値は <literal>300</literal> です。
cURL 7.7.0 以降で利用可能です。
Expand Down
9 changes: 8 additions & 1 deletion reference/datetime/datetimeinterface.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a69d8c2c891e70c03c33cbe251a208dd7d185af9 Maintainer: takagi Status: ready -->
<!-- EN-Revision: e1e7f1f922033c50c2fd2d33fc5e0512f4e76844 Maintainer: takagi Status: ready -->
<!-- Credits: mumumu -->
<reference xml:id="class.datetimeinterface" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">

Expand Down Expand Up @@ -366,6 +366,13 @@
</row>
</thead>
<tbody>
<row>
<entry>8.5.0</entry>
<entry>
定数 <constant>DATE_RFC7231</constant> および
<constant>DateTimeInterface::RFC7231</constant> は、推奨されなくなりました。
</entry>
</row>
<row>
<entry>8.4.0</entry>
<entry>クラス定数が型付けされました。</entry>
Expand Down
12 changes: 7 additions & 5 deletions reference/filter/functions/filter-input.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 627f933cfe6a033dccac32982cd68e7c1b86927f Maintainer: mumumu Status: ready -->
<!-- EN-Revision: f7e68a1a35d622977d1a1c2155795204243ec3f1 Maintainer: mumumu Status: ready -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="function.filter-input">
<refnamediv>
<refname>filter_input</refname>
Expand Down Expand Up @@ -60,10 +60,12 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
成功した場合はフィルタされた変数の値を返します。
変数が設定されていない場合は &false; を返します。
フィルタリングに失敗した場合にも &false; を返します。
<constant>FILTER_NULL_ON_FAILURE</constant> を使った場合は、&null; を返します。
成功した場合はリクエストされた変数の値、
フィルタが失敗した場合は &false;、
<parameter>var_name</parameter> 変数が設定されていない場合は &null; を返します。
<constant>FILTER_NULL_ON_FAILURE</constant> フラグを使った場合は、
変数が設定されていない場合に &false;、
フィルタが失敗した場合に &null; を返します。
</simpara>
</refsect1>

Expand Down
2 changes: 1 addition & 1 deletion reference/imagick/imagickdraw/gettextinterlinespacing.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1ef9c7a76700b3e72844050d75e6ed1b870f9ca7 Maintainer: KentarouTakeda Status: ready -->
<!-- EN-Revision: 13cc59c9fe01418faf015ace0c88ae7b52f9d0a1 Maintainer: KentarouTakeda Status: ready -->

<refentry xml:id="imagickdraw.gettextinterlinespacing" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
Expand Down
11 changes: 3 additions & 8 deletions reference/intl/collator/set-attribute.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1976eae0d815797af97a1e16c5cd90ffc2868395 Maintainer: takagi Status: ready -->
<!-- EN-Revision: 0194deb3cec8d79ae6b13700f3cd031d14597838 Maintainer: takagi Status: ready -->
<refentry xml:id="collator.setattribute" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>Collator::setAttribute</refname>
Expand Down Expand Up @@ -77,13 +77,8 @@
<programlisting role="php">
<![CDATA[
<?php
$coll = collator_create( 'en_CA' );
$val = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if ($val === false) {
// エラー処理
} elseif ($val === Collator::ON) {
// 何かすてきなこと
}
$coll = collator_create('en_CA');
collator_set_attribute($coll, Collator::NORMALIZATION_MODE, Collator::ON);
?>
]]>
</programlisting>
Expand Down
104 changes: 104 additions & 0 deletions reference/intl/locale/isrighttoleft.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: ac2b471bbca22b1b77140cf7c67c979d18a0caec Maintainer: KentarouTakeda Status: ready -->
<refentry xml:id="locale.isrighttoleft"
xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink">

<refnamediv>
<refname>Locale::isRightToLeft</refname>
<refpurpose>ロケールが右から左に書く文字体系を使うかどうかを調べる</refpurpose>
</refnamediv>

<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="Locale">
<modifier>public</modifier>
<modifier>static</modifier>
<type>bool</type>
<methodname>Locale::isRightToLeft</methodname>
<methodparam choice="opt">
<type>string</type><parameter>locale</parameter>
<initializer>""</initializer>
</methodparam>
</methodsynopsis>

<simpara>
ロケールが右から左に書く文字体系を使うかどうかを調べます。
</simpara>

<simpara>
このメソッドは ICU ライブラリに依存しており、
ロケールに関連付けられた主要な文字体系を評価します。
</simpara>

<simpara>
空文字列が指定された場合、デフォルトのロケールが使用されます。
</simpara>
</refsect1>

<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>locale</parameter></term>
<listitem>
<simpara>
ロケール識別子。空の場合はデフォルトのロケールが使用されます。
</simpara>
</listitem>
</varlistentry>
</variablelist>
</refsect1>

<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
ロケールが右から左に書く文字体系を使う場合に &true;、
そうでない場合に &false; を返します。
</simpara>
</refsect1>

<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.5.0</entry>
<entry>
<methodname>Locale::isRightToLeft</methodname> が追加されました。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>

<refsect1 role="examples">
&reftitle.examples;
<example>
<title>ロケールのテキスト方向を調べる</title>
<programlisting>
<![CDATA[
var_dump(Locale::isRightToLeft('en-US'));
var_dump(Locale::isRightToLeft('ar'));
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
bool(false)
bool(true)
]]>
</screen>
</example>
</refsect1>

</refentry>
6 changes: 5 additions & 1 deletion reference/network/functions/request-parse-body.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 4bf789e981af0836c41daa16e57ef86c21497faa Maintainer: ippey Status: ready -->
<!-- EN-Revision: c78af136d0497e16230218083ce43448f1864272 Maintainer: ippey Status: ready -->
<!-- Credits: ippey -->
<refentry xml:id="function.request-parse-body" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
Expand Down Expand Up @@ -39,8 +39,12 @@
</simpara>
<caution>
<simpara>
リクエストボディは一度しか処理できません。
<function>request_parse_body</function> は、リクエストボディを
<literal>php://input</literal> ストリームにバッファせずに処理します。
逆に、リクエストボディが既に読み取られている場合
(例: <literal>php://input</literal> を使用した場合)、
<function>request_parse_body</function> は空のデータを返します。
</simpara>
</caution>
</refsect1>
Expand Down
Loading
Loading