Phalcon 2 リリース

  • KJ
  • 2015-04-21 13:46

Phalcon バージョン 2 が 4 月 17 日にリリースされましたので、作成した Pull Request をまとめてみます。

このサイトも Phalcon 2 で稼働しています。

マージ済

Phalcon\Annotations

  • #9928

    Phalcon\Annotations クラスを使用した時、メモリの解放処理が正しくなくて Segmentation fault になっていたのを修正。

Phalcon\Cache\Backend\Libmemcached

  • #9929

    client キーのオプションが設定されていないと Segmentation fault になっていたのを修正。

  • #9976

    flush メソッドでデータを消すはずが間違った削除キーをしていたのを修正。

  • #10000

    delete メソッドの戻り値を修正。

    queryKeys で取得しているキーが間違っていたのを修正。

Phalcon\Cache\Backend\Redis

  • #10001

    delete メソッドの戻り値を修正。

Phalcon\Http\Request

  • #9977

    getClientAddress メソッドで trustForwardedHeader を true 指定した時の取得 IP アドレスの対象に HTTP_CLIENT_IP も追加。

検討中

以下は Pull Request を出して、検討して頂いるものになります。

このサイトは以下の Pull Request も組み込んだ Phalcon 2 で稼働しています。

Phalcon\Mvc\View\Engine\Markdown

  • #10090

    View エンジンに Markdown を追加。

$di->setShared('view', function() {
    $view = new Phalcon\Mvc\View;
    $view->registerEngines([
        '.md' => function($view, $di) {
            $md = new Mvc\View\Engine\Markdown($view, $di);
            // $md->setOptions(..);
            return $md;
         };
    ]);
    return $view;
});

Phalcon\Session

  • #10091

    Phalcon\Session\Adpter クラスのラッパー用途として Phalcon\Session クラスを実装。

$di->setShared('session', function() {
    // Use files
    $session = new Phalcon\Session\Adapter\Files();

    /*
    // Use libmemcached
    $session = new Phalcon\Session\Adapter\Libmemcached([
        'servers' => [
            ['host' => 'localhost', 'port' => 11211, 'weight' => 1],
        ],
        'client' => [],
        'lifetime' => 3600,
    ]);
    */

    $session->start();
    return $session;
});

Phalcon\Logger\Bag

  • #10092

    ログ出力用時に任意のアダプターを指定できる用に Phalcon\Logger\Bag クラスを実装。

$logger = new Phalcon\Logger\Bag(array(
    'file1' => new Phalcon\Logger\Adapter\File($logfile1),
    'file2' => new Phalcon\Logger\Adapter\File($logfile2),
));

// Output: logfile1
$logger->error('This is an error');

// Output: logfile1
$logger->file1->error('This is an error');

// Output: logfile2
$logger->file2->error('This is another error');

Phalcon\Cache\Backend\Redis

  • #10120

    Redis のデータベースを指定できるように修正。

new Phalcon\Cache\Backend\Redis($frontCache, array(
  'host' => 'localhost',
  'port' => 6379,
  'index' => 1  // Added index option (database number)
));