Aspectの登録は@S2Aspect アノテーションでも設定することができます。 次の例では、DaoクラスのfindByIdメソッドにTraceInterceptorをAspectしています。
<?php
class Dao {
/**
* S2Aspect('new seasar\aop\interceptor\TraceInterceptor')
*/
public function findById($id) {
return 2009;
}
}
次のような、Actionクラスを作成します。Daoコンポーネントを受け取るsetDaoセッターメソッドを実装します。 ActionクラスのgetByIdメソッドでは、DaoクラスのfindByIdメソッドを用いて処理を実行します。
<?php
/**
* @S2Component('name' => 'act')
*/
class Action{
private $dao = null;
public function setDao(Dao $dao) {
$this->dao = $dao;
}
public function getById() {
return $this->dao->findById(10);
}
}
s2get関数でActionコンポーネントを取得しgetByIdメソッドを実行すると、Daoクラスの findByIdメソッドが実行された際のトレースログが出力されます。
require_once('S2Container.php');
s2import(dirname(__FILE__) . '/classes');
$action = s2get('Action');
$action->getById();
![]() | NOTE |
|---|---|
|
このExampleは examples/quickstart/quickstart040.php にあります。 |
| © Copyright The Seasar Foundation and the others 2005-2010, all rights reserved. |