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


PHP Ethna_Controller::getInstance方法代码示例

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


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

示例1: __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

示例2: 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

示例3: 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

示例4: 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

示例5: 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

示例6: 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

示例7: 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

示例8: 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

示例9: 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

示例10: 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

示例11: 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

示例12: 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

示例13: smarty_block_form

/**
 *  smarty block:フォームタグ出力プラグイン
 */
function smarty_block_form($params, $content, &$smarty, &$repeat)
{
    if ($repeat) {
        // {form}: ブロック内部に進む前の処理
        // default
        if (isset($params['default']) === false) {
            // 指定なしのときは $form を使う
            $c = Ethna_Controller::getInstance();
            $af = $c->getActionForm();
            // c.f. http://smarty.php.net/manual/en/plugins.block.functions.php
            $smarty->_tag_stack[count($smarty->_tag_stack) - 1][1]['default'] = $af->getArray(false);
        }
        // 動的フォームヘルパを呼ぶ
        if (isset($params['ethna_action'])) {
            $ethna_action = $params['ethna_action'];
            $c = Ethna_Controller::getInstance();
            $view = $c->getView();
            $view->addActionFormHelper($ethna_action, true);
        }
        // ここで返す値は出力されない
        return '';
    } else {
        // {/form}: ブロック全体を出力
        $c = Ethna_Controller::getInstance();
        $view = $c->getView();
        if ($view === null) {
            return null;
        }
        // ethna_action
        if (isset($params['ethna_action'])) {
            $ethna_action = $params['ethna_action'];
            unset($params['ethna_action']);
            $view->addActionFormHelper($ethna_action);
            $hidden = $c->getActionRequest($ethna_action, 'hidden');
            $content = $hidden . $content;
            //デバグ用に、送信先のアクション名を表示する
            //超絶便利。これのおかげて開発効率だいぶあがった。
            if ($c->getConfig()->get('showFormActionName')) {
                echo "[" . $ethna_action . "]";
            }
        }
        // enctype の略称対応
        if (isset($params['enctype'])) {
            if ($params['enctype'] == 'file' || $params['enctype'] == 'multipart') {
                $params['enctype'] = 'multipart/form-data';
            } else {
                if ($params['enctype'] == 'url') {
                    $params['enctype'] = 'application/x-www-form-urlencoded';
                }
            }
        }
        // defaultはもう不要
        if (isset($params['default'])) {
            unset($params['default']);
        }
        // $contentを囲む<form>ブロック全体を出力
        return $view->getFormBlock($content, $params);
    }
}
开发者ID:khsk,项目名称:ethnam,代码行数:62,代码来源:block.form.php

示例14: testMakeInstance

 function testMakeInstance()
 {
     $ctl = Ethna_Controller::getInstance();
     $plugin = $ctl->getPlugin();
     $this->csrf = $plugin->getPlugin('Csrf', 'Session');
     $this->assertTrue(is_object($this->csrf), 'getPlugin failed');
     $this->csrf->session = new Ethna_Session_Dummy($ctl, $ctl->appid);
 }
开发者ID:riaf,项目名称:ethna,代码行数:8,代码来源:Plugin_Csrf_Session_Test.php

示例15: setUp

 function setUp()
 {
     $ctl = Ethna_Controller::getInstance();
     $plugin = $ctl->getPlugin();
     $config = $ctl->getConfig();
     $config->set('plugin', array('cachemanager' => array('memcache' => array('host' => 'localhost', 'port' => 11211, 'use_pconnect' => false, 'retry' => 4, 'timeout' => 5, 'info' => array('namespace1' => array(0 => array('host' => 'cache1.example.com', 'port' => 11211), 1 => array('host' => 'cache2.example.com', 'port' => 11211)))))));
     $this->cm = $plugin->getPlugin('Cachemanager', 'Memcache');
 }
开发者ID:riaf,项目名称:ethna,代码行数:8,代码来源:Plugin_Cachemanager_Memcache_Test.php


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