140922-cakephp

 先日、PHPのフレームワーク「CakePHP」(Ver.2.5.4)の一部のファイルを読んでみました。その時にメモを取ったのですが、せっかくなので下記に明記しておきます。興味のない人はスルーしてください。

 読んだCakePHPのファイルは「/app/webroot/index.php」の先頭からその下位ファイルを含めて読み進め、同ファイル(/app/webroot/index.php)の「App::uses(‘Dispatcher’, ‘Routing’);」手前までです。実際には「読んだ」というよりも「眺めた」の方が正しいかもしれません。

 また、上記の通り、読んだところも途中までなので、中途半端といえば中途半端です。途中に書かれた日本語による説明文は機械翻訳と私の適当な英訳です。よくわからないところは「?」とも書かれています。なので、本当に私のメモ的なものと思ってもらった方がいいと思います。

/app/webroot/index.php

このファイルは「あらゆる要請を取り扱うためのFront Controller」
90行目または94行目で下記ファイルへ移動

/lib/Cake/bootstrap.php

このファイルは「CakePHPの基本機能」
各種定数を設定
138行目で下記ファイルへ移動

/lib/Cake/basics.php

このファイルは「CakePHPの基本機能」
時間の定数を設定
下記関数を設定

function config()
アプリケーション内の config フォルダから include_once 経由でファイルをロードするために使用することが出来ます
function debug()
アプリケーションの DEBUG レベルがゼロ以外の場合に $var が出力されます
function sortByKey()
与えられた $array を $sortby キーによってソートします
function h()
htmlspecialchars() の便利なラッパー
function pluginSplit()
ドット記法されたプラグイン名をプラグインとクラス名に分離します
function pr()
出力を <pre> タグでラップする機能を追加した print_r() の便利なラッパー
function am()
パラメータとして渡されてすべての配列をマージして、その結果の配列を返します
function env()
可能な限りの環境変数を取得します。
function cache()
一時的なデータは、ファイルまたはセッションをキャッシュします
function clearCache()
指定したファイルのキャッシュをクリアーする
function stripslashes_deep()
与えられた $value から、再帰的にスラッシュを取り除きます
function __()
この関数は CakePHP のアプリケーションでのローカライズを担います
function __n()
$count の数を数え、 $singular と $plural に基いて複数形を正しく処理したメッセージを返します
function __d()
メッセージを一つ取得するために、現在のドメインを変更することが可能です
function __dn()
複数形のメッセージを一つ取得するために、現在のドメインを変更することが可能です
function __dc()
メッセージを一つ取得するために、現在のドメインを変更することが可能です
function __dcn()
複数形のメッセージを一つ取得するために、現在のドメインを変更することが可能です
function __c()
カテゴリは定義済みの名前をそのまま使うのではなく、数値で指定されなければなりません
function LogError()
Log::write() へのショートカット
function fileExistsInPath()
渡されたファイルが、現在の PHP include_path の中にあるかどうかをチェックします
function convertSlash()
文字列のスラッシュをアンダースコアに変換し、最初と最後のアンダースコアを削除します

下記ファイルへ戻る

/lib/Cake/bootstrap.php

139行目で下記ファイルへ移動

/lib/Cake/Core/App.php

Appクラスはパス管理、クラスの場所、クラスのロードを担当
クラス App のメソッド

function path()
指定された情報のファイルを読み取ります。App::path(‘Model’);
function paths()
現在ロードされているすべてのパスを取得します
function build()
ファイルシステム上の各パッケージの場所を設定します
function pluginPath()
プラグインがオンになっているパスを取得します
function themePath()
テーマはオンになっているパスを検索します
function core()
CakePHPのコア内部のパッケージへの完全パスを返します
function objects()
指定された型のオブジェクトの配列を返します
function uses()
クラスのパッケージを宣言します
function load()
メソッドは自動クラスのロードを処理します
function location()
クラスがセットするように定義されたパッケージ名を返します
function import()
引数の「$name」または特定のファイル(複数可)に基づいてクラスを検索します
function init()
Appのキャッシュをシャットダウン時に初期化します
function shutdown()
オブジェクトのデストラクタ

下記ファイルへ戻る

/lib/Cake/bootstrap.php

140行目で下記ファイルへ移動

/lib/Cake/Error/exceptions.php

このファイルは「例外ファイル」
クラス CakeBaseException(すべての例外を拡張基底クラス)のメソッド

function responseHeader()
Get/Setのレスポンスヘッダを使う

下記クラスを設定

BadRequestException
HTTP 400エラーを出す
UnauthorizedException
HTTP 401エラーを出す
ForbiddenException
HTTP 403エラーを出す
NotFoundException
HTTP 404エラーを出す
MethodNotAllowedException
HTTP 405エラーを出す
InternalErrorException
HTTP 500エラーを出す
CakeException
CakePHPの内部の例外の基本クラスを使用されている

getAttributes()
属性に渡す
MissingControllerException
コントローラが見つからないときに使用
MissingActionException
コントローラーアクションが見つからないときに使用
PrivateActionException
コントローラのアクションは`_`で始まるときに使用
MissingComponentException
コンポーネントが見つからない場合に使用
MissingBehaviorException
behaviorが見つからない場合に使用
MissingViewException
ビューファイルが見つからない場合に使用
MissingLayoutException
レイアウトファイルが見つからない場合に使用
MissingHelperException
ヘルパーが見つからない場合に使用
MissingDatabaseException
データベースに接続できない場合に使用
MissingConnectionException
データベースで何の接続が見つからない場合に使用
MissingTaskException
タスクが見つからない場合に使用
MissingShellMethodException
シェルの方法が見つからない場合に使用
MissingShellException
シェルが見つからない場合に使用
MissingDatasourceConfigException :Exceptionクラスは、データソース設定が見つからない場合に使用
MissingDatasourceException
データソースが見つからない場合に使用
MissingTableException
データベーステーブルがデータソース内に見つからない場合に使用
MissingModelException
モデルが見つからなかったときに使用
MissingTestLoaderException
テストローダーが見つかりませんでしたときに使用
MissingPluginException
プラグインが見つかりませんでしたときに使用
MissingDispatcherFilterException
ディスパッチャフィルタが見つかりませんでしたときに使用
AclException
AclComponentとインターフェイスの実装のための例外クラス
CacheException
キャッシュの例外クラス
RouterException
ルータの例外クラス
CakeLogException
CakeLogの例外クラス
CakeSessionException
CakeSessionの例外クラス
ConfigureException
Configの例外クラス
SocketException
Socketの例外クラス
XmlException
XMLのための例外クラス
ConsoleException
コンソールライブラリの例外クラス
FatalErrorException
致命的なエラーを表示
NotImplementedException
APIメソッドが実装されていない場合に使用

下記ファイルへ戻る

/lib/Cake/bootstrap.php

141行目で下記ファイルへ移動

/lib/Cake/Error/ErrorHandler.php

このファイルは「フレームワークエラーのエラーのキャプチャを提供」
クラス ErrorHandlerのメソッド

function handleException()
CakePHPのブートストラッププロセスによるデフォルトの例外ハンドラとして設定
function handleError()
CakePHPでデフォルトエラーハンドラを設定
function handleFatalError()
いくつかの致命的なエラーが発生したときにエラーページを生成
function mapErrorCode()
エラーワードにエラーコードをマップし、ログを取る

下記ファイルへ戻る

/lib/Cake/bootstrap.php

145行目で下記ファイルへ移動

/lib/Cake/Core/Configure.php

このファイルは「Configurationクラス。実行時設定情報を管理するために使用」
クラス Configureのメソッド

function bootstrap()
構成を初期化し、ブートストラッププロセスを実行
function _appDefaults()
既定値の設定
function write()
動的変数をConfigに設定
function read()
設定した値を取得
function check()
設定した値がセットされているかチェック
function delete()
設定した値を削除
function config()
Configに新しい値を追加(?)
function configured()
Configにセットしたリーダーオブジェクトの名前を取得
function drop()
Configから除外する
function load()
(?)
function dump()
Configにキーでカレントデータをセット(?)
function version()
CakePHPの現在のバージョンを確認する
function store()
キャッシュに実行時設定を記述するために使用
function restore()
Configのキャッシュに保存されたデータを復元
function clear()
Configに保存された値をクリア

下記ファイルへ戻る

/lib/Cake/bootstrap.php

146行目で下記ファイルへ移動

/lib/Cake/Core/CakePlugin.php

このファイルは「CakePluginはロードとアンロードのプラグインを担当」
クラス CakePluginのメソッド

function load()
プラグインをロードし、必要に応じて、ブートストラップ、ルーティングファイルをロードするか、初期化関数をロードする
function loadAll()
構成されたプラグインフォルダにあるすべてのプラグインをロード
function path()
プラグインのファイルシステムのパスを返す
function bootstrap()
プラグインのブートストラップファイルをロードするか、設定で初期設定を呼び出す
function routes()
プラグインはroutesファイルを読み込む、または全てのプラグインはroutesファイルを読み込む
function loaded()
指定された引数のプラグインが読み込まれているかチェック
function unload()
指定された引数のプラグインを読み込むのをやめる

下記ファイルへ戻る

/lib/Cake/bootstrap.php

147行目で下記ファイルへ移動

/lib/Cake/Cache/Cache.php

このファイルは「アプリケーション内のキャッシュへインターフェースを提供」
クラス Cacheのメソッド

function config
キャッシュ構成が使用することを設定
function configured
現在設定されているキャッシュ設定を含む配列を返す
function drop
キャッシュを削除
function set
一時的にキャッシュ設定の設定を変更
function gc
すべての期限切れや削除されたデータを削除(ガーベジコレクション)
function write
キャッシュにキーのデータを書き込む
function read
キャッシュの設定からキーを読み取る
function increment
キー番号をインクリメントし、インクリメントされた値を返す
function decrement
キー番号を増減し、減算結果を返す
function delete
キャッシュからキーを削除
function clear
キャッシュからすべてのキーを削除
function clearGroup
同じグループに属するキャッシュからすべてのキーを削除
function isInitialized
キャッシュが指定された名前の作業設定を初期化していないか確認
function settings
名前付きキャッシュの設定を返す
function groupConfigs
設定へのマッピンググループ名を取得
function remember
簡単にリードスルーキャッシュを行う能力を提供

下記ファイルへ戻る

/lib/Cake/bootstrap.php

148行目で下記ファイルへ移動

/lib/Cake/Core/Object.php

このファイルは「いくつかのサブクラスで使用され、いくつかの一般的なメソッドを提供」
クラス Objectのメソッド

toString
オブジェクトから文字列への変換
requestAction
任意の場所からコントローラのメソッドを呼び出す
dispatchMethod
指定されたパラメータでこのオブジェクトのメソッドを呼び出す
log
簡易メソッドCakeLogにメッセージを書き込む

下記ファイルへ戻る

/lib/Cake/bootstrap.php

149行目で下記ファイルへ移動

/lib/Cake/I18n/Multibyte.php

このファイルは「マルチバイト処理」
クラス Multibyteのメソッド

utf8
マルチバイト文字列に変換
ascii
マルチバイト文字列に変換
stripos
大文字と小文字を区別せずに最初に現れる位置を探す
stristr
大文字と小文字を区別してに最初に現れる位置を探す
strlen
文字列の長さを取得
strpos
文字列で最初に現れる位置を探す
strrchr
文字列内で最後にある文字列を探す
strrichr
文字列中に文字が最後に現れる場所を取得
strripos
文字列中で、特定の(大文字小文字を区別しない)文字列が最後に現れた位置を探す
strrpos
文字列内の文字列が最後に現れる位置を探す
strstr
文字列が最初に現れる位置を探す
strtolower
文字列を小文字にする
strtoupper
文字列を大文字にする
substrCount
文字列の出現回数を数える
substr
文字列の一部を取得
mimeEncode
エンコーディングを使用して、メール転送のための文字列を準備
checkMultibyte
マルチバイト文字か確認

下記ファイルへ戻る

/lib/Cake/bootstrap.php

150行目から開始
Configureに各URLの設定値をセット(151行目)
エンコードをセット(177行目)
下記関数がない場合、オリジナル関数をセット

  • mb_stripos(189行目)
  • mb_stristr(205行目)
  • mb_strlen(225行目)
  • mb_strpos(241行目)
  • mb_strrchr(259行目)
  • mb_strrichr(279行目)
  • mb_strripos(299行目)
  • mb_strrpos(317行目)
  • mb_strstr(336行目)
  • mb_strtolower(356行目)
  • mb_strtoupper(371行目)
  • mb_substr_count(386行目)
  • mb_substr(402行目)
  • mb_encode_mimeheader(419行目)

下記ファイルへ戻る

/app/webroot/index.php

おしまい!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。