当前位置: 首页>>代码示例>>PHP>>正文


PHP Ethna_Controller类代码示例

本文整理汇总了PHP中Ethna_Controller的典型用法代码示例。如果您正苦于以下问题:PHP Ethna_Controller类的具体用法?PHP Ethna_Controller怎么用?PHP Ethna_Controller使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Ethna_Controller类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: __construct

 /**
  *  Ethna_Filterのコンストラクタ
  *
  *  @access public
  *  @param  object  Ethna_Controller    &$controller    コントローラオブジェクト
  */
 public function __construct(&$controller)
 {
     // オブジェクトの設定
     $this->controller = $controller;
     $this->ctl = $this->controller;
     $this->config = $controller->getConfig();
     $this->logger = $this->controller->getLogger();
 }
开发者ID:t-f-m,项目名称:ethna,代码行数:14,代码来源:Filter.php

示例2: setUp

 function setUp()
 {
     $ctl = new Ethna_Controller();
     $ctl->setClientEncoding('EUC-JP');
     $ctl->setActionForm(new Ethna_ActionForm($ctl));
     $this->local_ctl = $ctl;
     $plugin = $ctl->getPlugin();
     $this->vld = $plugin->getPlugin('Validator', 'Strmincompat');
 }
开发者ID:hiroki-ta,项目名称:my.project,代码行数:9,代码来源:Plugin_Validator_Strmincompat_Test.php

示例3: _validateArgList

 /**
  *  check arguments
  *
  *  @access private
  */
 function _validateArgList()
 {
     $arg_list = array();
     if (count($this->arg_list) < 1) {
         return Ethna::raiseError('too few argments', 'usage');
     } else {
         if (count($this->arg_list) > 2) {
             return Ethna::raiseError('too many argments', 'usage');
         } else {
             if (count($this->arg_list) == 1) {
                 $arg_list[] = $this->arg_list[0];
                 $arg_list[] = getcwd();
             } else {
                 $arg_list = $this->arg_list;
             }
         }
     }
     $r = Ethna_Controller::checkAppId($arg_list[0]);
     if (Ethna::isError($r)) {
         return $r;
     }
     if (is_dir($arg_list[1]) == false) {
         return Ethna::raiseError("no such directory [{$arg_list[1]}]");
     }
     return $arg_list;
 }
开发者ID:BackupTheBerlios,项目名称:delphinus-svn,代码行数:31,代码来源:Ethna_Handle_AddProject.php

示例4: perform

 /**
  *  add action entry point
  *
  *  @access public
  */
 function perform()
 {
     $r = $this->_getopt(array('basedir=', 'skelfile=', 'gateway='));
     if (Ethna::isError($r)) {
         return $r;
     }
     list($opt_list, $arg_list) = $r;
     // action_name
     $action_name = array_shift($arg_list);
     if ($action_name == null) {
         return Ethna::raiseError('action name isn\'t set.', 'usage');
     }
     $r = Ethna_Controller::checkActionName($action_name);
     if (Ethna::isError($r)) {
         return $r;
     }
     // add entry point
     $ret = $this->_perform('EntryPoint', $action_name, $opt_list);
     if (Ethna::isError($ret) || $ret === false) {
         return $ret;
     }
     // add action (no effects if already exists.)
     $ret = $this->_perform('Action', $action_name, $opt_list);
     if (Ethna::isError($ret) || $ret === false) {
         return $ret;
     }
     return true;
 }
开发者ID:ethna,项目名称:ethna-cli,代码行数:33,代码来源:AddEntryPoint.php

示例5: Ethna_Error

 /**
  *	Ethna_Errorクラスのコンストラクタ
  *
  *	@access	public
  *	@param	int		$level				エラーレベル
  *	@param	string	$message			エラーメッセージ
  *	@param	int		$code				エラーコード
  *	@param	array	$userinfo			エラー追加情報(エラーコード以降の全ての引数)
  */
 function Ethna_Error($message = null, $code = null, $mode = null, $options = null)
 {
     $controller =& Ethna_Controller::getInstance();
     if ($controller !== null) {
         $this->i18n =& $controller->getI18N();
     }
     // $options以降の引数->$userinfo
     if (func_num_args() > 4) {
         $userinfo = array_slice(func_get_args(), 4);
         if (count($userinfo) == 1) {
             if (is_array($userinfo[0])) {
                 $userinfo = $userinfo[0];
             } else {
                 if (is_null($userinfo[0])) {
                     $userinfo = array();
                 }
             }
         }
     } else {
         $userinfo = array();
     }
     // メッセージ補正処理
     if (is_null($message)) {
         // $codeからメッセージを取得する
         $message = $controller->getErrorMessage($code);
         if (is_null($message)) {
             $message = 'unkown error';
         }
     }
     parent::PEAR_Error($message, $code, $mode, $options, $userinfo);
     // Ethnaフレームワークのエラーハンドラ(PEAR_Errorのコールバックとは異なる)
     Ethna::handleError($this);
 }
开发者ID:BackupTheBerlios,项目名称:delphinus-svn,代码行数:42,代码来源:Ethna_Error.php

示例6: getInstance

 /**
  *  Cachemaanger プラグインのインスタンスを取得する
  *
  *  @param  string  $type   キャッシュタイプ('localfile', 'memcache'...)
  *  @return object  Ethna_Plugin_CacheMaanger   Cachemanager プラグインのインスタンス
  *  @access public
  */
 public static function getInstance($type)
 {
     $controller = Ethna_Controller::getInstance();
     $plugin = $controller->getPlugin();
     $cache_manager = $plugin->getPlugin('Cachemanager', ucfirst($type));
     return $cache_manager;
 }
开发者ID:t-f-m,项目名称:ethna,代码行数:14,代码来源:CacheManager.php

示例7: preforward

 /**
  *  遷移前処理
  *
  *  @access public
  */
 function preforward()
 {
     // タイムアウトしないように変更
     $max_execution_time = ini_get('max_execution_time');
     set_time_limit(0);
     if (!headers_sent()) {
         // キャッシュしない
         header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");
         header("Last-Modified: " . gmdate("D, d M Y H:i:s \\G\\M\\T"));
         header("Cache-Control: no-store, no-cache, must-revalidate");
         header("Cache-Control: post-check=0, pre-check=0", false);
         header("Pragma: no-cache");
     }
     $ctl =& Ethna_Controller::getInstance();
     // cores
     $this->af->setApp('app_id', $ctl->getAppId());
     $this->af->setApp('ethna_version', ETHNA_VERSION);
     // include
     $inc = sprintf("%s/%s_UnitTestManager.php", $ctl->getDirectory('app'), $ctl->getAppId());
     @(include_once "{$inc}");
     // run
     $r = sprintf("%s_UnitTestManager", $ctl->getAppId());
     $ut =& new $r($this->backend);
     list($report, $result) = $ut->run();
     // result
     $this->af->setApp('report', $report);
     $this->af->setApp('result', $result);
     // タイムアウトを元に戻す
     set_time_limit($max_execution_time);
 }
开发者ID:BackupTheBerlios,项目名称:delphinus-svn,代码行数:35,代码来源:Ethna_View_UnitTest.php

示例8: log

 /**
  *  ログを出力する
  *
  *  @access public
  *  @param  int     $level      ログレベル(LOG_DEBUG, LOG_NOTICE...)
  *  @param  string  $message    ログメッセージ(+引数)
  */
 function log($level, $message)
 {
     $c = Ethna_Controller::getInstance();
     $prefix = $this->ident;
     if (array_key_exists("pid", $this->option)) {
         $prefix .= sprintf('[%d]', getmypid());
     }
     $prefix .= sprintf($c->getGateway() != GATEWAY_WWW ? '(%s): ' : '(<b>%s</b>): ', $this->_getLogLevelName($level));
     if (array_key_exists("function", $this->option) || array_key_exists("pos", $this->option)) {
         $tmp = "";
         $bt = $this->_getBacktrace();
         if ($bt && array_key_exists("function", $this->option) && $bt['function']) {
             $tmp .= $bt['function'];
         }
         if ($bt && array_key_exists("pos", $this->option) && $bt['pos']) {
             $tmp .= $tmp ? sprintf('(%s)', $bt['pos']) : $bt['pos'];
         }
         if ($tmp) {
             $prefix .= $tmp . ": ";
         }
     }
     $br = $c->getGateway() != GATEWAY_WWW ? "" : "<br />";
     echo $prefix . $message . $br . "\n";
     return $prefix . $message;
 }
开发者ID:t-f-m,项目名称:ethna,代码行数:32,代码来源:Echo.php

示例9: perform

 /**
  *  add view
  *
  *  @access public
  */
 function perform()
 {
     $r =& $this->_getopt(array('basedir=', 'skelfile=', 'template'));
     if (Ethna::isError($r)) {
         return $r;
     }
     list($opt_list, $arg_list) = $r;
     // view_name
     $view_name = array_shift($arg_list);
     if ($view_name == null) {
         return Ethna::raiseError('view name isn\'t set.', 'usage');
     }
     $r =& Ethna_Controller::checkViewName($view_name);
     if (Ethna::isError($r)) {
         return $r;
     }
     // add view
     $ret =& $this->_perform('View', $view_name, $opt_list);
     if (Ethna::isError($ret) || $ret === false) {
         return $ret;
     }
     // add template
     if (isset($opt_list['template'])) {
         $ret =& $this->_perform('Template', $view_name, $opt_list);
         if (Ethna::isError($ret) || $ret === false) {
             return $ret;
         }
     }
     return true;
 }
开发者ID:hiroki-namekawa,项目名称:test-upr,代码行数:35,代码来源:Ethna_Plugin_Handle_AddView.php

示例10: foreach

 /**
  * (non-PHPdoc)
  * @see class/Ethna_Controller#_getActionName_Form()
  */
 function _getActionName_Form()
 {
     if (isset($_SERVER['REQUEST_METHOD']) == false) {
         return null;
     }
     if (strcasecmp($_SERVER['REQUEST_METHOD'], 'post') == 0) {
         $http_vars =& $_POST;
     } else {
         $http_vars =& $_GET;
     }
     foreach ($http_vars as $name => $value) {
         if ($value == "" || strncmp($name, 'action_', 7) != 0) {
             continue;
         }
         // オリジナル方式 http://hostname/?action_action_name
         return parent::_getActionName_Form();
     }
     // かっこいい http://hostname/action/name/ 方式
     if (!empty($_SERVER['REDIRECT_URL'])) {
         $redirect_url = $_SERVER['REDIRECT_URL'];
         $action_name = str_replace('/', '_', $redirect_url);
         return trim($action_name, '_');
     }
     // まあ悪くはない http://hostname/?action=action_name 方式
     if (array_key_exists('action', $http_vars)) {
         return $http_vars['action'];
     }
 }
开发者ID:nulltask,项目名称:Aether,代码行数:32,代码来源:Aether_Controller.php

示例11: setUp

 function setUp()
 {
     $ctl = Ethna_Controller::getInstance();
     $plugin = $ctl->getPlugin();
     $this->vld = $plugin->getPlugin('Validator', 'Strmax');
     $this->ctl = $ctl;
 }
开发者ID:hiroki-ta,项目名称:my.project,代码行数:7,代码来源:Plugin_Validator_Strmax_Test.php

示例12: perform

 /**
  *  add action
  *
  *  @access public
  */
 function perform()
 {
     //
     //  '-w[with-unittest]' and '-u[unittestskel]' option
     //  are not intuisive, but I dare to define them because
     //  -t and -s option are reserved by add-[action|view] handle
     //  and Ethna_Getopt cannot interpret two-character option.
     //
     $r = $this->_getopt(array('basedir=', 'skelfile=', 'gateway=', 'with-unittest', 'unittestskel='));
     if (Ethna::isError($r)) {
         return $r;
     }
     list($opt_list, $arg_list) = $r;
     // action_name
     $action_name = array_shift($arg_list);
     if ($action_name == null) {
         return Ethna::raiseError('action name isn\'t set.', 'usage');
     }
     $r =& Ethna_Controller::checkActionName($action_name);
     if (Ethna::isError($r)) {
         return $r;
     }
     $ret =& $this->_perform('Action', $action_name, $opt_list);
     return $ret;
 }
开发者ID:weiweiabc109,项目名称:test_project1,代码行数:30,代码来源:Ethna_Plugin_Handle_AddAction.php

示例13: smarty_modifier_i18n

/**
 *  smarty modifier:i18nフィルタ
 *
 *  sample:
 *  <code>
 *  {"you have %d apples"|i18n:$n}
 *  </code>
 *  <code>
 *  あなたはリンゴを3つ持っています。
 *  </code>
 *
 *  @param  string  $string i18n処理対象の文字列
 *  @param  mixed   $val    任意のパラメータ
 *  @return string  ロケールに対応したメッセージ
 */
function smarty_modifier_i18n($string, $arg1 = null)
{
    $c = Ethna_Controller::getInstance();
    $i18n = $c->getI18N();
    $msg = $i18n->get($string);
    return sprintf($msg, $arg1);
}
开发者ID:khsk,项目名称:ethnam,代码行数:22,代码来源:modifier.i18n.php

示例14: __construct

 /**
  *  Ethna_UnitTestManagerのコンストラクタ
  *
  *  @access public
  *  @param  object  Ethna_Backend   &$backend   Ethna_Backendオブジェクト
  */
 public function __construct($backend)
 {
     parent::__construct($backend);
     $this->ctl = Ethna_Controller::getInstance();
     $this->class_factory = $this->ctl->getClassFactory();
     $this->testcase = array_merge($this->testcase, $this->_getTestCaseList());
 }
开发者ID:riaf,项目名称:pastit,代码行数:13,代码来源:UnitTestManager.php

示例15: smarty_modifier_wordwrap_i18n

/**
 *  smarty modifier:文字列のwordwrap処理
 *
 *  sample:
 *  <code>
 *  {"あいうaえaおaかきaaaくけこ"|wordwrap_i18n:8}
 *  </code>
 *  <code>
 *  あいうa
 *  えaおaか
 *  きaaaく
 *  けこ
 *  </code>
 *
 *  @param  string  $string wordwrapする文字列
 *  @param  string  $break  改行文字
 *  @param  int     $width  wordwrap幅(半角$width文字でwordwrapする)
 *  @param  int     $indent インデント幅(半角$indent文字)
 *                          数値を指定するが、はじめの行はインデントされない
 *  @return string  wordwrap処理された文字列
 */
function smarty_modifier_wordwrap_i18n($string, $width, $break = "\n", $indent = 0)
{
    $ctl = Ethna_Controller::getInstance();
    $client_enc = $ctl->getClientEncoding();
    //    いわゆる半角を単位にしてwrapする位置を測るため、いったん
    //    EUC_JP に変換する
    $euc_string = mb_convert_encoding($string, 'EUC_JP', $client_enc);
    $r = "";
    $i = "{$break}" . str_repeat(" ", $indent);
    $tmp = $euc_string;
    do {
        $n = strpos($tmp, $break);
        if ($n !== false && $n < $width) {
            $s = substr($tmp, 0, $n);
            $r .= $s . $i;
            $tmp = substr($tmp, strlen($s) + strlen($break));
            continue;
        }
        $s = mb_strimwidth($tmp, 0, $width, "", 'EUC_JP');
        $tmp = substr($tmp, strlen($s));
        $r .= $s . (strlen($tmp) > 0 ? $i : '');
    } while (strlen($tmp) > 0);
    //    最後に、クライアントエンコーディングに変換
    $r = mb_convert_encoding($r, $client_enc, 'EUC_JP');
    return $r;
}
开发者ID:t-f-m,项目名称:ethna,代码行数:47,代码来源:modifier.wordwrap_i18n.php


注:本文中的Ethna_Controller类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。