Class: Teeple_ActiveRecord

Source Location: /ActiveRecord.php

Class Overview [line 67]


ActiveRecordクラスです。

Author(s):

Version:

Copyright:

Variables

Constants

Methods


Inherited Variables

Inherited Constants

Inherited Methods



Class Details

ActiveRecordクラスです。

TODO oneToMany -- いったんなしにしとく。 TODO oracle等のsequence対応。

 [Entityクラスの作成]
 このクラスを継承して各テーブルのレコードを表すクラスを作成します。
 ファイルの配置場所は、ENTITY_DIR で定義されたディレクトリです。
 ファイル名は、`table名`.class.php, クラス名は Entity_`table名` とします。

 各テーブルの以下のプロパティを定義する必要があります。
   // 使用するデータソース名(Teepleフレームワークを使用しない場合は不要。)
  public static $_DATASOURCE = "";
   // テーブル名称
   public static $_TABLENAME = "";
   // プライマリキーのカラム名(配列)
   public static $_PK = array();
   // プライマリキー以外のカラム名(配列)
   public static $_COLUMNS = array();
   // PKが単一で、AUTOINCREMENT等の場合にTRUEをセット
   // ※シーケンスには対応できていません。
   public static $_AUTO = TRUE;
   // joinするテーブルの定義
   public static $_JOINCONFIG = array();

[ Top ]


Class Variables

static $_AUTO =  TRUE

[line 112]

プライマリキーが自動セット(auto increment)かどうかを設定します。

 子クラスにて必ずセットする必要があります。

Tags:

  • access - public

Type: bool

Overrides:

[ Top ]

static $_DATASOURCE =  ""

[line 75]

使用するデータソース名を指定します。 指定が無い場合は、DEFAULT_DATASOURCE で設定されているDataSource名が使用されます。

Tags:

  • access - public

Type: string

Overrides:

[ Top ]

static $_JOINCONFIG = array()

[line 146]

JOINするテーブルを設定します。

ここに設定してある定義は、$this->join('aliasname') を呼ぶことで初めて結合対象となる。
※ここに設定しただけではJOINされない。

 指定方法: 'アクセスするための別名' => 設定値の配列
 設定値の配列:
   'entity' => エンティティのクラス名
  'columns' => 取得するカラム文字列(SQLにセットするのと同じ形式)
   'type' => JOINのタイプ(SQLに書く形式と同じ)(省略した場合はINNER JOIN)
   'relation' => JOINするためのリレーション設定
      「本クラスのキー名 => 対象クラスのキー名」となります。

 値の例:

 public static $_JOINCONFIG = array(
     'fuga' => array(
         'entity' => 'Entity_Fuga',
         'columns' => 'foo, bar, hoge',
         'type' => 'LEFT JOIN',
         'relation' => array(
             'foo_id' => 'bar_id'
         )
     )
 );

Tags:

  • access - public

Type: array

Overrides:

[ Top ]

static $_PK = array('id')

[line 100]

プライマリキー列を設定します。

 プライマリキーとなるカラム名を配列で指定します。
 子クラスにて必ずセットする必要があります。

Tags:

  • access - public

Type: array

Overrides:

[ Top ]

static $_TABLENAME =  ""

[line 87]

このエンティティのテーブル名を設定します。

 スキーマを設定する場合は、"スキーマ.テーブル名"とします。
 子クラスにて必ずセットする必要があります。

Tags:

  • access - public

Type: string

Overrides:

[ Top ]

$_afterwhere = array()

[line 162]

Tags:

  • access - protected

Type: mixed

Overrides:

[ Top ]

$_bindvalue = array()

[line 160]

Tags:

  • access - protected

Type: mixed

Overrides:

[ Top ]

$_children = array()

[line 161]

Tags:

  • access - protected

Type: mixed

Overrides:

[ Top ]

$_constraints = array()

[line 158]

Tags:

  • access - protected

Type: mixed

Overrides:

[ Top ]

$_criteria = array()

[line 159]

Tags:

  • access - protected

Type: mixed

Overrides:

[ Top ]

$_join = array()

[line 156]

Tags:

  • access - protected

Type: mixed

Overrides:

[ Top ]

$_log =  null

[line 154]

Loggerを格納します。

Tags:

  • access - protected

Type: object

Overrides:

[ Top ]

$_pdo =  null

[line 157]

Tags:

  • access - protected

Type: mixed

Overrides:

[ Top ]


Class Methods

__construct

Teeple_ActiveRecord __construct( object $pdo)

[line 174]

コンストラクタです。

 テーブル名が定義されていないときはクラス名称からEntity_を取り除いたものを
 テーブル名として使用します。

Tags:

  • access - public

Parameters:

  • object $pdo - PDOインスタンスを指定します。

[ Top ]

contains

Teeple_ActiveRecord contains( string $property, mixed $value)

[line 619]

property like ? の条件を追加します。

 値の最初と最後に%をつけます。
 $valueの値がセットされているときのみ追加します。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • mixed $value - 値

[ Top ]

convert2Entity

void convert2Entity( Object $obj, [array $colmap = null])

[line 1138]

ActionクラスのプロパティからEntityのプロパティを生成します。

Tags:

  • access - public

Parameters:

  • Object $obj - Actionクラスのインスタンス
  • array $colmap - 'entityのカラム名' => 'Actionのプロパティ名' の配列

[ Top ]

convert2Page

void convert2Page( Object $obj, [array $colmap = null])

[line 1160]

EntityのプロパティからActionクラスのプロパティを生成します。

Tags:

  • access - public

Parameters:

  • Object $obj - Actionクラスのインスタンス
  • array $colmap - 'entityのカラム名' => 'Actionのプロパティ名' の配列

[ Top ]

count

int count( )

[line 785]

条件に該当するレコード数を取得します。

Tags:

  • return - 該当件数
  • access - public

Parameters:

[ Top ]

delete

bool delete( [mixed $id = null])

[line 976]

指定されたレコードを削除します。

 constraintまたは $idパラメータで指定されたPKに該当するレコードを削除します。
 $id がハッシュでないときは、id列の値とみなしてDELETEします。
 $id がハッシュのときは、key値をPKのカラム名とみなしてDELETEします。

Tags:

  • return - 実行結果
  • access - public

Parameters:

  • mixed $id - PKの値

[ Top ]

deleteAll

int deleteAll( )

[line 1037]

条件に該当するレコードを全て削除します。

 セットされているconstraints及びcriteriaに
 該当するレコードを全て削除します。

Tags:

  • return - 削除件数
  • access - public

Parameters:

[ Top ]

ends

Teeple_ActiveRecord ends( string $property, mixed $value)

[line 597]

property like ? の条件を追加します。

 値の最初に%をつけます。
 $valueの値がセットされているときのみ追加します。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • mixed $value - 値

[ Top ]

eq

Teeple_ActiveRecord eq( string $property, mixed $value, [boolean $notnullonly = true])

[line 365]

property = ? の条件を追加します。

 $notnullonly が trueのときは $valueに値がセットされている場合のみ追加されます。
 falseのときは、 property IS NULL が追加されます。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • mixed $value - 値
  • boolean $notnullonly - NULLチェックフラグ

[ Top ]

find

Teeple_ActiveRecord find( [mixed $id = null])

[line 731]

単一行の検索を実行します。

Tags:

  • access - public

Parameters:

  • mixed $id - 配列で無い場合は、単一PKの値として扱います。配列の場合は、カラム名 => 値 のHashとして扱います。

[ Top ]

findQuery

stdClass findQuery( string $query, $bindValues, array $bindvalues)

[line 1108]

指定されたSELECT文を実行します。(単一行) 結果はstdClassになります。 結果が0行の場合はNULLが返ります。

Tags:

  • access - public

Parameters:

  • string $query -
  • array $bindvalues -
  • $bindValues -

[ Top ]

ge

Teeple_ActiveRecord ge( string $property, mixed $value)

[line 476]

property >= ? の条件を追加します。

 $valueの値がセットされているときのみ追加します。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • mixed $value - 値

[ Top ]

getConstraint

mixed getConstraint( string $name)

[line 235]

制約を取得します。 TODO

Tags:

  • return - カラム値
  • access - public

Parameters:

  • string $name - カラム名称

[ Top ]

getPDO

PDO getPDO( )

[line 200]

PDOオブジェクトを取得します。

Tags:

  • return - PDOオブジェクト
  • access - public

Parameters:

[ Top ]

gt

Teeple_ActiveRecord gt( string $property, mixed $value)

[line 434]

property > ? の条件を追加します。

 $valueの値がセットされているときのみ追加します。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • mixed $value - 値

[ Top ]

in

Teeple_ActiveRecord in( string $property, array $value)

[line 497]

property in (?,?...) の条件を追加します。

 $valueの値がセットされているときのみ追加します。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • array $value - 値

[ Top ]

insert

bool insert( )

[line 826]

レコードを登録します。

 constraintとrowに設定されている値で、レコードを1つ作成します。
 PKが単一カラムで、$_auto がTRUEに設定されている場合で、INSERT値にPKが設定されていなかった場合は、
 INSERT後、インスタンスにPK値をセットします。

Tags:

  • return - 登録できたかどうか。
  • access - public

Parameters:

[ Top ]

isSetPk

PKがセットされている場合はTRUE isSetPk( )

[line 1491]

PKがセットされているかどうかをチェックします。

Tags:

  • access - protected

Parameters:

[ Top ]

join

Teeple_ActiveRecord join( mixed $aliasname, string $condition, string $params)

[line 260]

JOINするテーブルを設定します。

 $aliasnameで指定された _JOINCONFIGの設定で結合します。
 JOINする条件を追加する場合は第2引数以降に where()と同じ方法で指定します。

 結合をネストする場合は、
 $this->join('hoge')->join('hoge$fuga')
 のように、エイリアス名を $ で繋げて指定します。
 'hoge'のEntityに定義されている _JOINCONFIG の 'fuga'が適用されます。

Tags:

  • access - public

Parameters:

  • mixed $aliasname - エイリアス名
  • string $condition - 追加する条件
  • string $params - 可変長引数($condition)

[ Top ]

le

Teeple_ActiveRecord le( string $property, mixed $value)

[line 455]

property <= ? の条件を追加します。

 $valueの値がセットされているときのみ追加します。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • mixed $value - 値

[ Top ]

like

Teeple_ActiveRecord like( string $property, mixed $value)

[line 553]

property like ? の条件を追加します。

 $valueの値がセットされているときのみ追加します。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • mixed $value - 値

[ Top ]

limit

Teeple_ActiveRecord limit( int $num)

[line 647]

limit を指定します。

Tags:

  • access - public

Parameters:

  • int $num - 最大件数

[ Top ]

lt

Teeple_ActiveRecord lt( string $property, mixed $value)

[line 413]

property < ? の条件を追加します。

 $valueの値がセットされているときのみ追加します。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • mixed $value - 値

[ Top ]

ne

Teeple_ActiveRecord ne( string $property, mixed $value, [boolean $notnullonly = true])

[line 390]

property <> ? の条件を追加します。

 $notnullonly が trueのときは $valueに値がセットされている場合のみ追加されます。
 falseのときは、 property IS NOT NULL が追加されます。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • mixed $value - 値
  • boolean $notnullonly - NULLチェックフラグ

[ Top ]

newInstance

Teeple_ActiveRecord newInstance( )

[line 209]

このクラスの新しいインスタンスを返します。

Tags:

  • access - public

Parameters:

[ Top ]

notin

Teeple_ActiveRecord notin( string $property, array $value)

[line 525]

property not in (?,?...) の条件を追加します。

 $valueの値がセットされているときのみ追加します。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • array $value - 値

[ Top ]

now

string now( )

[line 1180]

現在の時刻を返します。

Tags:

  • access - public

Parameters:

[ Top ]

offset

Teeple_ActiveRecord offset( int $num)

[line 661]

offset を指定します。

Tags:

  • access - public

Parameters:

  • int $num - 開始位置

[ Top ]

order

Teeple_ActiveRecord order( string $clause)

[line 635]

order by を指定します。

Tags:

  • access - public

Parameters:

  • string $clause - order by 句

[ Top ]

resetInstance

void resetInstance( )

[line 1122]

インスタンスのcriteriaをリセットします。

値は保持されます。

Tags:

  • access - public

Parameters:

[ Top ]

select

array select( )

[line 675]

SELECTを実行します。 結果を配列で返します。

Tags:

  • return - ResultSetをこのクラスの配列として返します。
  • access - public

Parameters:

[ Top ]

selectPage

array selectPage( int $limit, int $offset)

[line 714]

paginationに対応したSELECTをします。

Tags:

  • return - [0]=全件数, [1]=limit,offsetに対応した結果セット(entityの配列)
  • access - public

Parameters:

  • int $limit -
  • int $offset -

[ Top ]

selectQuery

array selectQuery( string $query, array $bindvalues)

[line 1072]

指定されたSELECT文を実行します。 結果はstdClassの配列になります。 結果が0行の場合は空の配列が返ります。

Tags:

  • access - public

Parameters:

  • string $query -
  • array $bindvalues -

[ Top ]

setConstraint

void setConstraint( string $name, mixed $value)

[line 223]

制約を設定します。 この機能は必要? -> 必要 楽観的排他制御などに使う

Tags:

  • access - public

Parameters:

  • string $name - カラム名称
  • mixed $value - カラム値

[ Top ]

starts

Teeple_ActiveRecord starts( string $property, mixed $value)

[line 575]

property like ? の条件を追加します。

 値の最後に%をつけます。
 $valueの値がセットされているときのみ追加します。

Tags:

  • access - public

Parameters:

  • string $property - プロパティ名
  • mixed $value - 値

[ Top ]

update

int update( )

[line 873]

レコードの更新を実行します。

 rowにセットされているPKで更新を行ないます。

Tags:

  • return - 変更のあったレコード数
  • access - public

Parameters:

[ Top ]

updateAll

int updateAll( )

[line 932]

条件に該当するレコードを全て更新します。

 セットされているconstraints及びcriteriaに
 該当するレコードを全て更新します。

Tags:

  • return - 更新件数
  • access - public

Parameters:

[ Top ]

where

Teeple_ActiveRecord where( String 0, mixed 1)

[line 323]

Where句を追加します。

Tags:

  • access - public

Parameters:

  • String 0 - Where句です。プレースホルダーに?を使用します。カラム名は、エイリアス名.カラム名で指定します。(主テーブルのエイリアスは 'base'を指定します。)
  • mixed 1 - プレースホルダーにセットする値です。複数ある場合は1つの配列を渡してもよいし、複数の引数として渡してもよいです。

[ Top ]

_buildAfterWhereClause

unknown _buildAfterWhereClause( )

[line 1351]

WHERE以降の clause を作成します。

Tags:

  • access - protected

Parameters:

[ Top ]

_buildConstraintClause

unknown _buildConstraintClause( [ $usebase = true])

[line 1325]

WHERE clause を構築します。

Tags:

  • access - protected

Parameters:

  • $usebase -

[ Top ]

_buildFromClause

unknown _buildFromClause( )

[line 1232]

FROM clause を構築します。

Tags:

  • access - protected

Parameters:

[ Top ]

_buildResultSet

void _buildResultSet( unknown_type $row)

[line 1393]

単一レコードの値をセットします。

Tags:

  • access - protected

Parameters:

  • unknown_type $row -

[ Top ]

_buildSelectClause

String _buildSelectClause( )

[line 1204]

SELECT clause を構築します。

Tags:

  • return - SELECT clause
  • access - protected

Parameters:

[ Top ]

_buildSelectSql

String _buildSelectSql( )

[line 1189]

SELECT文を構築します。

Tags:

  • return - SELECT文
  • access - protected

Parameters:

[ Top ]

_buildSetClause

string _buildSetClause( array $array)

[line 1380]

UPDATE文のVALUES部分を作成します。

Tags:

  • return - SQL句の文字列
  • access - protected

Parameters:

  • array $array - アップデートする値の配列

[ Top ]

_buildWhereClause

unknown _buildWhereClause( [ $usebase = true])

[line 1281]

WHERE clause を構築します。

Tags:

  • access - protected

Parameters:

  • $usebase -

[ Top ]

_checkPlaceHolder

void _checkPlaceHolder( $condition, $params)

[line 1422]

Tags:

  • access - protected

Parameters:

  • $condition -
  • $params -

[ Top ]

_convertObject2Array

array _convertObject2Array( Teeple_ActiveRecord $obj, [boolean $excludeNull = false])

[line 1512]

Entityのカラム値をArrayとして取り出す

Tags:

  • access - protected

Parameters:

[ Top ]

_getColumns

array _getColumns( string $clsname)

[line 1534]

Entityクラスのカラム名一覧を取得する

Tags:

  • access - protected

Parameters:

  • string $clsname -

[ Top ]

_getEntityConfig

void _getEntityConfig( $clsname, $property)

[line 1431]

Tags:

  • access - protected

Parameters:

  • $clsname -
  • $property -

[ Top ]

_makeBindingParams

array _makeBindingParams( array $array)

[line 1460]

バインドするパラメータの配列を作成します。

Tags:

  • return - バインドパラメータを名前にした配列
  • access - protected

Parameters:

  • array $array - バインドする値の配列

[ Top ]

_makeIDList

string _makeIDList( array $array)

[line 1476]

IN句に設定するIDのリストを作成します。

Tags:

  • return - IN句に設定する文字列
  • access - protected

Parameters:

  • array $array - IDの配列

[ Top ]

_makeUpdateConstraints

string _makeUpdateConstraints( array $array)

[line 1443]

設定された制約でWHERE句を作成します。

Tags:

  • return - SQL句の文字列
  • access - protected

Parameters:

  • array $array - 制約値

[ Top ]

_null

void _null( $str)

[line 1557]

Tags:

  • access - protected

Parameters:

  • $str -

[ Top ]


Class Constants


Documentation generated on Mon, 26 Apr 2010 08:59:33 +0900 by phpDocumentor 1.4.3