BFWSOA中使用model first来创建PHP应用,自动建表

BFWSOA中使用model first来创建PHP应用,自动建表

BFWSOA中使用model first来创建PHP应用,自动建表

大家在开发系统的时候,要先设计数据库,建表,然后再开发,这是一种开发模式,还有一种模式是在代码中定义数据结构,数据库会自动创建,当代码中定义的数据结构与数据库不一致时,底层会自动更新数据库,无法人为进行数据库变更,这在开发中是非常有用的,比如我们在新版系统中对数据库做了修改,新增了几个字段,传统的办法就是记录下sql的操作语句,下次上线的时候,对数据库执行一次sql,如果底层能根据代码层定义的数据结构进行比对,是不是就可以自动完成这些操作呢,bfwsoa实现了这项技术。

首先在Model层下新建一个Model叫做Article,增加一个$_fields,采用数组的形式来定义数据库表中的列

<?php
namespace App\Blog\Model;

use Lib\BoModel;
use Lib\BoConfig;

/**
 *
 * @author Herry
 *         文章数据模型
 */
class Model_Article extends BoModel
{

    protected $_prikey = "id";

    protected $_isview = false;

    protected $_fields = [
        [
            'name' => "id",
            "type" => 'int',
            "length" => 11,
            "default" => 0,
            "autoinc" => true,
            "prikey" => true
        ],
        [
            'name' => "title",
            "type" => 'varchar',
            "length" => 50,
            "comment" => '标题'
        ],
        [
            'name' => "cont",
            "type" => 'text',
           "comment" => '内容'
        ],
        [
            'name' => "addtime",
            "type" => 'datetime',
            "default" => "2020-12-12"
        ]
      

    ];

    private static $_instance;

    function __construct()
    {
        $this->_connarray = BoConfig::Config("Db", "localconfig");
        parent::__construct();
    }

    /**
     * 获取单例
     *
     * @return Model
     */
    public static function getInstance()
    {
        if (! (self::$_instance instanceof self)) {
            self::$_instance = new self();
        }
        return self::$_instance;
    }

   
}

?>

定义完后,在调用model层grup操作时,bfwsoa框架会自动对比数据库,没有就创建,有的话就看是否有变化,有变化就更新,是不是很方便。

此外,model层还可以进行字段方法调用

比如表中有username与password两个字段,我要找到同步匹配这两个的数据,传统的方法就是写sql 语句

select * from table where usename='bfw' and password='bfw'

使用bfwsoa框架只要几个字就获取结果了

Model_Article::getInstance->FindByUsernameAndPassword('bfw','bfw');

是不是很简单

框架直接封装好了这些方法,操作起来更方便



{{collectdata}}

网友评论0