<?php
/**
 * -----------------------------------------------------------------------------
 *
 * SyL - Web Application Framework for PHP
 *
 * PHP version 4 (>= 4.3.x) or 5
 *
 * Copyright (C) 2006 k.watanabe
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * -----------------------------------------------------------------------------
 * @package   SyL
 * @author    k.watanabe <k.watanabe@syl.jp>
 * @copyright 2006 k.watanabe
 * @license   http://www.opensource.org/licenses/lgpl-license.php
 * @version   CVS: $Id: SyL_ControllerCmd.php,v 1.4 2007/01/03 11:17:37 seasonstream Exp $
 * @link      http://www.syl.jp/
 * -----------------------------------------------------------------------------
 */

/**
 * コマンドラインコントローラクラス
 *
 * ++ 遷移イベント
 *   1. initStream       - コントローラーのコンストラクタ実行後
 *   2.   loadStream       - アクション実行前
 *   3.     executeStream  - アクション実行
 *   4.   unloadStream   - ビュー表示実行後
 *   5. finalStream      - shutdown時
 *
 * @package   SyL
 * @author    k.watanabe <k.watanabe@syl.jp>
 * @copyright 2006 k.watanabe
 * @license   http://www.opensource.org/licenses/lgpl-license.php
 * @version   CVS: $Id: SyL_ControllerCmd.php,v 1.4 2007/01/03 11:17:37 seasonstream Exp $
 * @link      http://www.syl.jp/
 */
class SyL_ControllerCmd extends SyL_Controller
{
    /**
     * フィルタ設定ファイル名
     *
     * @access private
     * @var string
     */
    var $action_file_name = 'actionscmd.xml';

    /**
     * コンストラクタ
     *
     * @access public
     * @param array 環境設定配列
     */
    function SyL_ControllerCmd($config)
    {
        parent::SyL_Controller($config);
    }

    /**
     * 初期化処理
     *
     * @access protected
     */
    function initStream()
    {
        // グローバルコンポーネント設定ファイル
        $config_file = array();
        $config_file['components'] = SYL_WEBAPP_CONFIG_DIR . "/{$this->components_file_name}";
        // イベント実行
        $this->raiseEvent('initStream', $config_file);
    }

    /**
     * アクション処理実行
     *
     * @access protected
     */
    function executeStream()
    {
        // アクション設定ファイル
        $config_file = array();
        $config_file['actionscmd'] = SYL_APP_DIR . "/{$this->action_file_name}";

        // イベント実行
        $this->raiseEvent('executeStream', $config_file);
    }

    /**
     * エントリポイント
     *
     * @access public
     */
    function stream()
    {
        // 初期化処理
        $this->initStream();
        // アクション実行前
        $this->loadStream();
        // アクション実行処理
        $this->executeStream();
        // アクション実行後処理
        $this->unloadStream();
/*
echo "<pre>";
print_r($this->container->components);
echo "</pre>";

*/
    }
}

?>
