ご注意ください

このWikiに書かれた情報は、Risoluto1.x系に関するものです。 Risoluto1.x系は開発が終了しており、現在Risoluto2.x系の開発が進められています。

最近の更新

2012-10-11
2012-04-05
2012-03-27

최신 파일 자료

risoluto (1.3.1)2011-09-27 15:41
risoluto-upgrade (1.3.0 to 1.3.1)2011-10-24 15:51
simpleblog (1.4.0)2011-10-19 14:50
simpleblog-upgrade (1.2.0 to 1.3.0)2011-07-21 23:13
simplepage (1.3.0)2011-10-19 14:45
simplepage-upgrade (1.1.0 to 1.2.0)2011-07-21 23:15

Wikiガイド

サイドバー

戻る

Step8:ユーティリティメソッドを使ってみる

このチュートリアルを行う前に……

  • Risolutoのセットアップが終了している必要があります
  • これまでのチュートリアルを理解している必要があります

ユーティリティメソッドを使ってみる(Base編)

このチュートリアルでは、Risolutoが提供している各種ユーティリティメソッドを使う方法についてご説明したいと思います。

こちらもさほど難しい話ではありませんので、実際のコードを見てみましょう。Step7で作成した「samples_base.ini」を下記のように修正してください。この手順を行うことによって、このsamples_baseクラスを継承したすべてのLogicでユーティリティメソッドを使うことができるようになります。

  1. <?php
  2. require_once( 'Smarty.class.php' );
  3. require_once( RISOLUTO_FUNC . 'risoluto_conf.php' );
  4. require_once( RISOLUTO_FUNC . 'risoluto_log.php' );
  5. require_once( RISOLUTO_FUNC . 'risoluto_session.php' );
  6. require_once( RISOLUTO_FUNC . 'risoluto_util.php' );
  7. abstract class samples_base
  8. {
  9. protected $smarty;
  10. protected $obj_conf;
  11. protected $obj_log;
  12. protected $obj_sess;
  13. protected $obj_util;
  14. abstract function model();
  15. abstract function view();
  16. public function __construct()
  17. {
  18. }
  19. public function __clone()
  20. {
  21. }
  22. public function init()
  23. {
  24. $this->obj_conf = new RisolutoConf();
  25. $this->obj_conf->parse( RISOLUTO_CONF . 'risoluto.ini' );
  26. $this->obj_log = RisolutoLog::singleton();
  27. $this->obj_sess = RisolutoSession::singleton();
  28. $this->obj_util = RisolutoUtils::singleton();
  29. $this->smarty = new Smarty;
  30. $this->smarty->template_dir = RISOLUTO_USERLAND . $this->obj_sess->sessLoad( 'currentcage' );
  31. $this->smarty->config_dir = RISOLUTO_USERLAND . $this->obj_sess->sessLoad( 'currentcage' );
  32. $this->smarty->compile_dir = RISOLUTO_CACHE;
  33. $this->smarty->cache_dir = RISOLUTO_CACHE;
  34. $this->smarty->caching = false;
  35. $this->smarty->debugging = false;
  36. $this->smarty->force_compile = true;
  37. $this->smarty->compile_check = true;
  38. }
  39. public function errHandler()
  40. {
  41. }
  42. public function clean()
  43. {
  44. unset( $this->smarty );
  45. unset( $this->obj_conf );
  46. unset( $this->obj_log );
  47. unset( $this->obj_sess );
  48. unset( $this->obj_util );
  49. }
  50. }
  51. ?>

追加したものについて、簡単にご説明したいとおもいます。

まず、「require_once( RISOLUTO_FUNC . 'risoluto_util.php' );」が追加されました。Risolutoが標準で用意しているユーティリティクラスを読み込みます。

「protected $obj_util;」という1行も追加されています。これはユーティリティクラスのインスタンスを保持するためのクラス変数です。名称は任意ですが慣例としてこの名称にしておくことが推奨されています。

「$this->obj_util = RisolutoUtils::singleton();」がinit()メソッドに追加されていることにお気づきでしょうか。ここでクラスインスタンスの生成を行っています。

clean()メソッドに「unset( $this->obj_util );」が追加されているのも確認いただけるかと思います。

これらを各Logicに組み込んでも構いません*1が、一般にBaseに記述する方がよいでしょう。

ユーティリティメソッドを使ってみる(Logic編)

それでは、Logicの方の処理を見てみましょう。下記のコードを「sample08.php」として保存してください。今回は画面表示を伴わないので、Designは作成しません。

  1. <?php
  2. require_once( 'samples_base.inc' );
  3. class sample08 extends samples_base
  4. {
  5. public function model()
  6. {
  7. $this->obj_util->redirectTo( 'sample07', 'samples' );
  8. }
  9. public function view()
  10. {
  11. }
  12. }
  13. ?>

おそらく、ユーティリティクラスの中で一番よく使うであろうメソッドは、この例で使っている「redirectTo()メソッド」です。このメソッドは、同一Risolutoシステム内の他画面にリダイレクトするメソッドです。

使い方は、「$this->obj_util->redirectTo( 'sample07', 'samples' );」のようになります。第1引数*2にAct、第2引数*3にCageを指定します。すると、その画面にリダイレクトするためのヘッダが出力されます*4

これらのファイルをアップロードし、最初の画面にWebブラウザからアクセスすると、Step07の画面にリダイレクトされるのが確認できるかと思います。

このように、ユーティリティクラスには普段よく使うメソッドがいろいろと用意されています。ユーティリティクラスについて詳しく知りたい場合は、RisolutoUtilsクラス(risoluto_util.php)を参照してください。

戻る


  1. *1例えば、model()メソッド内の適切な位置にこれらを記述すればOKです
  2. *2この例で言うと「sample07」がそれですね
  3. *3この例で言うと「samples」がそれですね
  4. *4内部ではheader()をコールしています