博主信息
世紀天城
博文
8
粉絲
1
評論
0
訪問量
1410
積分:0
P豆:16

新疆十一选五前三直绝招:自己搞了一個mvc模式 不曉得對不對哈

2019年12月10日 15:41:50閱讀數:313博客 / 世紀天城 / php心得

新疆十一选五预测号码今天 www.envkt.com  controller.php 代碼


實例

<?php
namespace mvc;
require_once 'Model.php';
require_once 'View.php';

// 控制器
class  Controller{
    public $table = null;
    //查詢數據
    public function index($sql,View $view){
        //獲取數據
        $data = Db::read($sql);
//        print_r($data);
        //渲染模板
//        $view = new View();
        return $view->fetch($data);
    }
    //新增數據
    public function add($sql,$data=[]){
        Db::create($sql,$data);
    }
    //更新數據
    public function update($sql,$data){
        Db::update($sql,$data);
    }
    // 刪除數據
    public function delete($sql){
        Db::delete($sql);
    }
}

//客戶端調用

$connectParams = [$dsn, $user, $password];
$pdo = Db::getInstance(...$connectParams);

//查詢數據
$sql = 'SELECT * FROM  `category`  WHERE `cate_id` = 1';
$view = new View();
$controller = new Controller();
$controller->index($sql,$view);

// 新增數據
//$data = [
//    'name'=>'kh',
//    'alias'=>'科幻電影'
//];
////$model = 'category';
//$sql= 'INSERT INTO category (name,alias) VALUES (:name,:alias)';
//$controller = new Controller();
//$controller->add($sql,$data);

//更新數據
//$data = [
//    'name'=>'kj',
//    'alias'=>'抗金英雄郭靖',
//];
//$sql = 'UPDATE category SET alias = :alias, name = :name WHERE cate_id = 12';
//$controller = new Controller();
//$controller->update($sql,$data);

//// 刪除數據
//$sql = 'DELETE FROM  `category`  WHERE `cate_id`=12';
//$controller = new Controller();
//$controller ->delete($sql);
////echo '成功更新了: ' .$db->delete($where). ' 條記錄';

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

Db.php


實例

<?php
namespace mvc;
require_once 'config.php';
require_once 'View.php';
class Db{
    private static $pdo = null;

    public static function getInstance(...$connectParams){
        if (is_null(self::$pdo)) {
            // 因為構造函數沒有返回值, 所以實例當前類并賦值給靜態屬性的過程,只能在構造方法中完成
            // self::$pdo = new self(...$connectParams);
            new self(...$connectParams);
        }
        return self::$pdo;
    }

    // 當前構造方法是私有的, 僅表示在類外部不允許調用, 但是在類的內部仍然有效的
    private function __construct(...$connectParams){
        // 當前$connectParams 是一個索引數組,每一個元素對應著不同的連接參數
        $dsn = $connectParams[0];
        $username = $connectParams[1];
        $password = $connectParams[2];
        // 在私有的構造方法中完成類實例的創建過程
        // 創建一個PDO類實例, 并賦值給當前類實例self::$pdo
        self::$pdo = new \PDO($dsn, $username, $password);

    }
    // 私有化克隆方法
    private function __clone(){

    }

    // 讀取多條數據
    public function read($sql){
        $stmt = static::$pdo->prepare($sql);
        $stmt->execute();

        // 返回二維數組表示的查詢結果集
        return $stmt->fetchAll(\PDO::FETCH_ASSOC);
    }

    // 新增, 參數是數組: 新記錄的鍵值對
    public function create($sql,$data){
        $stmt = static::$pdo->prepare($sql);
        $stmt->execute($data);

        echo '成功新增'.$stmt->rowCount().'條記錄,最新記錄的主鍵ID是: '.static::$pdo->lastInsertId();
    }
    //更新數據
    public function update($sql,$data){
        $stmt = static::$pdo->prepare($sql);
        $stmt->execute($data);

        // 返回被更新的記錄數量
//        return $stmt->rowCount();
        echo '成功更新了: ' .$stmt->rowCount() . ' 條記錄';
    }

    // 刪除數據
    public function delete($sql){
        // 預處理執行刪除操作

        $stmt = static::$pdo->prepare($sql);
        $stmt->execute();
//        return $stmt->rowCount();
        echo '成功刪除了: ' .$stmt->rowCount(). ' 條記錄';
    }
}

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

model.php 這個是引入的db類  但是好像不能繼承

實例

namespace mvc;
include_once 'Db.php';
class Model{

}

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例


View.php


實例

<?php
namespace mvc;
require_once 'Model.php';
class View{
    public function fetch($data){
//         print_r($data);
//         foreach ($data as $v){
//             echo "<li> {$v['cate_id']} {$v['name']}  {$v['alias']} </li>";
//         }
        require_once 'index.php';
    }
}

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例


index.php 


實例

<?php
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
    </style>
</head>
<body>
<ul>
    <?php
            foreach ($data as $v){
                         echo "<li><a href=''>{$v['cate_id']} {$v['name']}  {$v['alias']} </a></li>";
                     }

            ?>
</ul>
</body>
</html>

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

config.php 這個是配置文件

實例

$db =  [
    'type' => 'mysql',
    'host' => 'localhost',
    'dbname' => 'cms',
    'username' => 'root',
    'password' => 'root',
];

//// 配置數據源DSN信息
$dsn = "{$db['type']}:host={$db['host']};dbname={$db['dbname']}";
$user = $db['username'];
$password = $db['password'];

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例


全部評論

文明上網理性發言,請遵守新聞評論服務協議

條評論
暫無評論暫無評論!