diff --git a/docs/ja/development.rst b/docs/ja/development.rst index 070e43a5c..6e8a0eeaa 100644 --- a/docs/ja/development.rst +++ b/docs/ja/development.rst @@ -17,20 +17,19 @@ Bake イベント 例えば、bake ビュークラスに他のヘルパーを追加するためにこのイベントは使用されます。 :: on('Bake.initialize', function (Event $event) { + // in src/Application::bootstrapCli() + + EventManager::instance()->on('Bake.initialize', function (EventInterface $event) { $view = $event->getSubject(); // bake テンプレートの中で MySpecial ヘルパーの使用を可能にします $view->loadHelper('MySpecial', ['some' => 'config']); // そして、$author 変数を利用可能にするために追加 - $view->set('author', 'Andy'); - +\ $view->set('author', 'Andy'); }); 別のプラグインの中から bake を変更したい場合は、プラグインの ``config/bootstrap.php`` @@ -42,12 +41,12 @@ Bake イベントは、既存のテンプレートに小さな変更を行うた ``Bake.beforeRender`` で呼び出される関数を使用することができます。 :: on('Bake.beforeRender', function (Event $event) { + // in src/Application::bootstrapCli() + + EventManager::instance()->on('Bake.beforeRender', function (EventInterface $event) { $view = $event->getSubject(); // indexes の中のメインデータ変数に $rows を使用 @@ -65,36 +64,34 @@ Bake イベントは、既存のテンプレートに小さな変更を行うた if ($view->get('singularVar')) { $view->set('singularVar', 'theOne'); } - - }); - + 特定の生成されたファイルへの ``Bake.beforeRender`` と ``Bake.afterRender`` イベントを指定することもあるでしょう。例えば、 **Controller/controller.twig** ファイルから生成する際、 UsersController に特定のアクションを追加したい場合、以下のイベントを使用することができます。 :: on( 'Bake.beforeRender.Controller.controller', - function (Event $event) { + function (EventInterface $event) { $view = $event->getSubject(); - if ($view->viewVars['name'] == 'Users') { + if ($view->get('name') === 'Users') { // Users コントローラーに login と logout を追加 - $view->viewVars['actions'] = [ + $view->set('actions', [ 'login', 'logout', 'index', 'view', 'add', 'edit', - 'delete' - ]; + 'delete', + ]); } } ); @@ -109,71 +106,100 @@ Bake テンプレート構文 Bake テンプレートファイルは、 `Twig `__ テンプレート構文を使用します。 -だから、例えば、以下のようにシェルを bake した場合: +だから、例えば、以下のようにコマンドを bake した場合: .. code-block:: bash - bin/cake bake shell Foo + bin/cake bake command Foo -(**vendor/cakephp/bake/src/Template/Bake/Shell/shell.twig**) を使用した +(**vendor/cakephp/bake/templates/bake/Command/command.twig**) を使用した テンプレートは、以下のようになります。 :: `` Bake テンプレートの PHP 終了タグ - * ``<%=`` Bake テンプレートの PHP ショートエコータグ - * ``<%-`` Bake テンプレートの PHP 開始タグ、タグの前に、先頭の空白を除去 - * ``-%>`` Bake テンプレートの PHP 終了タグ、タグの後に末尾の空白を除去 - .. _creating-a-bake-theme: Bake テーマの作成 @@ -184,102 +210,107 @@ Bake テーマの作成 これを行うための最善の方法は、次のとおりです。 #. 新しいプラグインを bake します。プラグインの名前は bake の「テーマ」名になります。 -#. 新しいディレクトリー **plugins/[name]/src/Template/Bake/Template/** を作成します。 -#. **vendor/cakephp/bake/src/Template/Bake/Template** から上書きしたい + 例 ``bin/cake bake plugin custom_bake`` +#. 新しいディレクトリー **plugins/CustomBake/templates/bake/** を作成します。 +#. **vendor/cakephp/bake/templates/bake** から上書きしたい テンプレートをあなたのプラグインの中の適切なファイルにコピーしてください。 -#. bake を実行するときに、必要であれば、 bake のテーマを指定するための ``--theme`` +#. bake を実行するときに、必要であれば、 bake のテーマを指定するための ``--theme CustomBake`` オプションを使用してください。各呼び出しでこのオプションを指定しなくても済むように、 カスタムテーマをデフォルトテーマとして使用するように設定することもできます。 :: Test->classSuffixes[$this->name()])) { - $this->Test->classSuffixes[$this->name()] = 'Foo'; + $this->Test->classSuffixes[$this->name()] = 'Foo'; } $name = ucfirst($this->name()); if (!isset($this->Test->classTypes[$name])) { - $this->Test->classTypes[$name] = 'Foo'; + $this->Test->classTypes[$name] = 'Foo'; } return parent::bakeTest($className); @@ -291,6 +322,20 @@ FooTask.php ファイルは次のようになります。 :: あなたのファイルを導くために使用されるサブ名前空間です。 前の例では、名前空間 ``App\Test\TestCase\Foo`` でテストを作成します。 +BakeView クラスの設定 +============================== + +bake コマンドは ``BakeView`` クラスをテンプレートをレンダリングするために使います。 You can +access the instance by listening to the ``Bake.initialize`` イベントを監視するためにこのインスタンスにアクセスできます。 例えば、以下の様にして独自のヘルパーを読み込みbakeテンプレートで使用できます:: + + on( + 'Bake.initialize', + function ($event, $view) { + $view->loadHelper('Foo'); + } + ); + .. meta:: :title lang=ja: Bake の拡張 :keywords lang=ja: command line interface,development,bake view, bake template syntax,twig,erb tags,percent tags