GETモジュールの基本と雛形

GETモジュールの雛形

<?php

namespace Acms\Custom\GET;

use ACMS_GET;
use Template;

/**
 * extension/acms/GET/Sample.php
 *
 * テンプレート上では、標準のGETモジュールと同様に、
 * '<!-- BEGIN_MODULE Sample --><!--END_MODULE Sample -->' で呼び出されます。
 */
class Sample extends ACMS_GET
{
    function get()
    {
        return 'sample sample';
    }
}

GETモジュールの規約

クラス

GETモジュールとして動作させるために、ACMS_GETを継承してください。
ファイルのパスと命名規則はPSR4に従います。(ただし下位互換性を保つため一部したがっていない場合があります)

**extension/acms の名前空間は Acms\Custom になります。**

この命名規則によりクラスがオートロード(autoload)されますので、requireなどは必要ありません。

extension/acms/GET/Sample.php の場合

namespace Acms\Custom\GET;
use ACMS_GET;

class Sample extends ACMS_GET {
}

extension/acms/GET/Own/Sample.php の場合

namespace Acms\Custom\GET\Own;
use ACMS_GET;

class Sample extends ACMS_GET {
}

出力

GETモジュールは呼び出されるとgetメソッドを実行します。最終的にgetメソッド内で、returnした文字列がモジュール内で出力されます。Smartyなど他のテンプレートエンジンと組み合わせたり、外部から情報を取得したりして情報を出力できます。

returnする文字列にはHTMLタグなどが含まれていても構いません。テンプレートとプログラムを分離させる必要が無い場合は、直接HTMLコンテンツを出力することもできます。

実行例

冒頭の雛形を実行する際のテンプレートと、その実行結果を例示します。GETモジュールは、BEGIN_MODULEから始まり、ENDMODULEで終わる、一連のテンプレートタグによって呼び出されます。テンプレート上のモジュール名は Acms\Custom 以降のクラス名を **(アンダーバー)** 繋ぎにしたものになります。

例: Acms\Custom\GET\Own\Sample -> Own_Sample

テンプレート

<html>
<body>
    <p><!-- BEGIN_MODULE Own_Sample --><!-- END_MODULE Oen_Sample --></p>
</body>
</html>

実行結果

<html>
<body>
    <p>sample sample</p>
</body>
</html>

POSTモジュールの基本と雛形

POSTモジュールの雛形

<?php

namespace Acms\Custom\POST;

use ACMS_POST;

/**
 * extension/acms/POST/Sample.php
 *
 * テンプレート上では、標準のPOSTモジュールと同様に、
 * '<input type="submit" name="ACMS_POST_Sample" value="送信" />' で呼び出されます。
 */
class Sample extends ACMS_POST
{
    function post()
    {
        return $this->Post;
    }
}

POSTモジュールの規約

クラス

POSTモジュールとして動作させるために、ACMS_POSTを継承してください。ファイルのパスと命名規則はPSR4に従います。(ただし下位互換性を保つため一部したがっていない場合があります)

またこの命名規則によりクラスがオートロード(autoload)されますので、requireなどは必要ありません。

extension/acms/POST/Sample.php の場合

<?php

namespace Acms\Custom\POST;

use ACMS_POST; 

class Sample extends ACMS_POST
{
}

extension/acms/POST/Own/Sample.php の場合

<?php

namespace Acms\Custom\POST\Own;

use ACMS_POST; 

class Sample extends ACMS_POST
{
}

実行

POSTモジュールは呼び出されるとpostメソッドを実行します。postメソッド内で処理を実行した後には、最後に$this->Postをreturnします。これは規約上のスペルです。次に起動するGETモジュールとの情報の受け渡しに利用されますが、ここでは言及しません。

制約

POSTモジュール内では、echoやprintなど文字列を直接出力することはしません。表示(View)に関わる部分はGETモジュールで行います。