$this->class_factory = new $class_factory($this, $this->class);
// エラーハンドラの設定
- Ethna::setErrorCallback(array(&$this, 'handleError'));
+ Ethna::setErrorCallback(array($this, 'handleError'));
// ディレクトリ名の設定(相対パス->絶対パス)
foreach ($this->directory as $key => $value) {
*
* @access protected
*/
- function end()
+ protected function end()
{
// 必要に応じてオーバライドして下さい。
$this->logger->end();
* @access public
* @return string アプリケーションID
*/
- function getAppId()
+ public function getAppId()
{
return ucfirst(strtolower($this->appid));
}
* @param string $db_key DBキー
* @return string DSN
*/
- function getDSN($db_key = "")
+ public function getDSN($db_key = "")
{
if (isset($this->dsn[$db_key]) == false) {
return null;
* @param string $db_key DBキー
* @return bool true:persistent false:non-persistent(あるいは設定無し)
*/
- function getDSN_persistent($db_key = "")
+ public function getDSN_persistent($db_key = "")
{
$key = sprintf("dsn%s_persistent", $db_key == "" ? "" : "_$db_key");
* @param string $db_key DBキー("", "r", "rw", "default", "blog_r"...)
* @return string $db_keyに対応するDB種別定義(設定が無い場合はnull)
*/
- function getDBType($db_key = null)
+ public function getDBType($db_key = null)
{
if (is_null($db_key)) {
// 一覧を返す
* @access public
* @return string アプリケーションベースURL
*/
- function getURL()
+ public function getURL()
{
return $this->url;
}
* @access public
* @return string アプリケーションベースディレクトリ
*/
- function getBasedir()
+ public function getBasedir()
{
return $this->base;
}
* @return string テンプレートディレクトリ
* @see Ethna_Controller#_getDefaultLanguage
*/
- function getTemplatedir()
+ public function getTemplatedir()
{
$template = $this->getDirectory('template');
* @access public
* @return string アクションディレクトリ
*/
- function getActiondir($gateway = null)
+ public function getActiondir($gateway = null)
{
$key = 'action';
$gateway = is_null($gateway) ? $this->getGateway() : $gateway;
* @access public
* @return string ビューディレクトリ
*/
- function getViewdir()
+ public function getViewdir()
{
return (empty($this->directory['view']) ? ($this->base . (empty($this->base) ? '' : '/')) : ($this->directory['view'] . "/"));
}
* @access public
* @return string テストケースを置くディレクトリ
*/
- function getTestdir()
+ public function getTestdir()
{
return (empty($this->directory['test']) ? ($this->base . (empty($this->base) ? '' : '/')) : ($this->directory['test'] . "/"));
}
* @param string $key ディレクトリタイプ("tmp", "template"...)
* @return string $keyに対応したアプリケーションディレクトリ(設定が無い場合はnull)
*/
- function getDirectory($key)
+ public function getDirectory($key)
{
if (isset($this->directory[$key]) == false) {
return null;
* @param string $key type
* @return string $key directory
*/
- function setDirectory($key, $value)
+ public function setDirectory($key, $value)
{
$this->directory[$key] = $value;
}
* @param string $key 拡張子タイプ("php", "tpl"...)
* @return string $keyに対応した拡張子(設定が無い場合はnull)
*/
- function getExt($key)
+ public function getExt($key)
{
if (isset($this->ext[$key]) == false) {
return null;
* @access public
* @return object Ethna_ClassFactory クラスファクトリオブジェクト
*/
- function getClassFactory()
+ public function getClassFactory()
{
return $this->class_factory;
}
* @access public
* @return object Ethna_ActionError アクションエラーオブジェクト
*/
- function getActionError()
+ public function getActionError()
{
return $this->class_factory->getObject('error');
}
* @access public
* @return object Ethna_Config 設定オブジェクト
*/
- function getConfig()
+ public function getConfig()
{
return $this->class_factory->getObject('config');
}
* @access public
* @return object Ethna_I18N i18nオブジェクト
*/
- function getI18N()
+ public function getI18N()
{
return $this->class_factory->getObject('i18n');
}
* @access public
* @return object Ethna_Logger ログオブジェクト
*/
- function getLogger()
+ public function getLogger()
{
return $this->class_factory->getObject('logger');
}
* @access public
* @return object Ethna_Session セッションオブジェクト
*/
- function getSession()
+ public function getSession()
{
return $this->class_factory->getObject('session');
}
* @access public
* @return object Ethna_AppSQL SQLオブジェクト
*/
- function getSQL()
+ public function getSQL()
{
return $this->class_factory->getObject('sql');
}
* @access public
* @return object Ethna_Plugin プラグインオブジェクト
*/
- function getPlugin()
+ public function getPlugin()
{
return $this->class_factory->getObject('plugin');
}
* @access public
* @return object Ethna_UrlHandler URLハンドラオブジェクト
*/
- function getUrlHandler()
+ public function getUrlHandler()
{
return $this->class_factory->getObject('url_handler');
}
* @return array マネージャ一覧
* @obsolete
*/
- function getManagerList()
+ public function getManagerList()
{
return $this->manager;
}
* @access public
* @return string 実行中のアクション名
*/
- function getCurrentActionName()
+ public function getCurrentActionName()
{
return $this->action_name;
}
* @access public
* @return string 実行中のXMLRPCメソッド名
*/
- function getXmlrpcMethodName()
+ public function getXmlrpcMethodName()
{
return $this->xmlrpc_method_name;
}
* (ロケール名は、ll_cc の形式。ll = 言語コード cc = 国コード)
* @see http://www.gnu.org/software/gettext/manual/html_node/Locale-Names.html
*/
- function getLanguage()
+ public function getLanguage()
{
return array($this->locale, $this->system_encoding, $this->client_encoding);
}
* @return string ロケール名(e.x ja_JP, en_US 等),
* (ロケール名は、ll_cc の形式。ll = 言語コード cc = 国コード)
*/
- function getLocale()
+ public function getLocale()
{
return $this->locale;
}
* @param $locale ロケール名(e.x ja_JP, en_US 等),
* (ロケール名は、ll_cc の形式。ll = 言語コード cc = 国コード)
*/
- function setLocale($locale)
+ public function setLocale($locale)
{
$this->locale = $locale;
$i18n = $this->getI18N();
* @access public
* @return string $client_encoding クライアントエンコーディング名
*/
- function getClientEncoding()
+ public function getClientEncoding()
{
return $this->client_encoding;
}
* @access public
* @param string $client_encoding クライアントエンコーディング名
*/
- function setClientEncoding($client_encoding)
+ public function setClientEncoding($client_encoding)
{
$this->client_encoding = $client_encoding;
$i18n = $this->getI18N();
*
* @access public
*/
- function getGateway()
+ public function getGateway()
{
return $this->gateway;
}
*
* @access public
*/
- function setGateway($gateway)
+ public function setGateway($gateway)
{
$this->gateway = $gateway;
}
* @param bool $enable_filter フィルタチェインを有効にするかどうか
* @return mixed 0:正常終了 Ethna_Error:エラー
*/
- function trigger($default_action_name = "", $fallback_action_name = "", $enable_filter = true)
+ public function trigger($default_action_name = "", $fallback_action_name = "", $enable_filter = true)
{
// フィルターの生成
if ($enable_filter) {
*
* @access private
*/
- function _trigger_SOAP()
+ private function _trigger_SOAP()
{
// SOAPエントリクラス
$gg = new Ethna_SOAP_GatewayGenerator();
* @access public
* @param object Ethna_Error エラーオブジェクト
*/
- function handleError(&$error)
+ public function handleError(&$error)
{
// ログ出力
list ($log_level, $dummy) = $this->logger->errorLevelToLogLevel($error->getLevel());
* @param int $code エラーコード
* @return string エラーメッセージ
*/
- function getErrorMessage($code)
+ public function getErrorMessage($code)
{
$message_list = $GLOBALS['_Ethna_error_message_list'];
for ($i = count($message_list)-1; $i >= 0; $i--) {
* @param mixed $default_action_name 指定のアクション名
* @return string 実行するアクション名
*/
- function _getActionName($default_action_name, $fallback_action_name)
+ private function _getActionName($default_action_name, $fallback_action_name)
{
// フォームから要求されたアクション名を取得する
$form_action_name = $this->_getActionName_Form();
* @access protected
* @return string フォームにより要求されたアクション名
*/
- function _getActionName_Form()
+ protected function _getActionName_Form()
{
if (isset($_SERVER['REQUEST_METHOD']) == false) {
return null;
* @param string $type hidden, url...
* @todo consider gateway
*/
- function getActionRequest($action, $type = "hidden")
+ public function getActionRequest($action, $type = "hidden")
{
$s = null;
if ($type == "hidden") {
* @param string $action_name アクション名
* @return array アクション定義
*/
- function _getAction($action_name, $gateway = null)
+ public function _getAction($action_name, $gateway = null)
{
$action = array();
$gateway = is_null($gateway) ? $this->getGateway() : $gateway;
* @param string $retval アクションクラスからの戻り値
* @return string 遷移先
*/
- function _sortForward($action_name, $retval)
+ protected function _sortForward($action_name, $retval)
{
return $retval;
}
/**
* フィルタチェインを生成する
*
- * @access private
+ * @access protected
*/
- function _createFilterChain()
+ protected function _createFilterChain()
{
$this->filter_chain = array();
foreach ($this->filter as $filter) {
* @param array $default_action_name 許可されているアクション名
* @return bool true:許可 false:不許可
*/
- function _isAcceptableActionName($action_name, $default_action_name)
+ private function _isAcceptableActionName($action_name, $default_action_name)
{
foreach (to_array($default_action_name) as $name) {
if ($action_name == $name) {
* @param string $action_name アクション名
* @return string アクションのフォームクラス名
*/
- function getActionFormName($action_name)
+ public function getActionFormName($action_name)
{
$action_obj = $this->_getAction($action_name);
if (is_null($action_obj)) {
* @param string $action_name アクション名
* @return string アクションフォーム名
*/
- function getDefaultFormClass($action_name, $gateway = null)
+ public function getDefaultFormClass($action_name, $gateway = null)
{
$gateway_prefix = $this->_getGatewayPrefix($gateway);
* @param string $class_name フォームクラス名
* @return string アクション名
*/
- function actionFormToName($class_name)
+ public function actionFormToName($class_name)
{
$prefix = sprintf("%s_Form_", $this->getAppId());
if (preg_match("/$prefix(.*)/", $class_name, $match) == 0) {
* @param string $action_name アクション名
* @return string form classが定義されるスクリプトのパス名
*/
- function getDefaultFormPath($action_name)
+ public function getDefaultFormPath($action_name)
{
return $this->getDefaultActionPath($action_name);
}
* @param string $action_name アクションの名称
* @return string アクションのクラス名
*/
- function getActionClassName($action_name)
+ public function getActionClassName($action_name)
{
$action_obj = $this->_getAction($action_name);
if ($action_obj == null) {
* @param string $action_name アクション名
* @return string アクションクラス名
*/
- function getDefaultActionClass($action_name, $gateway = null)
+ public function getDefaultActionClass($action_name, $gateway = null)
{
$gateway_prefix = $this->_getGatewayPrefix($gateway);
* @param string $class_name アクションクラス名
* @return string アクション名
*/
- function actionClassToName($class_name)
+ public function actionClassToName($class_name)
{
$prefix = sprintf("%s_Action_", $this->getAppId());
if (preg_match("/$prefix(.*)/", $class_name, $match) == 0) {
* @param string $action_name アクション名
* @return string アクションクラスが定義されるスクリプトのパス名
*/
- function getDefaultActionPath($action_name)
+ public function getDefaultActionPath($action_name)
{
$r = preg_replace('/_(.)/e', "'/' . strtoupper('\$1')", ucfirst($action_name)) . '.' . $this->getExt('php');
$this->logger->log(LOG_DEBUG, "default action path [%s]", $r);
* @param string $forward_name 遷移先の名称
* @return string view classのクラス名
*/
- function getViewClassName($forward_name)
+ public function getViewClassName($forward_name)
{
if ($forward_name == null) {
return null;
* @param string $forward_name forward名
* @return string view classクラス名
*/
- function getDefaultViewClass($forward_name, $gateway = null)
+ public function getDefaultViewClass($forward_name, $gateway = null)
{
$gateway_prefix = $this->_getGatewayPrefix($gateway);
* @param string $forward_name forward名
* @return string view classが定義されるスクリプトのパス名
*/
- function getDefaultViewPath($forward_name)
+ public function getDefaultViewPath($forward_name)
{
$r = preg_replace('/_(.)/e', "'/' . strtoupper('\$1')", ucfirst($forward_name)) . '.' . $this->getExt('php');
$this->logger->log(LOG_DEBUG, "default view path [%s]", $r);
* @param string $forward_name forward名
* @return string forwardパス名
*/
- function getDefaultForwardPath($forward_name)
+ public function getDefaultForwardPath($forward_name)
{
return str_replace('_', '/', $forward_name) . '.' . $this->ext['tpl'];
}
* @param string $forward_path テンプレートパス名
* @return string 遷移名
*/
- function forwardPathToName($forward_path)
+ public function forwardPathToName($forward_path)
{
$forward_path = preg_replace('/^\/+/', '', $forward_path);
$forward_path = preg_replace(sprintf('/\.%s$/', $this->getExt('tpl')), '', $forward_path);
* @param string $forward_name forward名
* @return string テンプレートファイルのパス名
*/
- function _getForwardPath($forward_name)
+ public function _getForwardPath($forward_name)
{
$forward_obj = null;
*/
public function getRenderer()
{
+ // if action is __ethna_info__, the renderer must be Smarty2
+ if ($this->action_name == '__ethna_info__') {
+ require_once ETHNA_BASE . '/class/Renderer/Smarty.php';
+ return new Ethna_Renderer_Smarty($this);
+ }
$_ret_object = $this->getTemplateEngine();
return $_ret_object;
}
protected function _ethnaManagerEnabledCheck($action_name)
{
if ($this->config->get('debug') == false
- && ($action_name == '__ethna_info__' || $action_name == '__ethna_unittest__')) {
+ && ($action_name == '__ethna_info__' || $action_name == '__ethna_unittest__'))
+ {
$this->ethnaManagerCheckErrorMsg($action_name);
exit(0);
}