同福

TFPHP框架的TFModel对象的使用【20210616】

介绍

介绍

福哥更新了TFPHP框架的TFModel模型对象的insert、update、delete、upsert逻辑,适应了改造过的TFDO对象对应方法。

福哥将insert、update、delete、upsert几个主要方法的参数都设计成一样的了,都是通过实体对象数据来进行操作的了。

TFModel

addTable

参数

$key
string模型映射物理表KEY
$tablestring物理表名称
$fields
array模型在物理表里面的主键或者约束
$options
array

其他选项:

  • cache,开启自动缓存

  • tfdoKey,getTFDO的KEY

  • cacheRedisKey,getRedis的KEY

  • cacheRedisExpires,Redis缓存默认过期时间

示例

public function __construct(TFPHP $tfphp){
    parent::__construct($tfphp);
    
    $this->addTable("user", "tfart_members", array('mId'=>"int"), array('lastInsertField'=>"mId"));
    $this->addTable("userByName", "tfart_members", array('mName'=>"str"));
    $this->addTable("userByEmail", "tfart_members", array('mEmail'=>"str"));
    $this->addTable("user_profile", "tfart_member_profiles", array('mId'=>"int"));
    $this->addTable("user_security_questions", "tfart_member_security_questions", array('mId'=>"int"), array('cache'=>false));
}

insert

参数

$tablestring模型映射物理表KEY
$dataarray模型实体数据

返回值

返回值是一个bool类型的值,插入成功了就真,否则就是假。通常情况下,插入失败了就会触发异常,所以可以根据异常信息判断错误原因。

示例

$user = new user($this->tfphp);

try {
    $user->insert("user", array(
        'mName' => "福哥爱摄影",
        'mPwd' => md5("123456")
    ));
    var_dump($user->getLastInsertID("user"));
}
catch (Exception $e){
    print_r($e->getMessage());
}

home/topic/2021/0616/18/e51e9c95169a711efe64d66619d9dec3.png

update

参数

$tablestring模型映射物理表KEY
$dataarray模型实体数据

返回值

返回值是一个bool类型的值,更新成功了就真,否则就是假。通常情况下,更新失败了就会触发异常,所以可以根据异常信息判断错误原因。

示例

$user = new user($this->tfphp);

try {
    $user->update("user", array(
        'mId'=>2858,
        'mEmail' => "fg-like-shoot@tongfu.net",
    ));
}
catch (Exception $e){
    print_r($e->getMessage());
}

delete

参数

$tablestring模型映射物理表KEY
$dataarray模型实体数据

返回值

返回值是一个bool类型的值,删除成功了就真,否则就是假。通常情况下,删除失败了就会触发异常,所以可以根据异常信息判断错误原因。

示例

try {
    $user->delete("user", array(
        'mId'=>2858,
    ));
}
catch (Exception $e){
    print_r($e->getMessage());
}

upsert

参数

$tablestring模型映射物理表KEY
$dataarray模型实体数据

返回值

返回值是一个bool类型的值,更新成功了就真,否则就是假。通常情况下,更新失败了就会触发异常,所以可以根据异常信息判断错误原因。

示例

$user = new user($this->tfphp);

try {
    $insertRet = $user->insert("user", array(
        'mName'=>"福哥喜欢摄影"
    ));
    if($insertRet){
        $newUserId = $user->getLastInsertID("user");
        if($newUserId > 0){
            $user->upsert("user_profile", array(
                'mId'=>$newUserId,
                'nickName'=>"福哥喜欢摄影",
                'birth'=>"2008-8-8"
            ));

            print_r($user->getByTable("user", array($newUserId)));
            print_r($user->getByTable("user_profile", array($newUserId)));
        }
    }
}
catch (Exception $e){
    print_r($e->getMessage());
}

home/topic/2021/0616/19/8b3025d73f85415506ec7f0bc0f8c7f7.png

总结

福哥今天分享了整理过的TFModel对象的代码,改造后的TFModel的insert、update、delete、upsert几个主要方法的参数都是一样的了,这个设计福哥借鉴了Spring data jpa的思路,全部都依赖一个实体对象的数据。

当然,PHP有处理实体对象不如使用万能的数组,所以福哥设置的参数类似的array类型。