2014年TOME开发框架1.0.0版本也出来了,写它的原意是想有一个自己用的PHP开发框架。并且不想去学习别的框架。如果有时间,我愿意接着写下去。
整个框架文件列表如下
cache ==模板缓存目录,
controller==控制器目录,
model ==模型目录,
tome==框架核心目录,
view == 模板目录
url路径 “index.php?m=app&c=index&a=normal” , m代表控制器目录,c控制器类,a控制器方法。
如上URL所示,开发步骤如下
在“controller”目录 下新建一个“app”的文件夹,然后在里面新建一个“index.class.php”文件夹
<?php class index{ function normal(){ $model = tome::load_model('test'); $update = $model->fields('*')->select(); $tpl = tome::load_view('app'); $tpl->cc = 'sdfasdfasfasd'; $tpl->display('index/normal.tpl.php'); } }然后在“view”的目录下新建一个“app”文件夹,然后新建一个“index”文件夹,在“index”文件夹里新建一个"normal.tpl.php"。(TOME开发框架的模板是原生的PHP语句)
<?php echo 'Hello World!'; echo $cc;
如果要添加数据库的支持,必须在“tome/libs/configs/sys.config.php”
<?php return array( 'VIEW_CACHE' => false , 'DB_TYPE' => 'mysql', 'DB_HOST' => 'localhost', 'DB_PORT' => '3306', 'DB_USER' => 'root', 'DB_PASS' => '', 'DB_CHARSET' => 'utf8', 'DB_NAME' => 'mf', 'DB_PREFIX' => 'mf_' );
我们以test数据表为例
CREATE TABLE `mf_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `text` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;然后新建一个数据库“mf”,添加上述数据表
然后在“model”文件夹里新建一个“test.class.php”
<?php class test extends model{ protected $table_name = __CLASS__; }必须继承model ,且必須有”protected $table_name=__CLASS__“。
这样在的控制器里就可以进行增删改查操作,TOME框架暂时只支持如下操作
$model = tome::load_model('test');增
$id = $model->insert(array('id'=>1 , 'text'=>'teststsetser'));
$result = $model->delete('id=1'); //or $model->delete(array('id'=>1));改
$model->update(array('text'=>'sdfsdfsdf'));//全部更新 $model->update(array('text'=>'sdfsdfsdf') , 'id=1');//部分更新 $model->update(array('text'=>'sdfsdfsdf') , array('id'=>1));//部分更新
$result = $model->fields('*')->where('id>0')->select();//连贯操作 $result = $model->select('select * from #@test');//支持SQL语句,请将表名的前缀替换为#@
TOME框架暂只支持MYSQL,如果要添加其他数据库操作
请参照"tome/libs/classes/mysql.class.php"类
<?php class mysql extends db implements singleton{ protected static $instance = null; protected $link; public static function get_instance(){ if(is_null(self::$instance)){ self::$instance = new self(); } return self::$instance; } private function __construct(){ $this->link = mysql_connect(DB_HOST . ':' . DB_PORT , DB_USER , DB_PASS); mysql_set_charset(DB_CHARSET , $this->link); mysql_select_db(DB_NAME , $this->link); } public function clean($string){ return mysql_real_escape_string($string,$this->link); } public function execute($query){ return mysql_query($query,$this->link); } public function insert_get_id($query){ $this->execute($query); return mysql_insert_id($this->link); } public function get_array($query){ $result = $this->execute($query); $return = array(); if($result){ while($row = mysql_fetch_array($result , MYSQL_ASSOC)){ $return[] =$row; } } return $return; } public static function get_version(){ return mysql_get_server_info(); } }
<?php class sql_server extends db implements singleton{ //此属性必须 protected static $instance = null; //此方法必须 public static function get_instance(){ if(is_null(self::$instance)){ self::$instance = new self(); } return self::$instance; } private function __construct(){ } //此方法必须,字符串清理 返回数组 public function clean($string){ } //此方法必须,执行SQL,返回Resource or False; public function execute($query){ } //此方法必须,执行添加操作SQL ,返回上次操作的ID,整形 public function insert_get_id($query){ } //此方法必须,执行SQL , 返回数组 public function get_array($query){ } }
<?php return array( 'VIEW_CACHE' => false , 'DB_TYPE' => 'sql_server',//数据库 'DB_HOST' => 'localhost', 'DB_PORT' => '3306', 'DB_USER' => 'root', 'DB_PASS' => '', 'DB_CHARSET' => 'utf8', 'DB_NAME' => 'mf', 'DB_PREFIX' => 'mf_' );