微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – require()不好的做法?如何不重用代码

使用require()是不是很糟糕?大多数网站都有一个页眉和页脚,无论您在页面上导航,它们看起来都是一样的.但主要内容页面而异.既然我不想重用代码,在两个地方使用相同的代码,我认为require()非常好.但是可以像我一样使用它吗?

这是我的例子:

<div class="content">
    <section>
        <?PHP require('mainpage.PHP'); ?>
    </section>
    <aside class="sidebar">
        <div class="sidebar-Box">
            <?PHP require('sidebar/Box1.PHP'); ?>
        </div>
        <div class="sidebar-Box">
            <?PHP require('sidebar/Box2.PHP'); ?>
        </div>
    </aside>
</div>

侧边栏框是一个包含“最新新闻”等内容的框.由于我可能希望在许多页面上都有“最新消息”框,我需要()它以便在两个地方没有相同的代码.

我应该解决它吗?

谢谢你的帮助!

解决方法:

完全没有错,重用代码块是非常好的做法.它还使HTML结构更具可读性,并为您提供HTML表示和PHP业务逻辑之间的基本分离.查看MVC pattern了解为什么这是一件好事.

要记住一些要点:

>您可能需要考虑使用具有完整服务器文件路径的$docroot变量,因为相关文件路径在某些PHP安装上偶尔会变得不稳定,并且如果您从其他文件中包含上述代码本身.相对文件路径看起来更容易移动整个代码库,但是如果你这样做就可以改变$docroot并且没关系.您还可以使用$librarydir变量,以便可以移动HTML模板而无需移动PHP文件的位置.
>有些文件应该带有require_once(),这样你就不会弄得一团糟HTML标题,页脚等可能听起来很明显,但很容易将页脚放入两个文件中,然后从其他地方包含这些文件,这样可以通过提供更详细的错误消息来简化调试.
>您可能会发现,以更加正式的灵活方式执行MVC方法的模板引擎可以帮助您.查看其他人提到的Smarty,或Dwoo,这是PHP5的重写.
>如果包含的文件中的代码使用全局范围内的变量,并且随着程序变得更加复杂,可能会发生奇怪的事情,这可能导致难以确定的错误,其中一个包含通过改变变量来巧妙地破坏另一个同名.考虑将sideblock的代码放入函数或类中,以便变量在它们自己的范围内,并且可以将它们分开.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐