本文整理汇总了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;未经允许,请勿转载。 |
请发表评论