mapleコマンド(generator)の使い方

なんだかんだと、忙しい時期(秋1つ目の山)を乗り越えましたので、
また書いていきたいと思います。


さて、今までの説明では、せっせとファイルを作る形で説明してきました。
mapleには、generatorというファイル生成機能があります。それを説明したいと思います。


ver3.2より、generatorに成り代わって、mapleコマンドができました。
ここでは、mapleコマンドを使って説明していきます。
mapleコマンドを使って、お決まりのHello World!までを作ってみましょう。

アプリ用のベースディレクトリを作成します。

/home/foo/maple/ をベースディレクトリとして、作成しました。

ベースディレクトリ以下に、htdocsディレクトリと、webappディレクトリを作成します。
webappディレクトリは、mapleコマンドによって作成します。

$ mkdir htdocs
$ maple webapp
  [create]  /home/foo/maple/webapp
  [create]  /home/foo/maple/webapp/modules
  [create]  /home/foo/maple/webapp/logs
  [create]  /home/foo/maple/webapp/components
  [create]  /home/foo/maple/webapp/templates
  [create]  /home/foo/maple/webapp/templates_c
  [create]  /home/foo/maple/webapp/config
  [create]  /home/foo/maple/webapp/config/maple.inc.php
  [create]  /home/foo/maple/webapp/config/global-config.ini
  [create]  /home/foo/maple/webapp/config/base.ini
  [create]  /home/foo/maple/webapp/cache

自動的に必要なディレクトリを作成してくれます。
これでアプリケーションを作る準備は完了しました。
次は、実際に各アクション毎の設定をしていきます。

最初にアクション名を決定します。

今回の処理のアクション名は、「test_hello」とします。

webappディレクトリでmapleコマンドを実行します。

$ maple action test_hello smarty test_hello test_hello
  [create]  /home/foo/maple/webapp/modules/test/hello/Hello.class.php
  [create]  /home/foo/maple/webapp/modules/test/hello/maple.ini
  [create]  /home/foo/maple/webapp/templates/test/hello.html
  [create]  /home/foo/maple/htdocs/test_hello.php

自動的に必要なファイルを作成してくれます。


それぞれの引数の説明です。
最初の引数に応じて何かを作ります(今回はaction)
actionの場合は、アクション名 テンプレートの種類 テンプレート名 エントリポイント
となります。もちろんエントリポイント以外の_は/に置き換えられます。


さて、それぞれのファイルがどうなっているかといいますと。

  • htdocs/test_hello.php
<?php
error_reporting(E_ALL);
//error_reporting(0);

/**
 * MapleのBaseディレクトリの設定
 */
define('BASE_DIR', dirname(dirname(__FILE__)));

/**
 * Debugフィルターを発動させるかどうかの設定
 */
define('DEBUG_MODE', 0);

/**
 * Mapleの設定ファイルの読込み
 */
require_once BASE_DIR . "/webapp/config/maple.inc.php";

/**
 * このアプリの独自設定
 */
define('DEFAULT_ACTION', 'test_hello');
define('LOG_LEVEL',      LEVEL_TRACE);

/**
 * フレームワーク起動
 */
$controller =& new Controller();
$controller->execute();
?>
  • webapp/modules/test/hello/Hello.class.php
<?php

/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

/**
 * [[機能説明]]
 *
 * @package     [[package名]]
 * @author      Your Name <mail@example.com>
 * @access      public
 */
class Test_Hello
{
    /**
     * [[機能説明]]
     *
     * @access  public
     */
    function execute()
    {
        return 'success';
    }
}
?>
  • webapp/modules/test/hello/maple.ini
;[Convert]
;*.trim =

[View]
success = "test/hello.html"
  • webapp/templates/test/hello.html
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
<title>Hello, Maple!</title>
</head>
<body>
<h1>Hello, Maple!</h1>
</body>
</html>

上記のように、Hello World(ここではMapleですが・・・)を表示するスケルトンを自動的に作ってくれます。
後は、これに必要なビジネスロジック部分を付け足していくだけですね。

これからは、このmapleコマンドを使った方法で説明していきます。