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

スキャフォールディング モジュールとコントローラー

CLIを使用してコントローラー、モジュール、プラグインを生成します。

Stable Reading time ~ 1 min Edit on GitHub
Terminal window
./nibiru -c products

2つのファイルを作成します。

application/controller/productsController.php
application/view/templates/products.tpl

コントローラーのスタブ:

<?php
namespace Nibiru;
use Nibiru\Adapter\Controller;
class productsController extends Controller
{
public function pageAction() {
View::assign(['title' => 'Products']);
}
public function navigationAction() {
JsonNavigation::getInstance()->loadJsonNavigationArray();
}
}

テンプレートのスタブ:

{include 'shared/header.tpl'}
<body>
{include file="navigation.tpl"}
<main class="container">
<h1>{$title}</h1>
</main>
{include 'shared/footer.tpl'}
</body>

コントローラーはPHPファイルのみです。JSやCSSのスキャフォールディングはありませんので、アセットの接続を自分で管理できます。

Terminal window
./nibiru -m billing

作成します:

application/module/billing/
├── billing.php
├── interfaces/billing.php
├── plugins/
├── settings/billing.ini
└── traits/

メインクラスは IModule を実装し、モジュールのレジストリ構成を読み込むコンストラクタを公開しています。-g フラグを追加して、Graylog オブザーバーのワイヤリングをデフォルトで含めます:

Terminal window
./nibiru -m billing -g

-g が設定されている場合、スカフォールドは Graylog オブザーバーをインポートし、コンストラクタでアタッチし、キーの状態変化時に notify() を発行します。これにより、追加のプラッミングなしに GELF 対応の Graylog サーバーがモジュールイベントをキャッチすることができます。

プラグインはモジュールの内部に存在します。

Terminal window
./nibiru -p invoices -m billing

application/module/billing/plugins/invoices.php を作成します:

<?php
namespace Nibiru\Module\Billing\Plugin;
use Nibiru\Module\Billing\Billing;
class Invoices extends Billing
{
public function listOpen(): array
{
return \Nibiru\Pdo::fetchAll(
'SELECT * FROM invoices WHERE status = :s ORDER BY due_date',
[':s' => 'open']
);
}
}

プラグインはモジュールから継承するため、レジストリ、設定、およびオブザーバーの仕組みを共有します。

./nibiru -s はインストール後(または新しいチェックアウトを取得した後)に実行され、以下の操作を行います:

  • application/view/templates_c/application/view/cache/ が存在しない場合は作成します。
  • これらのフォルダの権限を確認し、ウェブサーバーユーザーで書き込み可能に設定します。
  • 必要な PHP 拡張機能が読み込まれていることを確認します。
  • INI ファイル内のデータベースドライバがこのバイナリビルドでサポートされていることを確認します。

繰り返し実行しても安全です。

SmartyのコンパイルキャッシュとレンダリングされたHTMLキャッシュを両方クリアします:

Terminal window
./nibiru -cache-clear

デプロイ後に実行してください:

  • .tpl ファイルを変更した場合、
  • [ENGINE] キャッシング 設定を変更した場合、
  • Smarty プラグインを修正した場合。

キャッシュは次のリクエストで再生成されます。