不确定我是否被允许链接视频或其他任何内容,但我的想法是我是一名初级Web开发人员。在过去的3个月里,我一直在努力教自己HTML,CSS,JavaScript,jQuery,PHP,MySQL和MySQLi。
我一直在看PHP的教程,那个人把他的代码分成小块并放在外部文件中,然后使用PHP的require_once()
或include()
将其包含在他的主代码中
这是你真正开发网站的方式吗?我发现它非常具有挑战性,我们在HTML代码中弄乱了PHP,看起来有人把所有这些都扔到了那里,给了它一个很好的动摇。
我一直认为开发时的好方法是:
这段视频彻底抹杀了我的信仰。这是某人实际建立网站的方式吗?将少量代码放在外部文件中,然后将其包含在项目中,并将HTML与PHP混合(就像在循环中那样?)只是为了使其尽可能可重用?
页面没有实际结构。如果有人试图理解你的代码,他们将不得不去获取你创建的每个拼图。
最终结构对我来说很糟糕。但同样,我只是一个初学者,所以如果有人能为我澄清这一点,我会非常感激。
以下是我正在谈论的代码片段:
<?php require_once("../includes/db_connection.php"); ?>
<?php require_once("../includes/functions.php"); ?>
<?php include("../includes/layouts/header.php"); ?>
<div id="main">
<div id="nav">
<ul class="subjects">
<?php
// Perform database query
$query = "SELECT * FROM mysqlsubjects
WHERE visible = 1
ORDER BY position ASC";
$subject_set = mysqli_query($connection, $query);
confirm_query($subject_set); // this is a defined function
?>
<?php // use returned data (if any)
while($subject = mysqli_fetch_assoc($subject_set)) { // output data from each row through the while loop
?>
<li>
<?php echo $subject["menu_name"]; // (1) ?>
<?php
$query = "SELECT * FROM pages
WHERE visible = 1
AND subject_id = {$subject["id"]}
ORDER BY position ASC";
$page_set = mysqli_query($connection, $query);
confirm_query($subject_set);
?>
<ul class="pages">
<?php
while($page = mysqli_fetch_assoc($page_set)) {
?>
<li>
<?php echo $page["menu_name"]; ?>
</li>
<?php } ?> <!-- ending the second loop -->
<?php mysqli_free_result($page_set); ?>
</ul>
</li>
<?php } ?> <!-- closing the while statement -->
<?php mysqli_free_result($subject_set); ?>
</ul>
</div>
<div id="page">
<h2>Manage Content</h2>
</div>
</div>
<?php include("../includes/layouts/footer.php"); ?>
答案 0 :(得分:2)
这取决于您正在构建的网站类型。
就个人而言,如果我正在构建一个大型网站,那么PHP包含就可以了,因为您只需要创建网站的一部分,然后将其拉入。将HTML添加到PHP文档就像HTML一样完美提供结构。
同样在上面的示例中,拉入包含函数和常量的单独文件是一个非常正常的过程,因为它们位于易于查找的文件中。
然而,如果我要创建单个页面类型的站点,那么将所有HTML包含在具有单独的JavaScript和CSS文件的单个文档中。
答案 1 :(得分:1)
实际上没有任何异常,但最初可能看起来很有挑战性。 重点是,您可以开发任何一种方式,只有教程中的方式才是更好的做法。 在本教程中,开发人员包含了一些具有特定功能的文件:
<?php require_once("../includes/db_connection.php"); ?> This may include the connection to the database
<?php require_once("../includes/functions.php"); ?> This file may contain a list of functions, that could also be broken into more files.
<?php include("../includes/layouts/header.php"); ?> Contains the header area
<?php include("../includes/layouts/footer.php"); ?> Contains the footer area
使用来自id #main的内容也可以这样做。通过这种方式,您可以轻松地将站点代码分解为组件并将其包含在需要的位置。
有一种方法可以将所有内容放到一个文件中,但是当你创建越来越多的页面时,你会看到它是错误的方法。