예제 #1
0
파일: apu.php 프로젝트: reekoheek/php-fw
	function listen() {
		$pathInfo = Apu::fetchPath();
		$className = String::camelize("_".$pathInfo["class"]."_action");
		reset($GLOBALS["CFG_ACTION"]->NS);
		foreach ($GLOBALS["CFG_ACTION"]->NS as $ns) {
			Apu::import($ns.'/'.$className.".php");
		}
		$action = new $className($pathInfo["method"]);
		$action->listen();
	}
예제 #2
0
<?php
Apu::import("/action/Action.php");
Apu::import("/db/Select.php");
Apu::import("/todo/dao/UserDao.php");

class BaseUserAction extends Action {
	function pre() {
		parent::pre();
		BaseUserAction::checkLogin();
	}
	
	function checkLogin() {
		$user = UserDao::loginUserName();
		if (empty($user)) {
			Apu::redirect("login");
		}
	}
}
?>
예제 #3
0
<?php
Apu::import("/action/BaseAction.php");
Apu::import("/db/DB.php");
Apu::import("/db/Select.php");
class BenchmarkAction extends BaseAction {
	function doIndex() {
		header('Content-type: text/plain');
		echo "Hello World\n";
	}

	function doUsedb() {
		header('Content-type: text/plain');
		echo "Hello World\n";
		$result = DB::query(new Select("logs"));
		foreach($result as $row) {
			$a[] = $row;
		}
		$result = DB::query(new Select("lookups"));
		foreach($result as $row) {
			$a[] = $row;
		}
	}
}
?>
예제 #4
0
<?php
Apu::import("/action/JsonAction.php");
Apu::import("/Test.php");

class RpcAction extends JsonAction {
	var $_md;
	
	function doIndex() {
		$modules = array();
		reset($GLOBALS['CFG_RPC']->MODULES);
		while (list($moduleKey,$moduleCfg) = each($GLOBALS['CFG_RPC']->MODULES)) {
			try {
				$clazz = new ReflectionClass($moduleCfg->NAME);
				$module["name"] = $moduleCfg->NAME;
				while (list(,$methodCfg) = each($moduleCfg->METHODS)) {
					$methodRef = $clazz->getMethod($methodCfg);
					$parameterCfgs = $methodRef->getParameters();
					$parameters = array();
					$args = array();
					while(list(,$param) = each($parameterCfgs)) {
						$parameters[] = $param->getName();
						$args[] = "'ps[]=' + ".$param->getName();
					}
					$parameters[] = '__callback';
	
					$method = array();
					$method["name"] = $methodCfg;
					$method["parameters"] = implode(', ', $parameters);
					$method["args"] = implode(" + '&' + ", $args);
	
					$module["methods"][] = $method;
예제 #5
0
<?php
Apu::import("/action/Action.php");

class JsonAction extends Action {
	var $json;
	
	function post() {
		echo JSON::encode($this->json);	
	}
}
?>
예제 #6
0
<?php
Apu::import("/dao/BaseDao.php");

class UserDao extends BaseDao {
	
}
?>
예제 #7
0
파일: Insert.php 프로젝트: reekoheek/php-fw
<?php
Apu::import("/db/DB.php");
Apu::import("/db/MysqlDriver.php");
Apu::import("/db/Exp.php");
Apu::import("/db/Query.php");

class Insert extends Query {
	var $value;

	function __construct($table, $value, $schema = "DEFAULT") {
		parent::__construct($table, $schema);
		$this->value = $value;
	}

	function valueString() {
		reset($this->meta);
		$values = array();
		while(list(,$meta) = each($this->meta)) {
			$value = Bean::get($this->value, String::camelize($meta["name"]));
			$values[] = $this->escape($value, $meta["name"]);
		}
		return implode(', ', $values);
	}
	function sql() {
		$sql = sprintf("insert into %s(%s) values(%s)", $this->tableString(), $this->fieldString(), $this->valueString());
		return $sql;
	}
}
?>
예제 #8
0
<?php
Apu::import("/action/BaseAction.php");
class BenchmarkCaseAction extends BaseAction {
	function doIndex() {
?>
<style>
body, table, tr, th, td {
	font-family: Lucida Console;
	font-size: 11px;
}
</style>
<?php
		$iteration = 10;
		$urls = array();
		$urls[] = 'http://codeigniter.dev.ku/benchmark/';
		$urls[] = 'http://todo.dev.ku/benchmark/';
		$urls[] = 'http://cakephp.dev.ku/benchmarks';
		$this->_benchmark($urls, $iteration);
		echo '<br/><br/>';
		$urls = array();
		$urls[] = 'http://codeigniter.dev.ku/benchmark/usedb/';
		$urls[] = 'http://todo.dev.ku/benchmark/usedb/';
		$urls[] = 'http://cakephp.dev.ku/benchmarks/usedb/';
		$this->_benchmark($urls, $iteration);
	}

	function _benchmark($urls, $iteration) {
		$result = array();
		echo "<table border=\"1\" width=\"100%\">\n<tr>\n<th>x</th>\n";
		reset($urls);
		foreach ($urls as $url) {
예제 #9
0
<?php
Apu::import("/message/Msg.php");
Apu::import("/common/String.php");
Apu::import("/common/Session.php");
Apu::import("/util/Bean.php");

define("ACTION_SCOPE", "ACTION");

abstract class BaseAction extends BaseClass {
	var $method;
	var $_time;

	function __construct($method) {
		$this->method = $method;
	}

	function save($key) {
		Session::save(ACTION_SCOPE, $this->$key, get_class($this).".$key");
	}

	function fetch($key) {
		$value = Session::load(ACTION_SCOPE, get_class($this).".$key");
		Bean::set($this, $key, $value);
		return $value;
	}

	function remove($key = null) {
		if ($key == null) {
			$key = get_class($this);
		} else {
			$key = get_class($this).".$key";
예제 #10
0
<?php
Apu::import("/action/BaseUserAction.php");

class TaskAction extends BaseUserAction {
//	var $validation = "/todo/action/login/LoginAction_validation.php";
	
	function doIndex() {
		$select = new Select("tasks");
		$list = DB::query($select);
		$_REQUEST["list"] = $list; 
		Apu::dispatch("/todo/faces/task/task_list.php");
	}
	
	function doAdd() {
		Apu::dispatch("/todo/faces/task/task_add.php");
	}
}
?>
예제 #11
0
<? Apu::import("/util/Format.php"); ?>
<? Apu::import("/tag/FormTag.php"); ?>
<script type="text/javascript" src="<?=Apu::base()?>/themes/prototype.js"></script>
<script type="text/javascript" src="<?=Apu::base()?>/themes/apu.js"></script>
<script type="text/javascript" src="<?=Apu::theme()?>/init.js"></script>
<script type="text/javascript">
var LookupList = {
	search : function(evt) {
		var obj = Event.element(evt);
		$('searchFrame').toggle();
		LookupList.move(obj);
	},
	move: function(obj) {
		if ($('searchFrame').visible()) {
			Position.absolutize($('searchFrame'));
			var position = Position.positionedOffset(obj);
			$('searchFrame').style.top = position[1] + obj.getHeight() + 5;
			$('searchFrame').style.left = position[0] + obj.getWidth() + 8 - $('searchFrame').getWidth();
		}
	},
	close: function(evt) {
		var obj = Event.element(evt);
		var frameId = obj.readAttribute("frameId");
		$(frameId).toggle();
	},
	clear: function(evt) {
		var obj = Event.element(evt);
		document.forms[0]["list.filter.type"].value = "";
		document.forms[0]["list.filter.code"].value = "";
		document.forms[0].submit();
	},
예제 #12
0
파일: Locale.php 프로젝트: reekoheek/php-fw
<?php
Apu::import("/message/Msg.php");

class Locale extends BaseClass {
	function lang($lang = null) {
		if ($lang == null) {
			$sessionLang = Session::load(MSG_SCOPE, "lang");
			if (empty($sessionLang)) {
				Session::save(MSG_SCOPE, Locale::_defaultBrowserLang(), "lang");
			}
			return Session::load(MSG_SCOPE, "lang");
		} else {
			Session::save(MSG_SCOPE, $lang, "lang");
		}
	}

	function _defaultBrowserLang() {
		$langs = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
		$langs = explode(",", $langs);
		reset($langs);
		while (list($key, $lang) = each($langs)) {
			$lang = explode(";", $lang);
			$lang = $lang[0];
			$lang = explode("-", $lang);
			return $lang[0];
		}
	}
}
?>
예제 #13
0
<?php
Apu::import("/action/JsonAction.php");

class LogAction extends JsonAction {
	var $message;
	
	function doIndex() {
		$result = new stdClass();
		$result->message = $this->message;
		$this->json = $result;	 
	}
}
?>
예제 #14
0
<?php
Apu::import("/action/BaseUserAction.php");
Apu::import("/todo/action/menu.php");

class MenuAction extends BaseUserAction {
	function doIndex() {
		reset($GLOBALS["MENU"]);
		$menus = array();
		while (list($id, $menu) = each($GLOBALS["MENU"])) {
			$menu["name"] = $id;
			MenuAction::insertMenu($menus, ltrim($id, 'menu.'), $menu);
			
		}
		$_REQUEST["menu"] = $menus;
		$date = new Date();
		$_REQUEST["date"] = $date->__toString();
		Apu::dispatch("/todo/faces/menu/menu.php");
	}
	
	function insertMenu(&$menus, $id, $menu) {
		$pos = strpos($id, '.');
		if ($pos != false) {
			MenuAction::insertMenu($menus[substr($id, 0, $pos)]["children"], substr($id, $pos + 1), $menu);  
		} else {
			$menus[$id] = $menu;
		}
	}
}
?>
예제 #15
0
파일: Msg.php 프로젝트: reekoheek/php-fw
<?php
Apu::import("/common/Locale.php");

function Msg_formatCallback($matches) {
	$result = $GLOBALS['Msg_formatParam'][$matches[1]];
	if ($result == null) {
		$result = $matches[0];
	}
	return $result;
}

define("MSG_SCOPE", "MSG");

class Msg extends BaseClass {
	function save($messages, $scope = "global") {
		Session::save(MSG_SCOPE, $messages, $scope);
	}

	function fetch($scope = "global") {
		return Session::load(MSG_SCOPE, $scope);
	}

	function remove($scope = "global") {
		Session::remove(MSG_SCOPE, $scope);
	}

	function init() {
		$lang = Locale::lang();
		if ($GLOBALS["CFG_APU"]->DEBUG) {
			Session::remove(MSG_SCOPE, "lang");
		}
예제 #16
0
파일: DB.php 프로젝트: reekoheek/php-fw
<?php
Apu::import("/db/Insert.php");
Apu::import("/db/Update.php");
Apu::import("/db/Delete.php");
Apu::import("/log/Log.php");
Apu::import("/common/Date.php");

define("DB_SCOPE", "DB");

class DB extends BaseClass {
	function connect($schema = "DEFAULT") {
		$driver = $GLOBALS["CFG_DB"]->CON[$schema]->DRIVER;
		$result = Bean::invoke(String::camelize('_'.$driver.'_driver'), "connect", array($schema));
		return $result;
	}

	function query($query, $schema = "DEFAULT") {
		if ($query instanceof Query) {
			Log::debug($query->sql(), __FILE__, __LINE__);
		} else {
			Log::debug($query, __FILE__, __LINE__);
		}
		$driver = $GLOBALS["CFG_DB"]->CON[$schema]->DRIVER;
		$result = Bean::invoke(String::camelize('_'.$driver.'_driver'), "query", array($query, $schema));
		return $result;
	}

	function unique($query, $schema = "DEFAULT") {
		if ($query instanceof Query) {
			Log::debug($query->sql(), __FILE__, __LINE__);
		} else {
예제 #17
0
파일: Action.php 프로젝트: reekoheek/php-fw
<?php
Apu::import("/action/BaseAction.php");
Apu::import("/action/Validatable.php");
Apu::import("/action/Populatable.php");
Apu::import("/json/JSON.php");
Apu::import("/validation/Validation.php");

abstract class Action extends BaseAction implements Validatable, Populatable {
	var $messages;
	var $validation;
	var $serverDatas;

	function __construct($method) {
		parent::__construct($method);
		$this->messages = array();
	}

	function validate() {
		if (empty($this->validation)) {
			return;
		}
		Validation::validate($this);
	}

	function populate() {
		$scope = $GLOBALS["CFG_ACTION"]->SCOPE;
		$scopeVars = Bean::get('$'.$scope);
		while (list($key, $var) = each($scopeVars)) {
			if ($scope == "_REQUEST" || $scope == "_POST" || $scope == "_GET") {
				$key = str_replace("_", ".", $key);
			}
예제 #18
0
<?php
Apu::import("/action/BaseUserAction.php");
Apu::import("/todo/dao/LookupDao.php");

class LookupAction extends BaseUserAction {
	var $validation = "/todo/action/LookupAction_validation.php";

	var $lookup;
	var $id;
	var $list;

	function doSort() {
		$sort = $this->sort;
		$this->fetch("list");
		if ($this->list["sort"]["key"] == $this->sort) {
			if ($this->list["sort"]["order"] == "ASC") {
				$this->list["sort"]["order"] = "DESC";
			} else {
				$this->list["sort"]["order"] = "ASC";
			}
			$this->list["sort"]["key"] = $this->sort;
		} else {
			$this->list["sort"]["order"] = "ASC";
			$this->list["sort"]["key"] = $this->sort;
		}
		$this->save("list");
		Apu::redirect("lookup");
	}

	function doSearch() {
		$this->lookup = $this->list["filter"];