本文整理汇总了PHP中Yaf_Application::app方法的典型用法代码示例。如果您正苦于以下问题:PHP Yaf_Application::app方法的具体用法?PHP Yaf_Application::app怎么用?PHP Yaf_Application::app使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Yaf_Application
的用法示例。
在下文中一共展示了Yaf_Application::app方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _init
public function _init(Yaf_Dispatcher $dispatcher)
{
// auto start session
Yaf_Session::getInstance()->start();
// auto load config data
$this->config = Yaf_Application::app()->getConfig();
Yaf_Registry::set('Config', $this->config);
//auto load redis
$redis = new Redis();
$redis->connect($this->config->redis->host, $this->config->redis->port, $this->config->redis->timeout, $this->config->redis->reserved, $this->config->redis->interval);
Yaf_Registry::set('Redis', $redis);
//auto load mysql
Yaf_Registry::set('DbRead', new Db('mysql:host=' . $this->config->mysql->read->host . ';dbname=' . $this->config->mysql->read->dbname . ';charset=' . $this->config->mysql->read->charset . ';port=' . $this->config->mysql->read->port . '', $this->config->mysql->read->username, $this->config->mysql->read->password));
Yaf_Registry::set('DbWrite', new Db('mysql:host=' . $this->config->mysql->write->host . ';dbname=' . $this->config->mysql->write->dbname . ';charset=' . $this->config->mysql->write->charset . ';port=' . $this->config->mysql->write->port . '', $this->config->mysql->write->username, $this->config->mysql->write->password));
// auto load model
Yaf_Registry::set('I18n', new I18nModel($redis, $this->config->application->name, 'cn'));
Yaf_Registry::set('Cache', new CacheModel($redis, $this->config->application->name));
// auto load plugin
$dispatcher->registerPlugin(new GlobalPlugin());
// auto save request
$request = $dispatcher->getRequest();
// auto set ajax is no render
if ($request->isXmlHttpRequest()) {
$dispatcher->autoRender(false);
}
// auto set http protocol to action except http get protocol
if (!$request->isGet()) {
$dispatcher->setDefaultAction($request->getMethod());
}
}
示例2: errorAction
function errorAction($exception)
{
// fallback views path to global when error occured in modules.
$config = Yaf_Application::app()->getConfig();
$this->getView()->setScriptPath($config->application->directory . "/views");
$this->getView()->e = $exception;
$this->getView()->e_class = get_class($exception);
$this->getView()->e_string_trace = $exception->getTraceAsString();
$params = $this->getRequest()->getParams();
unset($params['exception']);
$this->getView()->params = array_merge(array(), $params, $this->getRequest()->getPost(), $this->getRequest()->getQuery());
switch ($exception->getCode()) {
case YAF_ERR_AUTOLOAD_FAILED:
case YAF_ERR_NOTFOUND_MODULE:
case YAF_ERR_NOTFOUND_CONTROLLER:
case YAF_ERR_NOTFOUND_ACTION:
header('HTTP/1.1 404 Not Found');
break;
case 401:
$this->forward('Index', 'application', 'accessDenied');
header('HTTP/1.1 401 Unauthorized');
Yaf_Dispatcher::getInstance()->disableView();
echo $this->render('accessdenied');
break;
default:
//header("HTTP/1.1 500 Internal Server Error");
core::dump($exception);
break;
}
}
示例3: _initConfig
/**
* 把配置存到注册表
*/
function _initConfig()
{
Yaf_Registry::set("config", $config = Yaf_Application::app()->getConfig());
define('PATH_APP', $config->application->directory);
define('PATH_TPL', PATH_APP . '/views');
define('USER_IP', Tool_Fnc::realip());
}
示例4: connect
/**
* Connect to MySQL [Support read/write splitting]
*
* @param string => use default DB if parameter is not specified !
* @return NULL
*/
private function connect($type = 'WRITE')
{
$config = Yaf_Application::app()->getConfig();
$db = $config['Default'];
$driver = $config['TYPE'];
$host = $config[$type . '_HOST'];
$port = $config[$type . '_PORT'];
$user = $config[$type . '_USER'];
$pswd = $config[$type . '_PSWD'];
if (!$port) {
$port = 3306;
}
$dsn = $driver . ':host=' . $host . ';port=' . $port . ';dbname=' . $db;
try {
if (!self::$obj[$type]) {
self::$conn = self::$obj[$type] = new PDO($dsn, $user, $pswd);
self::$conn->query('SET NAMES utf8');
unset($db, $driver, $host, $port, $user, $pswd, $dsn);
}
} catch (PDOException $e) {
if (ENV == 'DEV') {
Helper::raiseError(debug_backtrace(), $e->getMessage());
} else {
file_put_contents($this->logFile, $e->getMessage() . PHP_EOL, FILE_APPEND);
}
}
}
示例5: _generateShare
private function _generateShare($url)
{
$config = Yaf_Application::app()->getConfig();
$appID = $config['wx_appID'];
$appSecret = $config['wx_appSecret'];
$share['appID'] = $appID;
$share['timestamp'] = CUR_TIMESTAMP;
$share['nonceStr'] = 'Wu5WZYThz1wzccnX';
$share['link'] = $url;
// 验证 ticket 是否失效
$m_ticket = $this->load('Ticket');
$ticket = $m_ticket->SelectOne();
$gap = CUR_TIMESTAMP - $ticket['addTime'];
if (!$ticket['ticket'] || $gap > 7200) {
// Get token
$token = $this->_getToken($appID, $appSecret);
// Get ticket
$ticket = $this->_getTicket($token);
if ($ticket) {
$jsapi_ticket = $m['ticket'] = $ticket;
$m['addTime'] = CUR_TIMESTAMP;
$where = 1;
$m_ticket->Delete($where);
$m_ticket->Insert($m);
}
} else {
$jsapi_ticket = $ticket['ticket'];
}
// Get signature
$string1 = 'jsapi_ticket=' . $jsapi_ticket . '&noncestr=' . $share['nonceStr'];
$string1 .= '×tamp=' . $share['timestamp'] . '&url=' . $url;
$share['signature'] = sha1($string1);
return $share;
}
示例6: routerShutdown
public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
{
//pr($request);
$modules = Yaf_Application::app()->getModules();
$uri = $request->getRequestUri();
$uriInfo = explode('/', $uri);
$module = ucfirst($uriInfo[1]);
$controller = $uriInfo[2];
$action = $uriInfo[3];
if (!in_array($module, $modules)) {
$module = 'index';
$controller = $uriInfo[1];
$action = $uriInfo[2];
}
$request->setModuleName(ucfirst($module));
if (!$controller) {
$controller = 'index';
}
$request->setControllerName(ucfirst($controller));
if (!$action) {
$action = 'index';
}
$request->setActionName($action);
//pr($request);
}
示例7: __construct
public function __construct()
{
$config = Yaf_Application::app()->getConfig();
Yaf_Loader::import('L_Wechat');
$options = array('token' => self::WX_TOKEN, 'appid' => $config['wx_appID'], 'appsecret' => $config['wx_appsecret'], 'access_token' => $config['wx_access_token'], 'expires' => $config['wx_expires']);
$this->wxSDK = new L_Wechat($options);
}
示例8: _initPlugin
public function _initPlugin(Yaf_Dispatcher $dispatcher)
{
// set include paths of the system.
set_include_path(get_include_path() . PATH_SEPARATOR . Yaf_Loader::getInstance()->getLibraryPath());
/* register a billrun plugin system from config */
$config = Yaf_Application::app()->getConfig();
if (isset($config->plugins)) {
$plugins = $config->plugins->toArray();
$dispatcher = Billrun_Dispatcher::getInstance();
foreach ($plugins as $plugin) {
Billrun_Log::getInstance()->log("Load plugin " . $plugin, Zend_log::DEBUG);
$dispatcher->attach(new $plugin());
}
}
if (isset($config->chains)) {
$chains = $config->chains->toArray();
$dispatcherChain = Billrun_Dispatcher::getInstance(array('type' => 'chain'));
foreach ($chains as $chain) {
Billrun_Log::getInstance()->log("Load plugin " . $chain, Zend_log::DEBUG);
$dispatcherChain->attach(new $chain());
}
}
// make the base action auto load (required by controllers actions)
Yaf_Loader::getInstance(APPLICATION_PATH . '/application/helpers')->registerLocalNamespace('Action');
}
示例9: __construct
public function __construct()
{
$config = Yaf_Application::app()->getConfig();
Yaf_Loader::import('L_Wechat.class.php');
$options = array('token' => $config['wx_token'], 'appid' => $config['wx_appID'], 'appsecret' => $config['wx_appSecret']);
$this->wxSDK = new L_Wechat($options);
}
示例10: callbackAction
public function callbackAction()
{
$mediaqqmodel = new Media_QQModel($this->_basemodel, $this->_qqparam);
$app_id = isset($_REQUEST['app_id']) ? trim($_REQUEST['app_id']) : '69948denMVMoBujYGLSFGUHbkvP7E3';
$mediaqq = $mediaqqmodel->getApp($app_id);
$APPID = $mediaqq['APPID'] && $mediaqq['APPKEY'] ? $mediaqq['APPID'] : $mediaqq['def_APPID'];
$APPKEY = $mediaqq['APPID'] && $mediaqq['APPKEY'] ? $mediaqq['APPKEY'] : $mediaqq['def_APPKEY'];
$redirect_uri = $this->_qqparam['redirect_uri'] . '?app_id=' . $mediaqq['app_id'];
$state = md5($mediaqq['app_key']);
$qcinit = new QQAPI_YafQQConnetAPI();
$qc = new QC();
$access_token = $qc->qq_callback($APPID, $redirect_uri, $APPKEY);
echo $access_token . '----------';
$openid = $qc->get_openid($access_token);
echo $openid . '---------';
$qqUser = $qc->my_get_userinfo($access_token, $openid, $APPID);
if ($qqUser && $qqUser->nickname) {
$media_user_id = $mediaqqmodel->saveUser($openid, $qqUser, $APPID);
if ($media_user_id) {
$usertokentime = date('Y-m-d H:i:s', time() + Yaf_Application::app()->getConfig()->application->usertokentime);
$login_token = $mediaqqmodel->saveAccessToken($app_id, $access_token, $openid, $media_user_id, $usertokentime);
if ($login_token) {
$url = $mediaqq['token_url'];
$concat = '&';
if (strpos($url, '?') === false) {
$concat = '?';
}
$url .= $concat . "token={$login_token}";
header("Location:{$url}");
}
}
}
exit;
}
示例11: _initSmarty
public function _initSmarty(Yaf_Dispatcher $dispatcher)
{
/* init smarty view engine */
Yaf_Loader::import("Smarty/Adapter.php");
$smarty = new Smarty_Adapter(null, Yaf_Application::app()->getConfig()->smarty);
$dispatcher->setView($smarty);
}
示例12: _initDefaultDbAdapter
public function _initDefaultDbAdapter()
{
//新建对象
$dbAdapter = new Zend\Db\Adapter\Adapter(Yaf_Application::app()->getConfig()->mysql->write->toArray());
//设为全局变量
Yaf_Registry::set("db", $dbAdapter);
}
示例13: _initConfig
public function _initConfig()
{
//把配置保存起来
$this->arrConfig = Yaf_Application::app()->getConfig();
$arrConfig = Yaf_Application::app()->getConfig();
Yaf_Registry::set('config', $arrConfig);
}
示例14: routerShutdown
public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
{
$modules = Yaf_Application::app()->getModules();
$uri = $request->getRequestUri();
$uriInfo = explode('/', $uri);
$module = ucfirst($uriInfo[1]);
if (!in_array($module, $modules)) {
$module = 'index';
// 由于 YAF 源码只不支持大小写混写的控制器和 Action名, 这里来满足
if ($request->controller) {
if (strtoupper($request->controller) == strtoupper($uriInfo[1])) {
$controller = ucfirst($uriInfo[1]);
$request->setControllerName($controller);
}
}
if ($request->action) {
if (strtoupper($request->action) == strtoupper($uriInfo[2])) {
$request->setActionName($uriInfo[2]);
}
}
} else {
$request->setModuleName($module);
$request->setControllerName(ucfirst($uriInfo[2]));
$action = $uriInfo[3];
if (!$action) {
$action = 'index';
}
$request->setActionName($action);
}
//pr($request);
}
示例15: init
/**
* 初始化函数
* 1、时区设置
* 2、数据库连接配置
*/
public function init()
{
header("Content-type: application/json; charset=utf-8");
ini_set('date.timezone', 'Asia/Shanghai');
//获取数据库连接信息
$this->_db = Base_Db::getInstance(Yaf_Application::app()->getConfig()->application->db->toArray());
$this->_basemodel = new BasedbModel($this->_db);
}