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

要| require | once或不要求require_once

如何解决要| require | once或不要求require_once

|| 我正在从头开始构建PHP CMS。我的系统中有一个超级核心文件,目前我已自动导入构成系统核心的所有其他软件包和类。在典型的页面上,仅使用这些类和方法中的一些。 考虑到服务器上的负载“ 0”包含所有这些文件,以及用户必须等待页面加载的时间,我想知道应该采用哪种路径: 保持超级核心不变,并自动为包含该核心文件的每个页面包括所有系统核心。 使用超级核心可以仅包含基本软件包,例如数据库管理,并根据需要导入其他软件包/类。 有人可以让我知道这两种选择中哪一种是最好的,并简要概述其优缺点吗? 感谢您的时间!!!     

解决方法

        今年早些时候,我在开发PHP框架时遇到了这个确切的问题。 我考虑了利弊,这是我的评价: 选项1-前端控制器模式脚本包括所有其他脚本 优点 包的包含是在一个脚本中完成的;您可以一目了然地看到其中包含哪些文件。 包含一个特定的包总是被调用一次,没有开销。 缺点 考虑这样的情况: 我们有两个类
Rectangle
Shape
Rectangle
是子类,即extension2ѭ的扩展。但是,核心脚本按字母顺序包括类。因此,当包含“ 1”时,找不到“ 2”,PHP将引发错误。
Rectangle
班:
class Rectangle extends Shape{

}
Shape
班:
class Shape{

}
当不需要的所有内容也加载到内存中时,会增加更多开销。 选项2-加载主程序包,然后根据需要加载其他程序包 优点 仅在需要时才包含文件。以另一种方式减少开销 解决选项1中提到的问题。 您可以专注于每个软件包对其他软件包的要求,而只需加载它们 缺点 由于可能会出现对特定程序包的多个请求,因此开销很大。 包包含在每个文件中。 编程代码是针对人类的。因此,为了使事情变得更合逻辑并解决问题,我选择了选项2作为框架。     ,        您正在问一个关于最佳负载策略的问题。经常讨论与自动加载器有关的问题。 与任何策略一样,也有优点和缺点。包括所有文件可以节省您忘记一个的麻烦。另一方面,自动装带器也不会忘记文件。 但是,您不一定总是使用一种或另一种策略,但是如果实施多种策略,则可以根据需要进行选择。例如,如果您开发CMS,则事情可能会经常更改。但是,如果CMS安装在服务器上,则该版本不会经常更改。 因此,在生产中,根据服务器的负载量,将所有核心库组合到一个文件中并在启动时要求它们的策略可能是一个好处。 为了方便地构建自己的系统,我可以提出一个自动加载器。如果您逐个文件排列类,则在您使用该类时,它们将自动加载。 当您在开发中迈出了一定一步时,您实际上就会知道什么是核心文件。然后,您可以默认加载它们,这样就不会再为它们触发自动加载器。     ,        不要加载不使用的内容。实施自动加载器或加深您的require_once \的功能。 即使性能可以忽略不计,包含的文件也将减少您快速查找错误并确定应用程序流程的能力。     

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