---
title: Nibiru
description: 古き神々の中で生まれ、現代の開発者のために作られた。ラピッドプロトタイピングのためのモジュラー MMVC PHP フレームワーク。
template: splash
hero:
  eyebrow: モジュラー MMVC PHP フレームワーク
  title: |
    星の速さで<br/>創り出せ。
  tagline: |
    <strong>Nibiru</strong> はラピッドプロトタイピングのためのモジュラー MMVC PHP フレームワークです — ルーター、Smarty ベースのビュー層、マルチデータベース対応（MySQL · PostgreSQL · ODBC · PDO）、流暢なフォームビルダー、そしてモジュール・コントローラー・マイグレーションを数秒で生成する CLI。
  actions:
    - text: 旅を始める
      link: /ja/start/what-is-nibiru/
      icon: right-arrow
      variant: primary
    - text: GitHub で見る
      link: https://github.com/alllinux/Nibiru
      icon: external
      variant: minimal
---

import { Card, CardGrid, LinkCard } from '@astrojs/starlight/components';

## 機能の星座

<CardGrid stagger>
  <Card title="MMVC アーキテクチャ" icon="puzzle">
    モジュールはトレイト、プラグイン、インターフェース、設定で MVC を包みます。2 つ目の **M** は疎結合で、`SplSubject` Observer パターンが標準装備。
  </Card>
  <Card title="マルチデータベース・コア" icon="seti:db">
    5 つのドライバが軌道を周回：`mysql`、`pdo`、`postgres`（ODBC）、`psql`（libpq）、`postgresql`。INI のキーを 1 つ変えるだけで切り替え可能。
  </Card>
  <Card title="Smarty ビュー" icon="document">
    テンプレート駆動のビュー、グローバル `View::assign()` ヘルパー、ホット `templates_c` キャッシュ。共通パーシャル、ナビゲーション include、ページネーションテンプレートを完備。
  </Card>
  <Card title="流暢なフォームビルダー" icon="pencil">
    28 種類以上のフィールドタイプ — text、password、switch、color、range、file upload — 静的な `Form::add…` 呼び出しで組み立て、1 つの HTML 文字列としてレンダリング。
  </Card>
  <Card title="本物の CLI ツール" icon="seti:powershell">
    `./nibiru` がモジュール、コントローラー、プラグイン、マイグレーション、CMS ページを scaffolding。`local`、`staging`、`production` 環境に対してマイグレーションを実行。
  </Card>
  <Card title="AI ネイティブへ、まもなく" icon="rocket">
    Nibiru は、自身の知識で訓練された <a href="/ja/ai/oracle/">RAG ベースの Oracle</a> を内蔵する初の PHP フレームワークになります。将来のファインチューニング用の公開コーパスも提供予定。
  </Card>
</CardGrid>

## クイックスタート

```bash
# クローン
git clone https://github.com/alllinux/Nibiru my-app && cd my-app

# PHP 依存をインストール（Smarty、PHPMailer、Guzzle、…）
composer install

# パーミッション + フォルダーのブートストラップ
./nibiru -s

# 最初のマイグレーション
./nibiru -mi local

# コントローラーを生成
./nibiru -c products
```

```php
// application/controller/productsController.php
namespace Nibiru;
use Nibiru\Adapter\Controller;

class productsController extends Controller {
  public function pageAction() {
    View::assign([
      'title'    => '製品 — Nibiru',
      'products' => [['id' => 1, 'name' => 'マルドゥク金メッキ']],
    ]);
  }
  public function navigationAction() {
    JsonNavigation::getInstance()->loadJsonNavigationArray();
  }
}
```

## 次はどこへ

<CardGrid>
  <LinkCard title="Nibiru とは？" href="/ja/start/what-is-nibiru/" description="90 秒ツアー：MMVC、ディスパッチャー、リクエストライフサイクル。" />
  <LinkCard title="アーキテクチャ" href="/core/architecture/" description="モジュール、コントローラー、ビュー、レジストリがどのように互いに公転するか。" />
  <LinkCard title="ショーケース" href="/showcase/projects/" description="本番運用中の Nibiru アプリ — 請求書管理、EC、産業 PIM。" />
  <LinkCard title="Oracle に聞く" href="/ja/ai/oracle/" description="フローティングチャットを開く。Oracle はまさにこのドキュメントに根ざしています。" />
</CardGrid>
