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. |