Seasar DI Container with AOP

S2Dao.PHP5アノテーション

S2Dao.PHP5では、S2Daoのアノテーション方法において、定数アノテーションとコメントアノテーションのどちらかを記述できます。
定数アノテーションとコメントアノテーションの対応を下記に記載しています。

個々のアノテーションについての詳細は、S2Daoリファレンスを参照してください。

アノテーション一覧

Beansアノテーション一覧

定数アノテーション コメントアノテーション
ID @Id
RELNO @Relation(relationNo = x)
RELKEYS @Relation(relationNo = x, relationKey = "key")
TABLE @Bean(table = "TABLE")
COLUMN @Column
VERSION_NO_PROPERTY @VersionNoProperty (@Beansアノテーションが必須です。)
TIMESTAMP_PROPERTY @TimestampProperty (@Beansアノテーションが必須です。)
NO_PERSISTENT_PROPS @NoPersistentProperty (@Beansアノテーションが必須です。)

Daoアノテーション一覧

定数アノテーション コメントアノテーション
BEAN @Dao
ARGS @Arguments
QUERY @Query
NO_PERSISTENT_PROPS @NoPersistentProperty
PERSISTENT_PROPS @PersistentProperty
SQL @Sql
PROCEDURE @Procedure

Methodアノテーション一覧

定数アノテーション コメントアノテーション
List @return list
Array @return array
Yaml @return yaml
Json @return json
Obj @return object
Map @return map

Beans

IDアノテーション

IDアノテーションは、@Idアノテーションに記述します。

// 定数アノテーション
const id_ID = "sequence, sequenceName=myseq";
// コメントアノテーション
/**
 * @Id(value = sequence, sequenceName = "myseq")
 */
private $id;

RELNO, RELKEYSアノテーション

RELNO, RELKEYSアノテーションは、@Relationアノテーションに記述します。

// 定数アノテーション
const department_RELNO = 0;
const department_RELKEYS = "DEPTNUM:DEPTNO";
// コメントアノテーション
/**
 * @Relation(relationNo = 0, relationKey = "DEPTNUM:DEPTNO")
 */
private $department;

TABLEアノテーション

TABLEアノテーションは、@Beanアノテーションに記述します。

// 定数アノテーション
const TABLE = "DEPT";
// コメントアノテーション
/**
 * @Bean(table=DEPT)
 */
class Department implements Serializable {
    // ...
}

COLUMNアノテーション

COLUMNアノテーションは、@Columnアノテーションに記述します。

// 定数アノテーション
const timestamp_COLUMN = "tstamp";
// コメントアノテーション
/**
 * @Column("tstamp")
 */
private $timestamp;

VERSION_NO_PROPERTYアノテーション

VERSION_NO_PROPERTYアノテーションは、@VersionNoPropertyアノテーションに記述します。
コメントアノテーションを行う場合は@Beanアノテーションが必須となります。

// 定数アノテーション
const VERSION_NO_PROPERTY = "myVersionNo";
// コメントアノテーション
/**
 * @Bean(table=DEPT)
 * @VersionNoProperty = "myVersionNo")
 */
class Foo {
    // ...
}

TIMESTAMP_PROPERTYアノテーション

TIMESTAMP_PROPERTYアノテーションは、@TimestampPropertyアノテーションに記述します。
コメントアノテーションを行う場合は@Beanアノテーションが必須となります。

// 定数アノテーション
const TIMESTAMP_PROPERTY = "myTimestamp";
// コメントアノテーション
/**
 * @Bean(table=DEPT)
 * @TimeStampProperty = "myTimestamp")
 */
class Foo {
    // ...
}

NO_PERSISTENT_PROPSアノテーション

NO_PERSISTENT_PROPSアノテーションは、@NoPersistentPropertyアノテーションに記述します。
コメントアノテーションを行う場合は@Beanアノテーションが必須となります。

// 定数アノテーション
const NO_PERSISTENT_PROPS = "fooProperty";
// コメントアノテーション
/**
 * @Bean(table=DEPT)
 * @NoPersistentProperty(fooProperty)
 */
class Foo {
    // ...
}

Dao(Data Access Object)

BEANアノテーション

BEANアノテーションは、@Daoアノテーションに記述します。

// 定数アノテーション
const BEAN = "Employee";
// コメントアノテーション
/**
 * @Dao(bean=Employee)
 */
interface DepartmentDao {
    // ...
}

ARGSアノテーション

ARGSアノテーションは、@Argumentsアノテーションに記述します。
また、ARGSアノテーションは省略可能です。(省略した場合自動的に設定されます。)

// 定数アノテーション
const getEmployees_ARGS = "ename";
// コメントアノテーション
/**
 * @Arguments("ename")
 */
public function getEmployees($ename) {
    // ...
}

QUERYアノテーション

QUERYアノテーションは、@Queryアノテーションに記述します。

// 定数アノテーション
const getAaa_QUERY = "A > B";
// コメントアノテーション
/**
 * @Query("A > B")
 */
public function getAaa($id);

NO_PERSISTENT_PROPSアノテーション

NO_PERSISTENT_PROPSアノテーションは、@NoPersistentPropertyアノテーションに記述します。

// 定数アノテーション
const insert_NO_PERSISTENT_PROPS = "sal, comm";
// コメントアノテーション
/**
 * @NoPersistentProperty("sal, comm")
 */
public function insert(Employee $employee);

PERSISTENT_PROPSアノテーション

PERSISTENT_PROPSアノテーションは、@PersistentPropertyアノテーションに記述します。

// 定数アノテーション
const insert_PERSISTENT_PROPS = "deptno";
// コメントアノテーション
/**
 * @PersistentProperty("deptno")
 */
public function insert(Employee $employee);

SQLアノテーション

SQLアノテーションは、@Sqlアノテーションに記述します。

// 定数アノテーション
const getCount_SQL = "SELECT COUNT(*) FROM emp";
// コメントアノテーション
/**
 * @Sql("SELECT count(*) FROM emp")
 */
public function getCount();

PROCEDUREアノテーション

PROCEDUREアノテーションは、@Procedureアノテーションに記述します。

// 定数アノテーション
const getSalesTax_PROCEDURE = "SALES_TAX";
// コメントアノテーション
/**
 * @Procedure("SALES_TAX")
 */
public function getSalesTax($subtotal);

Method

Methodアノテーションはメソッドの戻り値をアノテーションによって指定することができます。
Methodアノテーションでの定数アノテーションはメソッド名そのものを示し、コメントアノテーションはメソッドコメントを示します。

Listアノテーション

Listアノテーションはメソッド名の最後をList、もしくは@return listで記述します。

// メソッドアノテーション
public function getFooList($foo);
// コメントアノテーション
/**
 * @return list
 */
public function getFoo($foo);

Arrayアノテーション

Arrayアノテーションはメソッド名の最後をArray、もしくは@return arrayで記述します。

// メソッドアノテーション
public function getFooArray($foo);
// コメントアノテーション
/**
 * @return array
 */
public function getFoo($foo);

Yamlアノテーション

Yamlアノテーションはメソッド名の最後をYaml、もしくは@return yamlで記述します。

// メソッドアノテーション
public function getFooYaml($foo);
// コメントアノテーション
/**
 * @return yaml
 */
public function getFoo($foo);

Jsonアノテーション

Jsonアノテーションはメソッド名の最後をJson、もしくは@return jsonで記述します。

// メソッドアノテーション
public function getFooJson($foo);
// コメントアノテーション
/**
 * @return json
 */
public function getFoo($foo);

Objectアノテーション

Objectアノテーションはメソッド名の最後をObj、もしくは@return objectで記述します。

// メソッドアノテーション
public function getFooObj($foo);
// コメントアノテーション
/**
 * @return object
 */
public function getFoo($foo);

Mapアノテーション

Mapアノテーションはメソッド名の最後をMap、もしくは@return mapで記述します。

// メソッドアノテーション
public function getFooMap($foo);
// コメントアノテーション
/**
 * @return map
 */
public function getFoo($foo);