旧バージョンからの変更点
目次
バージョン9での主な変更点
モデルの読み込み
以下のように model 関数を使って、モデルを呼び出せるようにしました。(従来の呼び出し方法も引き続き使えます。)
$categories = model('select_categories', [
'order_by' => 'sort, id',
]);
モデルの自動読み込み
モデルを自動で読み込むかどうかを、config.php の以下で設定できるようにしました。
define('AUTOLOAD_MODEL', true);
これを false に設定した場合、コントローラなどで以下などのようにして、明示的にモデルを読み込む必要があります。
model('users.php');
デフォルトで true になっているので、これまでと同じ挙動になります。
サービスの自動読み込み
サービスを自動で読み込むかどうかを、config.php の以下で設定できるようにしました。
define('AUTOLOAD_SERVICE', false);
これを false に設定した場合、コントローラなどで以下などのようにして、明示的にモデルを読み込む必要があります。
import('app/services/user.php');
デフォルトで false になっているので、これまでとは異なる挙動になります。
プラグインの名称変更
プラグインと呼んでいたものを「モジュール」に名称変更しました。格納場所も libs/plugins から libs/modules に変更しました。
なお、使い方に変更はありません。
ファイルとディレクトリのパーミッション
フレームワークが設定するパーミッションを、config.php の以下の部分で設定できるようにしました。
define('PERMISSION_DIRECTORY', 0707);
define('PERMISSION_FILE', 0606);
デバッグレベルの追加
デバッグレベルを config.php の以下で設定できますが、従来の 1・2 に加えて 3 を指定できるようにしました。
define('DEBUG_LEVEL', 1);
デバッグレベルの内容は以下のとおりです。
DEBUG_LEVELを1に設定すると、エラー発生時に詳細が表示される。また、データベース管理ツールなども利用できるようになる。DEBUG_LEVELを2に設定すると、さらに画面下部にerror()を呼び出したときのスタックトレースも表示されるようになり、実行したSQLも表示されるようになり、実行時間やメモリ使用量が表示されるようになる。DEBUG_LEVELを3に設定すると、さらに実行したSQLがその都度画面に表示されるようになる。
コマンドラインからの実行
いくつかの命令を、コマンドラインから実行できるようにしました。Ver 9.3.0 以降は DEBUG_LEVEL が 0 でもコマンドラインから実行できるので、本番環境でのマイグレーション実行などに使えます。
$ php index.php … 「info_levis」を指定した場合と同じ
$ php index.php info_levis … フレームワークの情報が表示される
$ php index.php info_php … phpinfo() の結果が表示される
$ php index.php db_migrate … マイグレーションが実行される
$ php index.php db_scaffold … Scaffoldが実行される
$ php index.php test_index … テストが一覧される
$ php index.php test_exec xxxxx … テストが実行される(テスト名を指定する)
具体的には、以下のように実行されます。
$ php index.php
levis: PHP Framework
Version => 9.0.0-b9
Update => 2023-12-10
その他
- データベースに自動接続するか否か、設定で選択できるようにしました。
- データベース管理ツールを強化しました。
- 任意のタイミングでトークンを破棄できるようにしました。
- オートリンク関数を強化しました。
- デバッグモードを強化しました。
- 細かな不具合を修正しました。
バージョン8での主な変更点
フレームワークが管理する変数は、すべて先頭に「_」を付けるように変更しました。
forward関数を実装しました。(処理が途切れるのを防ぎ、トークンの流出も防ぐ。)
- http://refirio.org/levis/manual/reference.html#core_functions
- https://github.com/refirio/levis-members/blob/master/app/controllers/admin/category_form.php#L34
error関数をスタックトレースに対応しました。DEBUG_LEVELを2にすると、関数の呼び出し元が分かります。ログファイルへの記録にも対応しています。(トラブル時の調査を容易にするために。)
define('DEBUG_LEVEL', 2);
error('エラーメッセージ');
↓
Application error: error(): エラーメッセージ in /var/www/levis/app/controllers/blog/list.php on line 7
SQL実行エラー時、エラーメッセージだけでなくクエリもログに記録されるようにしました。(トラブル時の調査を容易にするために。)
define('LOGGING_PATH', 'log/');
define('LOGGING_MESSAGE', true);
バージョン7時点の説明書
- 説明書(Ver 7.2.3 時点)