FuelphpでSessionが消える

Fuelphp 1.8案件で開発してて

Session::set('test', $some_data);

して

$test = Session::get('test');

すると、空になってる現象に出会いました
原因に気づくのに3時間くらいかかってしまった..
(すごい複雑なシステムだったけど..)

原因は

fuel/core/classes/session/driver.php function _set_cookie L.474あたり

if (strlen($payload) > 4000)
{
throw new \FuelException('The session data stored by the application in the cookie exceeds 4Kb. Select a different session storage driver.');
}

データサイズが4K超えると例外を投げてて、しかも画面に出てこず、logに残るだけという..
ログファイル先に見ればよかった..

そんなにでかい変数じゃなかった気がしたんですが

ということで、セッションにcookieを使わず、fileかdbかを使うと解決でした

Session 設定 - クラス - FuelPHP ドキュメント

[FuelPHP]phpunitをインストールしてみる

FuelPHPでは、ユニットテストを走らせます


# oil test --group=App
Tests Running...This may take a few moments.
sh: phpunit: コマンドが見つかりません

と、phpunitが入ってないので入れます。

<環境>
Centos 6.4
FuelPHP 1.7
PHP 5.4.20

composerを使って入れます
FuelPHPのインストールしたディレクトリに移動

composer.jsonに追記します


# vim composer.json
+    "require-dev": {
+        "phpunit/phpunit": "3.7.*"
+    },

入れます


# php composer.phar update

これで、
fuel/vendor/phpunit
などとインストールされるので、パスを通すには

export PATH=$PATH:/var/www/html/(プロジェクト名)/fuel/vendor/bin

として、動くか確認


# phpunit --version
PHPUnit 3.7.28-12-g236f65c by Sebastian Bergmann.

oilコマンドで


# oil test --group=App
Tests Running...This may take a few moments.
PHPUnit 3.7.28-12-g236f65c by Sebastian Bergmann.

Configuration read from /var/www/html/(プロジェクト名)/fuel/core/phpunit.xml

.........

Time: 571 ms, Memory: 14.50Mb

できました
(ユニットテストは書いておいてください)

[Fuelphp]画面がみれない

fuelphpを試してみることに

<環境>
ubuntu 11
apache 2.2
fuelphp 1.5

公式サイトのドキュメントどおり、インストール

curl get.fuelphp.com/oil sh

cd /var/www/fueltest/
oil create test

で、ブラウザでアクセス
http://localhost/fueltest/test/

あれ、画面がみれない

.htaccessを設置
vi .htaccess


RewriteEngine on

RewriteBase /public

RewriteRule ^(/)?$ index.php/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

sudo vi /etc/apache2/sites-available/default


#AllowOverride None
→AllowOverride All

あれ、まだ見れない
mod_rewriteが効いてない様子

sudo a2enmod rewrite
sudo service apache2 restart

やっとみれた