php - OOP PHP 文件中的 HTML 代码

标签 php mysql html oop

我想获得一些使用 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

最佳答案

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

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
  }      
}

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

然后您可以访问数据库方法,例如$resultQuery = $dbObj.selectMethod('users');

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

我建议你使用OOP和MVC,这样就会有像Smarty、Blade等模板系统。

关于php - OOP PHP 文件中的 HTML 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28529239/

相关文章:

c# - 如何在 C# 的 MessageBox 中显示远程 MySQL 数据库的数据

javascript - 为敌人制作一个有效的战斗系统

javascript - 提交前检查日期间隔

php - 没有cron的计划PHP脚本执行

mysql - 更新基于列的 ID

MySQL Max 之前的数据

javascript - 如果我有多个打开相同模式弹出窗口的链接,则 Foundation Reveal 会出现问题

php - PHP MySql 字段列表中的未知列

PHP 获取别名特征的名称

php - 学说模式创建找不到常量