• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP Ethna_Controller类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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


示例16: Ethna_UnitTestManager

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


示例17: perform

 /**
  *  add project:)
  *
  *  @access public
  */
 function perform()
 {
     $r = $this->_getopt(array('basedir='));
     if (Ethna::isError($r)) {
         return $r;
     }
     list($opt_list, $arg_list) = $r;
     // app_id
     $app_id = array_shift($arg_list);
     if ($app_id == null) {
         return Ethna::raiseError('project id isn\'t set.', 'usage');
     }
     $r = Ethna_Controller::checkAppId($app_id);
     if (Ethna::isError($r)) {
         return $r;
     }
     // basedir
     if (isset($opt_list['basedir'])) {
         $basedir = realpath(end($opt_list['basedir']));
     } else {
         $basedir = getcwd();
     }
     $r = Ethna_Generator::generate('Project', null, $app_id, $basedir);
     if (Ethna::isError($r)) {
         printf("error occurred while generating skelton. please see also error messages given above\n\n");
         return $r;
     }
     printf("\nproject skelton for [%s] is successfully generated at [%s]\n\n", $app_id, $basedir);
     return true;
 }
开发者ID:hiroki-namekawa,项目名称:test-upr,代码行数:35,代码来源:Ethna_Plugin_Handle_AddProject.php


示例18: smarty_function_form_name

/**
 *  smarty function:フォーム表示名生成
 *
 *  @param  string  $name   フォーム項目名
 */
function smarty_function_form_name($params, &$smarty)
{
    // name
    if (isset($params['name'])) {
        $name = $params['name'];
        unset($params['name']);
    } else {
        return null;
    }
    // view object
    $c =& Ethna_Controller::getInstance();
    $view =& $c->getView();
    if ($view === null) {
        return null;
    }
    // action
    $action = null;
    if (isset($params['action'])) {
        $action = $params['action'];
        unset($params['action']);
    } else {
        for ($i = count($smarty->_tag_stack); $i >= 0; --$i) {
            if ($smarty->_tag_stack[$i][0] === 'form') {
                if (isset($smarty->_tag_stack[$i][1]['ethna_action'])) {
                    $action = $smarty->_tag_stack[$i][1]['ethna_action'];
                }
                break;
            }
        }
    }
    if ($action !== null) {
        $view->addActionFormHelper($action);
    }
    return $view->getFormName($name, $action, $params);
}
开发者ID:weiweiabc109,项目名称:test_project1,代码行数:40,代码来源:function.form_name.php


示例19: ucfirst

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


示例20: testCachemanagerLocalfile

 function testCachemanagerLocalfile()
 {
     $ctl =& Ethna_Controller::getInstance();
     $plugin =& $ctl->getPlugin();
     $cm = $plugin->getPlugin('Cachemanager', 'Localfile');
     // 文字列のキャッシュ
     $string_key = 'string_key';
     $string_value = "cache\ncontent";
     $cm->set($string_key, $string_value, mktime(0, 0, 0, 7, 1, 2000));
     $cache_string = $cm->get($string_key);
     $this->assertTrue($cm->isCached($string_key));
     $this->assertEqual(mktime(0, 0, 0, 7, 1, 2000), $cm->getLastModified($string_key));
     $this->assertTrue($string_value, $cache_string);
     // 整数のキャッシュ + namespace
     $int_key = 'int_key';
     $int_value = 777;
     $namespace = 'test';
     $cm->set($int_key, $int_value, mktime(0, 0, 0, 7, 1, 2000), $namespace);
     $cache_int = $cm->get($int_key, mktime(0, 0, 0, 7, 1, 2000), $namespace);
     $this->assertTrue($cm->isCached($int_key, mktime(0, 0, 0, 7, 1, 2000), $namespace));
     $this->assertTrue($int_value, $cache_int);
     // オブジェクトのキャッシュ
     $object_key = 'object_key';
     $object_value =& $cm;
     $cm->set($object_key, $object_value);
     $this->assertTrue($cm->isCached($object_key));
     // キャッシュされたインスタンス
     $cache_object = $cm->get($object_key);
     $this->assertTrue($string_value, $cache_object->get($string_key));
     // キャッシュのクリアをテスト
     $cm->clear($object_key);
     $this->assertFalse($cm->isCached($object_key));
     // キャッシュされていないのに呼び出そうとした場合
     $nocache_key = 'nocache_key';
     $cm->clear($nocache_key);
     $pear_error = $cm->get($nocache_key);
     $this->assertEqual(E_CACHE_NO_VALUE, $pear_error->getCode());
     $this->assertEqual('fopen failed', $pear_error->getMessage());
     // ファイルに読み込み権限がない場合
     Ethna_Util::chmod($cm->_getCacheFile(null, $string_key), 0222);
     $pear_error = $cm->get($string_key);
     $this->assertEqual(E_CACHE_NO_VALUE, $pear_error->getCode());
     $this->assertEqual('fopen failed', $pear_error->getMessage());
     Ethna_Util::chmod($cm->_getCacheFile(null, $string_key), 0666);
     // lifetime切れの場合
     $pear_error = $cm->get($string_key, 1);
     $this->assertEqual(E_CACHE_EXPIRED, $pear_error->getCode());
     $this->assertEqual('fopen failed', $pear_error->getMessage());
     // ディレクトリ名と同じファイルがあってディレクトリが作成できない場合
     $tmp_key = 'tmpkey';
     $tmp_dirname = $cm->_getCacheDir(null, $tmp_key);
     Ethna_Util::mkdir(dirname($tmp_dirname), 0777);
     $tmp_file = fopen($tmp_dirname, 'w');
     fclose($tmp_file);
     $pear_error = $cm->set($tmp_key, $string_value);
     $this->assertEqual(E_USER_WARNING, $pear_error->getCode());
     $this->assertEqual("mkdir({$tmp_dirname}) failed", $pear_error->getMessage());
     $this->rm($cm->backend->getTmpdir());
 }
开发者ID:hiroki-namekawa,项目名称:test-upr,代码行数:59,代码来源:Ethna_Plugin_Cachemanager_Localfile_Test.php



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP Ethna_Util类代码示例发布时间:2022-05-23
下一篇:
PHP Ethna类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap