Blogger Information
Blog 42
fans 2
comment 0
visits 53988
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
案例:原生php新浪微博(企业设计流程 db类的设计)2019年3月6日22时
小明的博客
Original
732 people have browsed it

今天,进入了实战项目,主要学习了企业项目设计流程、db类的设计。

一、企业项目设计流程

  • 项目经理确认需求

  • ui设计出psd图

  • 前端完成静态页面

  • 后端设计数据库、完成PHP功能

二、db类的设计

  • 创建db类在index.php引入,这里需要在index.php,需要注意的是$_SERVER['DOCUMENT_ROOT']是文件的根目录,这里同web服务器设置有关,目前的更目录在htcdocs。

实例

require_once $_SERVER['DOCUMENT_ROOT'].'/weibo/lib/Db.php';

运行实例 »

点击 "运行实例" 按钮查看在线实例

  • 都是链式操作,所以每个方法里面都需要返回当前对象;

  • 需要创建 table  where  field  order  limit  item  lists

  • item方法思路,连接数据库,设置查询语句,得出查询结果;

  • 利用table where field order limit方法中通过设置类属性然后将响应的值在sql中引用;

  • item  lists 有大量代码重复  为了精简带码  设置init方法连接数据库,同时初始化where field limit order都在table中初始化

错误提示:$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

实例

<?php

class Db {

    //初始化pdo
    private function init () {
        //设置dns
        $dns = 'mysql:dbname=test';
        $username = 'root';
        $psw = 'root';
        //连接数据库
        $this->pdo = new PDO($dns, $username, $psw);
        //显示错误提示
        $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $this;
    }
    //查询表
    public function table ($table) {
        $this->init();
        $this->field = '*';
        $this->order = 'id desc';
        $this->table = $table;
        return $this;
    }
    //查询字段
    public function field ($field) {
        $this->field = $field;
        return $this;
    }
    //查询条件
    public function where ($where) {
        $this->where = $where;
        return $this;
    }
    //排序
    public function order ($order) {
        $this->order = $order;
        return $this;
    }
    //limit
    public function limit () {

    }
    //单条结果
    public function item () {

        //sql语句
        $sql = "SELECT {$this->field} FROM {$this->table} WHERE {$this->where} ORDER BY {$this->order} LIMIT 1";
//        exit($sql);
        //准备对象
        $stmt =  $this->pdo->prepare($sql);
        //执行
        $stmt->execute();
        //输出结果集
        $item = $stmt->fetchAll(PDO::FETCH_ASSOC);
        return $item ? $item[0] : false;

    }
    //结果集
    public function lists() {
        //sql语句
        $sql = "SELECT {$this->field} FROM {$this->table} WHERE {$this->where}";
//        exit($sql);
        //准备对象
        $stmt =  $this->pdo->prepare($sql);
        //执行
        $stmt->execute();
        //输出结果集
        $item = $stmt->fetchAll(PDO::FETCH_ASSOC);
        return $item ? $item[0] : false;
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:

  • 要掌握企业化流程,实现统一化,标准化,方便以后开发重复利用和维护;

  • db类复习了之前的php的类操作、sql操作,需要进一步掌握面向对象的变成思维


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments