public function getFinish() { $replaceVar = $this->getUndefined("index", "_"); foreach ($replaceVar as $varName) { $tmp = explode("_", $varName); switch ($tmp[1]) { case "loadFile": $this->setFile("_" . $tmp[2] . "Content", "_" . $tmp[2] . ".html"); $this->parse($varName, "_" . $tmp[2] . "Content"); $this->unsetVar("_" . $tmp[2] . "Content"); break; default: if (count($tmp) == 3) { E_FW::execute_Action("Controller_" . $tmp[1], "" . $tmp[2]); $this->parse($varName, "_" . strtolower($tmp[2]) . "Content"); $this->unsetVar("_" . strtolower($tmp[2]) . "Content"); } break; } } foreach ($this->meta as $varKey => $varName) { $this->setVar("page" . $varKey, $varName); } //模板最终处理 $this->parse("out", "index"); $page = $this->getVar("out"); return $page; }
function actionDelete() { //del E_FW::load_File('Model_BlogActiveRecord'); $blog = Model_BlogActiveRecord::destroyWhere('Model_BlogActiveRecord', array('where' => 1)); var_dump($blog); }
public function __toString() { if (E_FW::get_Config('DEBUG')) { return parent::__toString(); } else { return __CLASS__ . ": [{$this->code}]: {$this->message}\n"; } }
function actionTest() { $options = array('servers' => array(array('host' => '127.0.0.1', 'port' => 6379))); E_FW::load_File('helper_Rediska_Rediska'); $rediska = new Rediska($options); $key = new Rediska_Key('mykey'); //$key->setValue('value'); echo $key->getValue(); }
public function __construct() { $viewConfig = E_FW::get_Config('VIEW'); if (is_array($viewConfig)) { foreach ($viewConfig as $key => $value) { if (isset($this->{$key})) { $this->{$key} = $value; } } } }
function __construct(array $params = array()) { if (isset($params['className'])) { $this->_db = E_FW::load_Class($params['className']); } else { E_FW::load_File('exception_Writer'); throw new Exception_Writer('Database Can Not Connect.'); } if (isset($params['mapping'])) { $this->_mapping = $params['mapping']; } }
function __construct($streamOrUrl) { if (is_resource($streamOrUrl) and get_resource_type($streamOrUrl) == 'stream') { $this->_stream = $streamOrUrl; } else { $this->_stream = @fopen($streamOrUrl, 'a', false); } if (!$this->_stream) { E_FW::load_File('exception_Writer'); throw new Exception_Writer('File Not Exists.'); } }
function actionCache() { $output = E_FW::load_Class('cache_OutputAnalytics'); //开始页面缓存 if (!$output->start('blog_index')) { $this->_ModelBlog = E_FW::load_Class('Model_Blog'); //数据库操作 $this->_ModelBlog->where(''); $this->_ModelBlog->order('id desc'); $this->_ModelBlog->limit(30); $news = $this->_ModelBlog->select(array('isCount' => true)); var_dump($news); $output->end(); } }
/** * 演示数据校验 */ public function actionValidator() { echo 'source data:'; $data = array('title' => '1q1123@', 'tag' => '', 'content' => '阿萨德飞1', 'date' => '1300-11-11a', 'postTime' => '1234', 'test' => 'abc'); var_dump($data); //获取数据对象 $validator = E_FW::load_Class('data_Core'); //设定校验规则 $validatorRule = array('title' => array('rule' => 'Alnum', 'min' => 4, 'max' => 20), 'tag' => array('require' => true, 'rule' => 'English'), 'date' => array('require' => false, 'rule' => 'Date'), 'content' => array('rule' => 'Chinese', 'min' => 4, 'max' => 500), 'postTime' => array('min' => 11, 'rule' => 'Number'), 'author' => array('max' => 50)); $validator->set(null, $validatorRule, $data); $validator->validate(); echo 'unknown data:'; var_dump($validator->unknown); echo 'invalid data:'; var_dump($validator->invalid); echo 'missing data:'; var_dump($validator->missing); }
<?php /** * @package Example * @subpackage Model */ //引入 model 基类 E_FW::load_File('db_ActiveRecord'); /** * 定义 category 表的 model 类 * * <pre> * 类名以 [目录名]_[类名] 方式命名 * 需继承自 DB_ActiveRecord 类 * </pre> * * @package Example * @subpackage Model * @see DB_ActiveRecord */ class Model_CategoryActiveRecord extends DB_ActiveRecord { static function _define() { return array('props' => array('tableName' => 'e_fw_category', 'primaryKey' => 'id')); } }
<?php /** * 程序入口 * * <pre> * 首先设置服务器,使用 URL_Rewrite 将网站所有连接指定到本文件中 * 然后由本文件调用框架,分发请求。 * </pre> * * @package Example * @author eason007<*****@*****.**> * @copyright Copyright (c) 2007-2010 eason007<*****@*****.**> * @version 1.1.1.20091215 */ /** * 引用框架 */ require '../library/e_fw.php'; //将本目录加入到默认引用文件路径中 E_FW::import(dirname(__FILE__) . DS); //定义系统配置 $Config = array('DSN' => array('dbServer' => '127.0.0.1', 'dbPort' => '3306', 'dbName' => 'test', 'dbUser' => 'root', 'dbPassword' => '', 'dbType' => 'Mysql'), 'VIEW' => array('class' => 'smarty', 'template_dir' => '.' . DS . 'Res', 'compile_dir' => '.' . DS . 'Compiler', 'left_delimiter' => '${'), 'CONTROLLER' => array('defaultController' => 'Index'), 'CACHE' => array('type' => 'memcache', 'isSerialize' => true, 'prefix' => 'test.')); //将配置数组加入到全局变量中 E_FW::set_Config($Config); //Start E_FW::run();
/** * 查找数据(静态方法) * * 通过 $args 的指定,查找符合的数据 * 返回对象或对象集合 * * @param string $class_name 数据 Model 名 * @param array $args 查找的条件,与 TableGateway 的方法对应 * @return mixed * @access public */ public static function find($class_name, $args) { $define = self::_defMeta($class_name); foreach ($args as $key => $value) { self::$_meta->{$key}($value); } $row = self::$_meta->select(); if (count($row) > 1) { $rowSet = array(); foreach ($row as $value) { $t = E_FW::load_Class($class_name, true, $value); if (isset($define['funcs'])) { $t->_funcs = $define['funcs']; } $rowSet[] = $t; } return $rowSet; } else { if (count($row) == 1) { $t = E_FW::load_Class($class_name, true, $row[0]); if (isset($define['funcs'])) { $t->_funcs = $define['funcs']; } return $t; } else { return E_FW::load_Class($class_name, true, array()); } } }
public function actionDelete() { $this->_ModelBlog = E_FW::load_Class('Model_Blog'); $this->_ModelBlog->where(1); var_dump($this->_ModelBlog->del()); }
function actionDelete() { $this->_ModelCategory = E_FW::load_Class('Model_Category'); $this->_ModelCategory->where(43); print_r($this->_ModelCategory->del()); }
function actionIndex() { //获取模板对象 $tpl = E_FW::get_view(); echo $tpl->fetch('index.html'); }
function __construct() { if (is_null($this->dbParams)) { $this->dbParams = E_FW::get_Config('MONGO'); } $this->setDB(); }
function __construct($Params) { $options = array('servers' => array()); foreach ($Params as $value) { $options['servers'][] = array('host' => $value['host'], 'port' => $value['port']); } E_FW::load_File('helper_Rediska_Rediska'); $this->_rediska = new Rediska($options); }
<?php /** * @package Example * @subpackage Model */ //引入 model 基类 E_FW::load_File('db_TableGateway'); /** * 定义 blog 表的 model 类 * * <pre> * 类名以 [目录名]_[类名] 方式命名 * 需继承自 db_TableGateway 类 * </pre> * * @package Example * @subpackage Model * @see DB_TableGateway */ class Model_Log extends DB_TableGateway { var $tableName = 'log'; var $primaryKey = 'id'; }
function __construct() { E_FW::load_File('cache_Core'); $this->_cache = Cache_Core::getInstance(E_FW::get_Config('CACHE')); }
* 标记文件启动时间 * * @global int $_load_time */ global $_load_time; $_load_time = microtime(); define('DS', DIRECTORY_SEPARATOR); define('E_FW_VAR', '_E_FW_CORE_'); /** * 框架默认设置 * * @global array $GLOBALS */ $GLOBALS[E_FW_VAR] = array('VERSION' => '1.1.1.20100310', 'DSN' => array(), 'FILE_PATH' => array(), 'LOAD_FILE_NAME' => array(), 'SEARCH_FILE_NAME' => array(), 'CONTROLLER' => array('controllerAccessor' => 'controller', 'defaultController' => 'default', 'actionAccessor' => 'action', 'defaultAction' => 'index', 'actionMethodPrefix' => 'action', 'actionMethodSuffix' => ''), 'CLASS_OBJ' => array(), 'VIEW' => array(), 'TIME_FORMAT' => 'zh_CN', 'TIME_ZONE' => 'Asia/Shanghai', 'CHARSET' => 'utf-8', 'URL_MODEL' => 1, 'DEBUG' => 1, 'CONTENT-TYPE' => 'text/html'); $GLOBALS[E_FW_VAR]['FILE_PATH'][] = dirname(__FILE__) . DS; E_FW::load_File('exception_Core'); /** * E_FW 类 * * 当使用框架时,只需引用本文件即可,并调用静态 E_FW 类的 run 方法即可。 * * @package Core */ class E_FW { /** * 启动框架 * * <p> * 分析URL * 如果是 url rewrite 模式,则从 $_GET 中获取,规则为
/** * 供select方法使用,面向关联表操作的select方法 * * @param array $rt * @param string $linkType * @return void * @access protected */ protected function _getLinkData(&$rt, $linkType) { if (!count($rt)) { return; } $linkSetting = $this->{$linkType}; $linkClass = E_FW::load_Class($linkSetting['tableClass']); switch ($linkType) { case 'belongsTo': //Article->ColumnID Join Column->ID foreach ($rt as $val) { $ID[] = $val[$linkSetting['joinKey']]; } $IDStr = implode(',', $ID); $linkClass->where('`' . $linkClass->primaryKey . '` IN (' . $IDStr . ')'); $linkData = $linkClass->select(array('link' => '')); foreach ($rt as $key => $val) { foreach ($linkData as $k => $v) { if ($val[$linkSetting['joinKey']] == $v[$linkClass->primaryKey]) { $rt[$key][$linkSetting['mappingName']] = $v; //unset($linkData[$k]); break; } } } break; case 'hasOne': //User->ID Join UserProfiles->UserID if (!isset($linkSetting['linkKey'])) { $linkSetting['linkKey'] = $this->primaryKey; } foreach ($rt as $val) { $ID[] = $val[$linkSetting['linkKey']]; } $IDStr = implode(',', $ID); $linkClass->where('`' . $linkSetting['joinKey'] . '` IN (' . $IDStr . ')'); $linkData = $linkClass->select(array('link' => '')); foreach ($rt as $key => $val) { foreach ($linkData as $k => $v) { if ($val[$linkSetting['linkKey']] == $v[$linkSetting['joinKey']]) { $rt[$key][$linkSetting['mappingName']] = $v; unset($linkData[$k]); break; } } } break; case 'hasMany': //User->ID Join Order->UserID foreach ($rt as $val) { $ID[] = $val[$this->primaryKey]; } $IDStr = implode(',', $ID); $linkClass->where('`' . $linkSetting['joinKey'] . '` IN (' . $IDStr . ')'); $linkData = $linkClass->select(array('link' => '')); foreach ($rt as $key => $val) { foreach ($linkData as $v) { if ($val[$this->primaryKey] == $v[$linkSetting['joinKey']]) { $rt[$key][$linkSetting['mappingName']][] = $v; } } } break; case 'manyToMany': //User->ID Join UserRoles->UserID | UserRoles->RolesID Join Roles->ID foreach ($rt as $val) { $ID[] = $val[$this->primaryKey]; } $IDStr = implode(',', $ID); //首先查询第三方表的关系数据 $relateClass = E_FW::load_Class($linkSetting['relateClass']); $relateData = $relateClass->field($linkSetting['linkKey'] . ', ' . $linkSetting['joinKey'])->where($linkSetting['joinKey'] . ' IN (' . $IDStr . ')')->select(array('link' => '')); unset($relateClass); foreach ($relateData as $val) { $ID[] = $val[$linkSetting['linkKey']]; } $IDStr = implode(',', $ID); //根据第三方的关系数据查找目标表的记录 $linkData = $linkClass->where($linkClass->primaryKey . ' IN (' . $IDStr . ')')->select(array('link' => '')); //将目标记录组合到关系数据数组中 foreach ($relateData as $key => $val) { foreach ($linkData as $v) { if ($val[$linkSetting['linkKey']] == $v[$linkClass->primaryKey]) { $relateData[$key] = array_merge($val, $v); } } } unset($linkData); //将关系数据组合到最终数组 foreach ($rt as $key => $val) { foreach ($relateData as $v) { if ($val[$this->primaryKey] == $v[$linkSetting['joinKey']]) { $rt[$key][$linkSetting['mappingName']][] = $v; } } } unset($relateData); break; } unset($linkClass); }