先日、PHPのフレームワーク「CakePHP」(Ver.2.5.4)の一部のファイルを読んでみました。その時にメモを取ったのですが、せっかくなので下記に明記しておきます。興味のない人はスルーしてください。
読んだCakePHPのファイルは「/app/webroot/index.php」の先頭からその下位ファイルを含めて読み進め、同ファイル(/app/webroot/index.php)の「App::uses(‘Dispatcher’, ‘Routing’);」手前までです。実際には「読んだ」というよりも「眺めた」の方が正しいかもしれません。
また、上記の通り、読んだところも途中までなので、中途半端といえば中途半端です。途中に書かれた日本語による説明文は機械翻訳と私の適当な英訳です。よくわからないところは「?」とも書かれています。なので、本当に私のメモ的なものと思ってもらった方がいいと思います。
このファイルは「あらゆる要請を取り扱うためのFront Controller」
90行目または94行目で下記ファイルへ移動
このファイルは「CakePHPの基本機能」
各種定数を設定
138行目で下記ファイルへ移動
このファイルは「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()
- 文字列のスラッシュをアンダースコアに変換し、最初と最後のアンダースコアを削除します
下記ファイルへ戻る
139行目で下記ファイルへ移動
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()
- オブジェクトのデストラクタ
下記ファイルへ戻る
140行目で下記ファイルへ移動
このファイルは「例外ファイル」
クラス CakeBaseException(すべての例外を拡張基底クラス)のメソッド
下記クラスを設定
- 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メソッドが実装されていない場合に使用
下記ファイルへ戻る
141行目で下記ファイルへ移動
このファイルは「フレームワークエラーのエラーのキャプチャを提供」
クラス ErrorHandlerのメソッド
- function handleException()
- CakePHPのブートストラッププロセスによるデフォルトの例外ハンドラとして設定
- function handleError()
- CakePHPでデフォルトエラーハンドラを設定
- function handleFatalError()
- いくつかの致命的なエラーが発生したときにエラーページを生成
- function mapErrorCode()
- エラーワードにエラーコードをマップし、ログを取る
下記ファイルへ戻る
145行目で下記ファイルへ移動
このファイルは「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に保存された値をクリア
下記ファイルへ戻る
146行目で下記ファイルへ移動
このファイルは「CakePluginはロードとアンロードのプラグインを担当」
クラス CakePluginのメソッド
- function load()
- プラグインをロードし、必要に応じて、ブートストラップ、ルーティングファイルをロードするか、初期化関数をロードする
- function loadAll()
- 構成されたプラグインフォルダにあるすべてのプラグインをロード
- function path()
- プラグインのファイルシステムのパスを返す
- function bootstrap()
- プラグインのブートストラップファイルをロードするか、設定で初期設定を呼び出す
- function routes()
- プラグインはroutesファイルを読み込む、または全てのプラグインはroutesファイルを読み込む
- function loaded()
- 指定された引数のプラグインが読み込まれているかチェック
- function unload()
- 指定された引数のプラグインを読み込むのをやめる
下記ファイルへ戻る
147行目で下記ファイルへ移動
このファイルは「アプリケーション内のキャッシュへインターフェースを提供」
クラス 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
- 簡単にリードスルーキャッシュを行う能力を提供
下記ファイルへ戻る
148行目で下記ファイルへ移動
このファイルは「いくつかのサブクラスで使用され、いくつかの一般的なメソッドを提供」
クラス Objectのメソッド
- toString
- オブジェクトから文字列への変換
- requestAction
- 任意の場所からコントローラのメソッドを呼び出す
- dispatchMethod
- 指定されたパラメータでこのオブジェクトのメソッドを呼び出す
- log
- 簡易メソッドCakeLogにメッセージを書き込む
下記ファイルへ戻る
149行目で下記ファイルへ移動
このファイルは「マルチバイト処理」
クラス Multibyteのメソッド
- utf8
- マルチバイト文字列に変換
- ascii
- マルチバイト文字列に変換
- stripos
- 大文字と小文字を区別せずに最初に現れる位置を探す
- stristr
- 大文字と小文字を区別してに最初に現れる位置を探す
- strlen
- 文字列の長さを取得
- strpos
- 文字列で最初に現れる位置を探す
- strrchr
- 文字列内で最後にある文字列を探す
- strrichr
- 文字列中に文字が最後に現れる場所を取得
- strripos
- 文字列中で、特定の(大文字小文字を区別しない)文字列が最後に現れた位置を探す
- strrpos
- 文字列内の文字列が最後に現れる位置を探す
- strstr
- 文字列が最初に現れる位置を探す
- strtolower
- 文字列を小文字にする
- strtoupper
- 文字列を大文字にする
- substrCount
- 文字列の出現回数を数える
- substr
- 文字列の一部を取得
- mimeEncode
- エンコーディングを使用して、メール転送のための文字列を準備
- checkMultibyte
- マルチバイト文字か確認
下記ファイルへ戻る
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行目)
下記ファイルへ戻る
おしまい!
CakePHPで学ぶ継続的インテグレーション (impress top gear) 本
価格¥4,400
順位508,595位
著渡辺 一宏, 吉羽 龍太郎, 岸田 健一郎, ほか
編集丸山 弘詩
発行インプレス
発売日2014/09/19