/** * @runInSeparateProcess */ public function testCase02() { if (!defined('YAF_MODE')) { //@todo for some reason this need to b true to pass the test Yaf_G::iniSet('yaf.use_spl_autoload', true); Yaf_G::iniSet('yaf.lowcase_path', false); } else { ini_set('yaf.use_spl_autoload', false); ini_set('yaf.lowcase_path', false); } $this->assertEquals('CLI', $this->request->getMethod()); $this->assertEquals('index', $this->request->getModuleName()); $this->assertEquals('dummy', $this->request->getControllerName()); $this->assertEquals('index', $this->request->getActionName()); $this->assertFalse($this->request->isDispatched()); $this->assertTrue($this->request->isRouted()); $this->request->setParam('name', 'Laruence'); $this->assertEquals('Laruence', $this->request->getParam('name')); $this->assertNull($this->request->getParam('non-exists')); $this->assertTrue($this->request->isCli()); $app = new Yaf_Application(array("application" => array("directory" => dirname(__FILE__)))); try { $app->getDispatcher()->dispatch($this->request); $this->fail('An Yaf_Exception_LoadFailed_Controller ' . 'exception was not throwed'); } catch (Exception $e) { $this->assertEquals('Could not find controller script ' . dirname(__FILE__) . '/controllers/Dummy.php', $e->getMessage()); } }
function rpcserver_call(swoole_process $worker) { define('APPLICATION_PATH', dirname(dirname(__DIR__)) . "/application"); define('THRIFT_DIR_PATH', dirname(APPLICATION_PATH) . "/thrift"); require_once THRIFT_DIR_PATH . "/Thrift/ClassLoader/ThriftClassLoader.php"; $loader = new Thrift\ClassLoader\ThriftClassLoader(); $loader->registerNamespace('Thrift', THRIFT_DIR_PATH); $loader->registerNamespace('swoole', THRIFT_DIR_PATH); $loader->registerNamespace('Bin', THRIFT_DIR_PATH); $loader->registerDefinition('Bin', THRIFT_DIR_PATH); $loader->register(); define('MYPATH', dirname(APPLICATION_PATH)); $application = new Yaf_Application(dirname(APPLICATION_PATH) . "/conf/application.ini"); $application->bootstrap(); $config_obj = Yaf_Registry::get("config"); $rpc_config = $config_obj->rpc->toArray(); define('SERVERIP', $rpc_config['ServerIp']); define('SERVERPORT', $rpc_config['port']); define('SERVERHOST', $rpc_config['host']); $service = new Bin\rpc\Handler(); $processor = new Bin\rpc\rpcProcessor($service); $socket_tranport = new Thrift\Server\TServerSocket(SERVERIP, SERVERPORT); $out_factory = $in_factory = new Thrift\Factory\TFramedTransportFactory(); $out_protocol = $in_protocol = new Thrift\Factory\TBinaryProtocolFactory(); $server = new swoole\RpcServer($processor, $socket_tranport, $in_factory, $out_factory, $in_protocol, $out_protocol); $server->serve(); }
/** * init * * @return void */ public function __construct() { if (null === self::$_app) { $app = new Yaf_Application(APP_PATH . '/config/application.ini'); self::$_app = $app->bootstrap(); } parent::__construct(); }
/** * @runInSeparateProcess */ public function testCase042() { $config = array("application" => array("directory" => TEST_APPLICATION_PATH, "dispatcher" => array("catchException" => 0, "throwException" => 1), "modules" => "module")); $app = new Yaf_Application($config); include dirname(__FILE__) . '/_files/testCase042.php'; $request = new Yaf_Request_Http("/module/controller/index"); try { $app->getDispatcher()->returnResponse(false)->dispatch($request); } catch (Yaf_Exception $e) { $this->assertEquals('exception', $e->getMessage()); } }
function hproseserver_call(swoole_process $worker) { define('APPLICATION_PATH', dirname(__DIR__) . "/application"); define('MYPATH', dirname(APPLICATION_PATH)); $application = new Yaf_Application(dirname(APPLICATION_PATH) . "/conf/application.ini"); $application->bootstrap(); $config_obj = Yaf_Registry::get("config"); $hprose_config = $config_obj->hprose->toArray(); $server = new Server("tcp://" . $hprose_config['ServerIp'] . ":" . $hprose_config['port']); $server->setErrorTypes(E_ALL); $server->setDebugEnabled(); $server->addFunction('zys'); $server->start(); }
public function run($params = array()) { $app = new Yaf_Application(APP_PATH . "/conf/application.ini"); $uri = Yaf_Dispatcher::getInstance()->getRequest()->getRequestUri(); list($tmp, $module, $controller, $action) = explode('/', $uri); foreach ($params as $key => $value) { Yaf_Dispatcher::getInstance()->getRequest()->setParam($key, $value); } $request = new Yaf_Request_Simple("Api", $module, $controller, $action, $params); // $request = new Yaf_Request_Simple("Api", "User", "Index", "demo", array()); // Yaf_Dispatcher::getInstance()->getRequest()->setParam('uid',123456); $response = $app->bootstrap()->getDispatcher()->returnResponse(TRUE)->dispatch($request); // $response = $app->bootstrap()->getDispatcher()->dispatch($request); return $response->getBody(); }
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; }
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); }
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); }
public function _initConfig() { //把配置保存起来 $this->arrConfig = Yaf_Application::app()->getConfig(); $arrConfig = Yaf_Application::app()->getConfig(); Yaf_Registry::set('config', $arrConfig); }
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()); } }
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; } }
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'); }
/** * 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); } } }
public function __construct() { $app = self::app(); if (!is_null($app)) { throw new Yaf_Exception('Only one application can be initialized'); } Yaf_G::init(); //这里主要是配置文件的加载 // request initialization if (isset($_SERVER['REQUEST_METHOD'])) { //判断http请求还是cli请求 $request = new Yaf_Request_Http(); //获取请求的url路径和基础路径,以及请求方式 } else { $request = new Yaf_Request_Cli(); } if ($request == null) { throw new Yaf_Exception('Initialization of request failed'); } // dispatcher $this->_dispatcher = Yaf_Dispatcher::getInstance(); //将调度对象赋值给app对象的属性,并在调度对象的属性中添加路由对象,单例 if ($this->_dispatcher == null || !$this->_dispatcher instanceof Yaf_Dispatcher) { throw new Yaf_Exception('Instantiation of dispatcher failed'); } $this->_dispatcher->setRequest($request); //把请求对象赋值给调度对象的属性中 self::$_app = $this; }
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); }
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); }
public function _initDefaultDbAdapter() { //新建对象 $dbAdapter = new Zend\Db\Adapter\Adapter(Yaf_Application::app()->getConfig()->mysql->write->toArray()); //设为全局变量 Yaf_Registry::set("db", $dbAdapter); }
/** * 把配置存到注册表 */ 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()); }
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; }
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); }
public function _initConfig(Yaf_Dispatcher $dispatcher) { $this->config = Yaf_Application::app()->getConfig(); Yaf_Registry::set('config', $this->config); //判断请求方式,命令行请求应跳过一些HTTP请求使用的初始化操作,如模板引擎初始化 define('REQUEST_METHOD', strtoupper($dispatcher->getRequest()->getMethod())); Yaf_Loader::import(APPLICATION_PATH . '/conf/defines.inc.php'); }
/** * method to get the instance of the class (singleton) */ public static function getInstance() { if (is_null(self::$instance)) { $config = Yaf_Application::app()->getConfig(); self::$instance = new self($config); } return self::$instance; }
public function _initConfig() { Yaf_Dispatcher::getInstance()->autoRender(FALSE); // 关闭自动加载模板 //把配置保存起来 $arrConfig = Yaf_Application::app()->getConfig(); Yaf_Registry::set('config', $arrConfig); }
public function _initZendDb(Yaf_Dispatcher $dispatcher) { $arrConfig = Yaf_Application::app()->getConfig(); $zendDb = new Zend_Db(); $params = array('host' => $arrConfig->mysql->read->host, 'username' => $arrConfig->mysql->read->username, 'password' => $arrConfig->mysql->read->password, 'dbname' => $arrConfig->mysql->read->dbname, 'port' => $arrConfig->mysql->read->port); $db = $zendDb->factory('PDO_MYSQL', $params); Yaf_Registry::set('db', $db); }
private static function getConfig() { if (null === self::$_config) { $config = Yaf_Application::app()->getConfig()->toArray(); self::$_config = new Yaf_Config_Simple($config, false); } return self::$_config; }
public function getConfig() { if (self::$__config === null) { self::$__config = Yaf_Application::app()->getConfig(); $this->config = self::$__config; } return self::$__config; }
/** * 初始化函数 * 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); }
public static function site_url($a) { $config = Yaf_Application::app()->getConfig(); $ext = $config->pro->ext; $site = $config->pro->site; $site = !empty($site) ? $site : 'http://' . $_SERVER['HTTP_HOST'] . '/'; return $site . $a . $ext; }
public function getApp() { if (self::$__app === null) { self::$__app = Yaf_Application::app(); $this->app = self::$__app; } return self::$__app; }