【问题标题】:HTML code in OOP PHP fileOOP PHP 文件中的 HTML 代码
【发布时间】:2015-04-16 05:52:07
【问题描述】:

我想获得一些关于使用 PHP OOP 的建议。

例如,我正在使用 OOP 创建一些 PHP/MySQL 代码,我需要输出代码,该怎么做?

我可能有点困惑,我会向你展示所有代码,你会告诉我我是否做得对:

index.php

<?php
require_once CLASSES."Pages.Class.php";
$obj = new Pages;

if (isset($_GET['page'])) {
    $obj->setPage($_GET['page']);
    echo $obj->getPage();
} else {
    echo $obj->getFrontPage();
}

?>

Pages.Class.php - 一个函数

public function getDatabasePage() {
    global $conn;
    $sql = "SELECT * FROM pages WHERE page_seo_title = '$this->pageId' LIMIT 1";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            ?>
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="well">
                    <div class="page-head">
                        <?php echo $row["page_title"]; ?>
                    </div>
                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="well">
                    <div class="page-content">
                        <?php echo $row["page_content"]; ?>
                    </div>
                 </div>
             </div>
             <?php
        }
    } else {
        echo "0 results";
    }
}

所以基本上问题是:我需要将 HTML 代码放在哪里?

index.php 文件中还是在 pages.class.php 文件中? 如何正确地做到这一点?也许我可以从你那里获得一些有关此文档的链接:) ..

谢谢。 顺便说一句 - 代码是一个例子,没有完全完成。举个例子-我知道它是不对的:D

【问题讨论】:

标签: php mysql html oop


【解决方案1】:

在您的 Pages 类中,创建一个单独的方法来输出 HTML 并仅执行此操作;与 DB 相关的逻辑应该在另一个方法中,或者(最好)在一个完全独立的类中。

class Pages {
   public function __construct(){
     //Object initialization logic comes here
   }

   public function getOutputHTML($resultOfQuery = ''){
   return "<div> Your html </div>";
  }
}

其他类文件仅用于数据库访问,只需传递参数并获取结果作为数据库结果。

class DB {
  public function insertMethod($table,$fields,$where){
    //Your logic
  }
  public function updateMethod($table,$fields,$where){
    //Your logic
  }
  public function deleteMethod($table,$fields,$where){
    //Your logic
  }      
  public function selectMethod($table,$fields,$where){
    //Your logic
  }      
}

实例化 DB 类,如 $dbObj = new DB();

然后你可以访问像$resultQuery = $dbObj.selectMethod('users');这样的数据库方法

因此您可以将 $resultQuery 结果传递给其他方法,例如:$objPages = new Pages();$objPages.getoutputHTML($resultOfQuery);。它将数据库和 HTML 逻辑/功能分开。

我建议您将 OOP 与 MVC 一起使用,这样就会有 Smarty、Blade 等模板系统。

【讨论】:

  • 我稍微扩展了你的解释,希望你不要介意。
  • @AndréDaniel,没问题!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 2013-03-12
  • 2016-05-26
  • 2012-07-03
  • 2013-12-14
  • 2015-07-05
相关资源
最近更新 更多