コンテンツにスキップ
Nibiru docsv0.9.2

Nibiru とは?

Nibiru の 90 秒ツアー — MMVC が何を意味するか、何が同梱されているか、誰のためのものか。

Stable Reading time ~ 1 min Edit on GitHub

Nibiru はモジュラー MVC PHP フレームワーク — MMVC — であり、本格的なフレームワークの規律を犠牲にせずに ラピッドプロトタイピング を実現するために作られました。頭の中に収まるほど小さく、ショーケースページ にある本番アプリを支えるほど強力です。

名前はバビロニア天文学への敬意です:Nibiru はバビロンの主神マルドゥクと結びついた天界の交差点でした。フレームワークも同じ考え方で動作します — モジュール、コントローラー、ビュー、データが交わる単一の点です。

ルーティングとディスパッチURL パターン + SEO URL のパース、ソフト 404、アクションの自動解決。
MVC + もう 1 つの Mコントローラー、ビュー(Smarty)、モデル、加えて第一級の モジュール:トレイト、プラグイン、インターフェース、設定、Observer パターン。
マルチデータベースネイティブ MySQL、PDO、libpq 経由の PostgreSQL(psql/postgresql)、ODBC、すべて統一された Db アダプターの背後に。
フォーム28 種類以上のフィールドタイプを Form::addInputType…() と div のレイアウトヘルパーで流暢に構築。
ページネーションURL を意識(/controller/action/page/N)、テンプレートヘルパー付き。
認証セッションベース、AES 復号化された認証情報、Users モジュールが事前構築したログインフォーム。
CLI(./nibiruモジュール、コントローラー、プラグインの scaffolding、マイグレーションの実行、キャッシュのクリア、CMS ページの管理。
Composer 対応Smarty 3、PHPMailer、Guzzle、Laminas Diactoros、OpenAI クライアント、Elasticsearch クライアント、QR コード、バーコード、ブロックチェーンツール。

ほとんどの PHP フレームワークは Model–View–Controller を提供します。Nibiru は 2 つ目の M を追加します:モジュール

モジュールは自己完結した単位で、以下を含むことができます:

  • IModule を実装するメインクラス(オプションで Observer パターンの SplSubject)、
  • 再利用可能な動作のための トレイト
  • コントローラーに注入される無状態サービスのための プラグイン
  • 契約を表す インターフェース
  • レジストリ によって自動発見される .ini ファイルとしての 設定

モジュールは疎結合を促進し、application/controller/ を汚染することなく “users”、“billing”、“shop”、“tpms” などを独自のフォルダに保持できます。

application/module/users/
├── users.php # メインクラス(IModule、SplSubject を実装)
├── interfaces/ # 契約
├── plugins/ # 無状態サービス(User、Acl…)
├── settings/ # レジストリが自動ロードする .ini 設定
└── traits/ # 再利用可能なメソッド

リクエストライフサイクル、ひとことで

Section titled “リクエストライフサイクル、ひとことで”
flowchart LR
A[index.php] --> B[core/framework.php]
B --> C[Dispatcher::run]
C --> D[Router::route]
D --> E[Auto::loader<br/>モデル + モジュール]
E --> F[applicationController.php]
F --> G[navigationAction]
G --> H[customAction?]
H --> I[pageAction]
I --> J[Display::display<br/>Smarty レンダリング]

すべてのリクエストは navigationAction()、次に(オプションで)一致した _actionAction、最後に pageAction() を実行します。コントローラーファイルが見つからない場合、Nibiru は設定されたエラーテンプレートをレンダリングします — ソフト 404

  • 今週末に動作する Web アプリを出荷したい ハッカーとプロトタイパー
  • メガフレームワークの重さを背負わずに本番アプリを保守する ソロ起業家と小規模チーム
  • 初日から PostgreSQL、MySQL、CLI を使いたい PHP に興味のあるチーム

準備はできましたか? Nibiru をインストール →