Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 function actionDelete()
 {
     //del
     E_FW::load_File('Model_BlogActiveRecord');
     $blog = Model_BlogActiveRecord::destroyWhere('Model_BlogActiveRecord', array('where' => 1));
     var_dump($blog);
 }
Esempio n. 3
0
 public function __toString()
 {
     if (E_FW::get_Config('DEBUG')) {
         return parent::__toString();
     } else {
         return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
     }
 }
Esempio n. 4
0
 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();
 }
Esempio n. 5
0
 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;
             }
         }
     }
 }
Esempio n. 6
0
File: Db.php Progetto: eason007/e-fw
 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'];
     }
 }
Esempio n. 7
0
 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.');
     }
 }
Esempio n. 8
0
 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();
     }
 }
Esempio n. 9
0
 /**
  * 演示数据校验
  */
 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);
 }
Esempio n. 10
0
<?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'));
    }
}
Esempio n. 11
0
<?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();
Esempio n. 12
0
 /**
  * 查找数据(静态方法)
  * 
  * 通过 $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());
         }
     }
 }
Esempio n. 13
0
 public function actionDelete()
 {
     $this->_ModelBlog = E_FW::load_Class('Model_Blog');
     $this->_ModelBlog->where(1);
     var_dump($this->_ModelBlog->del());
 }
Esempio n. 14
0
 function actionDelete()
 {
     $this->_ModelCategory = E_FW::load_Class('Model_Category');
     $this->_ModelCategory->where(43);
     print_r($this->_ModelCategory->del());
 }
Esempio n. 15
0
 function actionIndex()
 {
     //获取模板对象
     $tpl = E_FW::get_view();
     echo $tpl->fetch('index.html');
 }
Esempio n. 16
0
 function __construct()
 {
     if (is_null($this->dbParams)) {
         $this->dbParams = E_FW::get_Config('MONGO');
     }
     $this->setDB();
 }
Esempio n. 17
0
 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);
 }
Esempio n. 18
0
<?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';
}
Esempio n. 19
0
 function __construct()
 {
     E_FW::load_File('cache_Core');
     $this->_cache = Cache_Core::getInstance(E_FW::get_Config('CACHE'));
 }
Esempio n. 20
0
 * 标记文件启动时间
 * 
 * @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 中获取,规则为
Esempio n. 21
0
 /**
  * 供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);
 }