【发布时间】:2016-07-23 04:06:41
【问题描述】:
我是 php 新手,继承了一个包含数百个页面的网站项目,所有页面都是程序性的(当我对文件进行文本搜索时,任何地方都没有函数定义)。我来自 c# 和 Java 世界。我正在寻找一种增量添加 OOP 的方法。 (他们希望我更新前端,我试图说服他们同时修复后端,他们不想使用框架(该死)。
在研究自动加载器时...嗯,这是我的理解。这是一种注册存储类的文件夹的方法,当您实例化一个类、特征等时,它会根据类/文件名/命名空间搜索文件夹并加载适当的定义。
我有几个问题:
自动加载器是否搜索文件夹并在每个页面生命周期加载适当的定义(或者是否缓存它们)?
预加载: 有没有办法使用自动加载器或其他替代方法将所有类定义预加载到内存中并使它们在所有会话中可用?
如果是这样,在更新类文件时,我如何告诉这个机制在我对类文件进行更改时将所有内容重新加载到内存中?
问题更新:
感谢您的回答,这对您有所帮助,但是...我确实有在 StackOverflow 上提出错误问题的坏习惯。
我要避免的事情是通过添加类来减慢页面速度。所以假设我添加了一个库并使用自动加载器注册路径。一个页面实例化一个具有多个依赖项的类。假设依赖图包含 15 个文件。对于每个请求生命周期,服务器仅在该页面上加载页面和 15 个其他文件。
由于我来自编译语言,我觉得没有将这些类加载到内存中有点奇怪。所有的类加起来不应该超过 5MB。
(或者也许我应该只创建一个 RAM 磁盘并在启动时复制其中的所有文件并只拥有一个符号链接?)
【问题讨论】:
-
如果您还没有,我想看看PHP-FIG: Autoloader 和Composer。
-
@PaulPerrick 感谢您的链接。让我思考我自己的部署设置。
-
在每个请求周期都加载类文件(很少更改的文件)对我来说太奇怪了,而文件访问是您可以执行的最慢操作之一。
标签: php autoloader