levis: PHP Framework
levisとは
levis(レヴィス)は、「MVC」「フロントコントローラー」「非オブジェクト指向」といった特徴を持つ、敷居の低さを重視した軽量なPHPフレームワークです。
ラテン語の「軽い」「早い」から名付けています。
PHP8、PHP7、PHP5、PHP4に対応しています。
以下はコントローラーとビューのサンプルプログラムです。
コントローラー:app/controllers/blog/list.php
<?php
$_view['articles'] = select_articles(array(
'order_by' => 'id DESC',
));
ビュー:app/views/blog/list.php
<!DOCTYPE html>
<html>
<head>
<title>Blog</title>
</head>
<body>
<ul>
<?php foreach ($_view['articles'] as $article) : ?>
<li><?php h($article['title']) ?></li>
<?php endforeach ?>
</ul>
</body>
</html>
ダウンロード
フレームワーク本体
旧バージョン
開発中バージョン
開発中バージョンでの、主な変更点は以下のとおりです。
モデルの読み込み
以下のように 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
になっているので、これまでとは異なる挙動になります。
ファイルとディレクトリのパーミッション
フレームワークが設定するパーミッションを、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がその都度画面に表示されるようになる。
コマンドラインからの実行
いくつかの命令を、コマンドラインから実行できるようにしました。
$ php index.php
levis: PHP Framework
Version => 9.0.0-b9
Update => 2023-12-10
その他
- データベースに自動接続するか否か、設定で選択できるようにしました。
- データベース管理ツールを強化しました。
- 任意のタイミングでトークンを破棄できるようにしました。
- オートリンク関数を強化しました。
- デバッグモードを強化しました。
- 細かな不具合を修正しました。
サンプル
記事管理プログラム
フレームワークの使用例として作成した、簡易なアプリケーション
設置方法
- フレームワークを配置します。
- 作成例のファイルを配置します。
files/articles/
のパーミッションを707
に設定します。app/config.php
(独自に追加した設定ファイル)でログイン情報を設定します。index.php/setup
にアクセスすると、データベースにテーブルが作成されます。index.php
にアクセスして、エラーが表示されなければ完了です。- 管理画面から記事を登録します。
名簿管理プログラム
実用的なプログラムの土台用に作成した、多機能なアプリケーション。
設置方法
- フレームワークを配置します。
- 作成例のファイルを配置します。
files/classes/
とfiles/members/
のパーミッションを707
に設定します。app/config.php
(独自に追加した設定ファイル)で公開URLとログイン情報を設定します。index.php/setup
にアクセスすると、データベースにテーブルが作成されます。index.php
にアクセスして、エラーが表示されなければ完了です。- 管理画面からユーザと教室を登録し、次に名簿を登録します。
フォームメールプログラム
データベースを使わない例として作成した、簡易なフォームメール
設置方法
- フレームワークを配置します。
- 作成例のファイルを配置します。
app/config.php
(独自に追加した設定ファイル)でメールの送信先を設定します。index.php
にアクセスして、エラーが表示されなければ完了です。
ユーティリティ
アプリケーションを作成するにあたって役立つツールなど。