开发人员在创建网站时是否使用了大量小包含?

时间:2015-05-14 12:35:20

标签: javascript php jquery html css

不确定我是否被允许链接视频或其他任何内容,但我的想法是我是一名初级Web开发人员。在过去的3个月里,我一直在努力教自己HTML,CSS,JavaScript,jQuery,PHP,MySQL和MySQLi。

我一直在看PHP的教程,那个人把他的代码分成小块并放在外部文件中,然后使用PHP的require_once()include()将其包含在他的主代码中

这是你真正开发网站的方式吗?我发现它非常具有挑战性,我们在HTML代码中弄乱了PHP,看起来有人把所有这些都扔到了那里,给了它一个很好的动摇。

我一直认为开发时的好方法是:

  1. 你做了网站的HTML和CSS部分,
  2. 您使用JavaScript / jQuery或您喜欢的任何方式执行此操作,
  3. 在一切都在寻找并按照您的意愿行事之后,使用PHP将其连接到数据库。
  4. 这段视频彻底抹杀了我的信仰。这是某人实际建立网站的方式吗?将少量代码放在外部文件中,然后将其包含在项目中,并将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">&nbsp;
                <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"); ?>
    

2 个答案:

答案 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的内容也可以这样做。通过这种方式,您可以轻松地将站点代码分解为组件并将其包含在需要的位置。

有一种方法可以将所有内容放到一个文件中,但是当你创建越来越多的页面时,你会看到它是错误的方法。