<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/userlandnaming.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'userlandnaming.rules.php',
    1 => 'ルール',
    2 => 'ルール',
  ),
  'up' => 
  array (
    0 => 'userlandnaming.php',
    1 => 'ユーザーレベルでの命名の手引き',
  ),
  'prev' => 
  array (
    0 => 'userlandnaming.globalnamespace.php',
    1 => 'グローバル名前空間',
  ),
  'next' => 
  array (
    0 => 'userlandnaming.tips.php',
    1 => 'Tips',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'appendices/userlandnaming.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="userlandnaming.rules" class="section">
  <h2 class="title">ルール</h2>
  <p class="para">
   以下のリストは、PHP プロジェクトで新たな内部識別子を作成する際に
   どのような基準で名前を決めているのかを
   おおまかにまとめたものです。完全な規約は、公式の
   <a href="https://github.com/php/php-src/raw/master/CODING_STANDARDS.md" class="link external">&raquo;&nbsp;コーディング規約</a>
   を参照ください。
  </p>

  <ul class="itemizedlist">
   <li class="listitem">
    <p class="para">
     PHP はトップレベルの名前空間を所有していますが、
     きちんとしたわかりやすい名前をつけるようにこころがけ、
     衝突が起こらないようにしています。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     関数名では、単語の間にアンダースコアを使用します。クラスの場合は、
     キャメルケース (<code class="literal">camelCase</code>) 形式や
     パスカルケース (<code class="literal">PascalCase</code>) 形式を使います。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     PHP の拡張モジュールのグローバルシンボルには、
     その拡張モジュールの名前を先頭につけます
     (過去には、この原則を守っていない例が大量にありました)。
     たとえば次のようになります。
    </p>

    <ul class="itemizedlist">
     <li class="listitem"><p class="para"><span class="function"><a href="function.curl-close.php" class="function">curl_close()</a></span></p></li>
     <li class="listitem"><p class="para"><span class="function"><a href="function.mysql-query.php" class="function">mysql_query()</a></span></p></li>
     <li class="listitem"><p class="para">PREG_SPLIT_DELIM_CAPTURE</p></li>
     <li class="listitem"><p class="para">new DOMDocument()</p></li>
     <li class="listitem">
      <p class="para">
       <span class="function"><a href="function.strpos.php" class="function">strpos()</a></span> (過去に間違えた例)
      </p>
     </li>
     <li class="listitem"><p class="para">new SplFileObject()</p></li>
    </ul>
   </li>
   <li class="listitem">
    <p class="para">
     しかし、イテレータや例外については、単純に最後に
     &quot;<code class="literal">Iterator</code>&quot; および &quot;<code class="literal">Exception</code>&quot;
     を追加するようにします。例えば次のようになります。
    </p>
    <ul class="itemizedlist">
     <li class="listitem"><p class="para"><span class="classname"><a href="class.arrayiterator.php" class="classname">ArrayIterator</a></span></p></li>
     <li class="listitem"><p class="para"><span class="classname"><a href="class.logicexception.php" class="classname">LogicException</a></span></p></li>
    </ul>
   </li>
   <li class="listitem">
    <p class="para">
     PHP では、<code class="literal">__</code> で始まるシンボルを特殊なものとして予約済みです。
     以下にあげるような文書化されている機能を使用する場合を除き、
     <code class="literal">__</code> で始まるシンボルを作成しないことを推奨します。
    </p>
    <ul class="itemizedlist">
     <li class="listitem"><p class="para"><a href="language.oop5.overloading.php#object.get" class="link">__get()</a></p></li>
     <li class="listitem"><p class="para"><span class="function"><a href="function.autoload.php" class="function">__autoload()</a></span></p></li>
    </ul>
   </li>
  </ul>
 </div><?php manual_footer($setup); ?>