1、我们上次利用composer加载了类库,这次我们封装框架的简单的底层 model 这里为了方便开发我们使用了 medoo这个类库
mdeoo 网址:http://medoo.lvtao.net/index.php
1、首先我们在我们的composer.json文件中加入
composer.json文件
{
"name":"LONG PHP",
"description":"PHP Framework",
"type":"Framework",
"keyword":[
"PHP","PHP Framework"
],
"require":{
"PHP":">=5.3.0",
"filp/whoops":"*",
"symfony/var-dumper":"*",
"catfan/medoo":"*"
},
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
}
2、cmd 进入框架根目录输入命令:composer update
3、安装成功之后
我们修改数据库配置文件 core\config\database.php 这里是按照medoo类库连接数据库 地址:http://medoo.lvtao.net/doc.php
database.php
<?php
return array(
'database_type' => 'mysql',
'database_name' => 'yii3',
'server' => 'localhost',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
);
?>
4、 之后修改 core\lib\model.php
<?php
namespace core\lib;
use \core\lib\conf;
class model extends \medoo{
public function __construct(){
$database = conf::all('database');
// p($database);
parent::__construct($database);
}
}
?>
此时我们在app文件下建立 models文件并在其目录下创建基类model: BaseModel.php 笔者在medoo基础上加上了自己的想法!
<?php
namespace app\models;
class BaseModel extends \core\lib\model{
public $table = "";
/**
* 获取全部信息
* @param string $colunm [字段]
* @param array $where [条件]
* @return [array] [查询信息]
*/
public function getAll($cloumn ="",$cond = ""){
if(empty($cloumn)&&empty($cond)){
$data= $this->select($this->table,"*");
return $data;
}else{
$data= $this->select($this->table,"*",array($cloumn=>$cond));
if($data){
return $data;
}else{
return array();
}
}
}
/**
* [获取单条信息]
* @param array $where [description]
* @return [type] [description]
*/
public function getOne($cloumn,$cond){
$info= $this->get($this->table,"*",array($cloumn=>$cond));
if($info){
return $info;
}else{
return array();
}
}
/**
* [add 单条添加]
* @param [array] $data [单条添加数据]
* @return [int] [自增id]
*/
public function add($data){
return $this->insert($this->table,$data);
}
/**
* [addAll 批量添加]
* @param [array] $data [添加数据]
* @return [string] [自增ids]
*/
public function addAll($data){
$count = count($data);
$ids = "";
$i = 0;
while($i<$count){
$ids .= ",";
$ids .= $this->insert($this->table,$data[$i]);
$i++;
}
return trim($ids,',');
}
/**
* [upda description]
* @param [type] $data [修改数据]
* @param [type] $column [修改字段]
* @param [type] $id [条件]
* @return [type] [受影响行数]
*/
public function upda($data,$column,$cond){
return $this->update($this->table,$data,array($column=>$cond));
}
/**
* [del 永久删除]
* @param [string] $column [id字段]
* @param [int] $id [id]
* @return [int] [受影响行数]
*/
public function del($column,$id){
// echo $column.$id;
return $this->delete($this->table,array($column => $id));
}
}
?>
下面我们进行测试一下
app/models 文件下建立 对应的model
eg:MessageModel.php
<?php
namespace app\models;
class MessageModel extends BaseModel{
public $table = "message";
}
?>
控制器引用:
输出结果:
此时我们没有就完成了一个简单的model封装 !!!!