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