Sabel サポートIRC

Sabel PHPフレームワーク http://sabel.php-framework.org/ のサポートIRCを作成しました。

チャンネル名を #Sabel:*.jp として接続して下さい。

IRCについて詳しくは、http://irc.nahi.to/ IRC普及委員会様を参照して下さい。

現状SabelではMLやフォーラムといったコミュニケーションの場が、まだ用意できていません(現在準備しています)
ですので、このIRCで質問やフィードバックを頂ければありがたいです。

Sabelに少しでも興味を持ってくれた人がいれば全力でサポートします。

楽天Q&AにSabelについての質問が来ていたので回答した内容を下記に転載。

<?php

class TransactionConfig extends Sabel_Container_Injection
{
  public function configure()
  {
    $this->aspect("User")->advice("TransactionAdvice");
  }
}

class TransactionAdvice
{
  /**
   * @around movePoint
   */
  public function processTransaction($invocation)
  {
    Sabel_DB_Transaction::activate(); # トランザクション有効化

    try {
      $result = $invocation->proceed();

      Sabel_DB_Transaction::commit(); # 正常終了

      return $result;
    } catch (Exception $e) {
      Sabel_DB_Transaction::rollback(); # 例外が発生したらロールバック
      throw $e;
    }
  }
}

class User extends Sabel_DB_Model
{
  public function movePoint()
  {
    $fromUser = MODEL("User", 1);

    if ($fromUser->point < $point) {
      throw new ...
    } else {
      $toUser = MODEL("User", 2);
      if ($toUser->isValid()) {
        ...
      } else {
        throw new ...
      }
    }
  }
}

?>

として各クラスを、クラスパス上に配置します。

下記利用時のサンプルです。

$user = load("User", new TransactionConfig());
$user->movePoint();

とすれば、TransactionAdviceによるアスペクト処理が実行されます。

これは、@around movePoint としてアドバイスクラスにmovePointメソッドが指定されているので、movePoint()実行時の周辺(around)、つまりメソッドの実行前と実行後にアスペクトが介入します。

Sabel 過去ドキュメント

最新のドキュメントが出揃っていないので、過去ドキュメントを

http://old.sabel.php-framework.org/

に配置しました。

知りたいことが乗っていなかったら、是非連絡を下さい。
すぐに答えます。

あわせて、ebine.orgさんが運営している http://ebine.org/sabel/doc/index.html にも非公式とは言っていますが、ドキュメントがありますので参照して下さい。

単一IPで複数サイトのVirtualDomain

Apache 2.2.12からSNI(Server Name Indication)という機能が追加されていて、これを設定することで単一IPで複数のSSL証明書を扱えるようだ。

問題はブラウザも、このSNIに対応していなければならず、WindowsXPIEではサポートされていないらしい(未検証)。

以前からレンタルサーバでの需要が多いが、コストが問題で対応していなかったので、SNI対応は順次行っていく。

no title 2

どうやら自分は自分以外の人の事を気にし過ぎて、結局何もできていない。ということになりがち。

そんなことやってみなきゃわからないよね。

というわけで、色々とやってみよう。

迷惑かけたらごめんなさい。


しかし、過去のスパムトラックバックが消せないなぁ。どうやって消すんだろう。