美文网首页
ThinkPHP-分层设计

ThinkPHP-分层设计

作者: quanCN | 来源:发表于2019-03-28 14:34 被阅读0次

配置数据库

在application/database.php文件中配置需要用的数据库

    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '',
    // 数据库名
    'database'        => '',
    // 用户名
    'username'        => '',
    // 密码
    'password'        => '',
    // 端口
    'hostport'        => '3306',

model分层

数据层:model 用于定义数据相关的自动验证和自动完成和数据存取接口
逻辑层:logic 用于定义相关的业务逻辑
服务层:service 用于定义相关的服务接口等

  • 在application目录下创建common目录,该目录放model,logic,和公共函数

pojo类

<?php
namespace app\common\pojo;

class Book
{
    public $id;
    public $name;
    public $price;
    
    public function __construct($id, $name, $price)
    {
        $this->id = $id;
        $this->name = $name;
        $this->price = $price;
    }
}

model类

<?php
/**
 * 数据层
 */

namespace app\common\model;


use think\Model;

class Book extends Model
{
    // 设置当前模型对应的完整数据表名称
    protected $table = 'phpbook';

    public function insertBook(\app\common\pojo\Book $book){
        $this->data([
            'id'=>$book->id,
            'name'=>$book->name,
            'price'=>$book->price
        ]);
        return $this->save();
    }
    public function selectAllBooks(){
        $books=[];
        $list = $this->field('id,name,price')->select();
        foreach ($list as $book){
            array_push($books,new \app\common\pojo\Book($book['id'],$book['name'],$book['price']));
        }
        return $books;
    }
    public function selectBookById($id){
        $book = $this->where("id",$id)->field('id,name,price')->find();
        return $book;
    }
    public function deleteBook(\app\common\pojo\Book $book){
        return $this->where('id','=',$book->id)->delete();
    }
    public function updateBook(\app\common\pojo\Book $book){
        return $this->save(['name'=>$book->name,'price'=>$book->price],['id'=>$book->id]);
    }
}

logic类

<?php
/**
 * 逻辑层
 */

namespace app\common\logic;

use think\Model;

class Book extends Model
{
    public function addBook(\app\common\pojo\Book $book){
        return model('Book','model')->insertBook($book);
    }
    public function findAllBooks(){
         return model('Book','model')->selectAllBooks();
    }
    public function findBooksById($id){
        return model('Book','model')->selectBookById($id);
    }
    public function updateBook(\app\common\pojo\Book $book){
        return model('Book','model')->updateBook($book);
    }
    public function deleteBook(\app\common\pojo\Book $book){
        return model('Book','model')->deleteBook($book);
    }
}

controller类

<?php
namespace app\index\controller;

use app\common\pojo\Book;
use think\Config;

class Index
{
    public function index()
    {
        Config::set("default_return_type","json");
        $books = model("Book","logic")->findAllBooks();
        return $books;
    }
    public function insert(){
        Config::set("default_return_type","json");
        return json(model("Book","logic")->addBook(new Book('20','万历十五年','12.11')));
    }
    public function update(){
        Config::set("default_return_type","json");
        return json(model("Book","logic")->updateBook(new Book('20','万历十五年','1001')));
    }
    public function delete(){
        Config::set("default_return_type","json");
        return json(model("Book","logic")->deleteBook(new Book('20',null,null)));
    }
}

相关文章

  • ThinkPHP-分层设计

    配置数据库 在application/database.php文件中配置需要用的数据库 model分层 数据层:m...

  • 架构分层

    分层思想:分层的设计可以简化系统设计,让不同的人专注做某一层次的事情。 再有,分层之后可以做到很高的复用。比如,我...

  • 源码解读Dubbo分层设计思想

    一、Dubbo分层整体设计概述 我们先从下图开始简单介绍Dubbo分层设计概念: (引用自Duboo开发指南-框架...

  • 软件分层的思考

    程序设计的时候,经常是会做分层设计。有时候做分层,例如controller,service,dao,都成了一个习惯...

  • 一个数据管理工具的设计资料说明

    程序说明 主要用于直接操作数据库。 架构设计 分层结构设计 C# WPF桌面程序分层结构设计 MVVM设计模式 C...

  • 【Robot Framework实践】_分层结构

    分层的思想上,在程序设计的讲究设计模式,设计模式其实就是根据需求使用抽象与封装,其实就是分层思想。把一个实现过程分...

  • Robot Framework自动化测试七

    Robot Framework 分层设计 谈到 Robot Framework 分层的思想,就不得不提“关键字驱动...

  • 网络分层设计

    利用分层的体系结构,我们可以讨论一个定义良好的、大而复杂的系统的特定部分。这种简化本身由于提供模块化而具有很高价值...

  • Docker:分层设计

    一. 简介 Docker镜像的层本质上只是通过运行某些命令而生成的文件。我们可以在上查看Docker主机上每一层的...

  • 架构思考:如何做好分层设计

      在进行程序开发和设计时我们常常提到分层的概念,但是怎么样的分层才是好的分层呢,在这篇我谈谈我在如何分层这个问题...

网友评论

      本文标题:ThinkPHP-分层设计

      本文链接:https://www.haomeiwen.com/subject/knmqbqtx.html