用户来到index.php

时间:2016-09-04 10:00:16

标签: php autoload

在简单的情况下,我有一个包含一些页面的网站: index.php registration.php order.php product-page.php 等。所以,我也有..也许, logging_class.php 。我在index.php中编写了类自动加载函数,如下所示:

spl_autoload_register(function ($className) { 
     return require_once $className . ".php";
});

这就是为什么我认为index.php之后的所有脚本都会自动包含类(在这种情况下它是 logging_class.php )。但是,如果用户从谷歌到产品页面绕过 index.php 未执行的主页面。因此, product-page.php 对类自动加载一无所知。

在每个脚本中编写相同的函数并不正确。也许,编写 autoload.php 并将其包含在我需要使用类的任何脚本中都是正确的。但是我的项目的不同部分会包含很多包含字符串。

那么,有没有办法在每个脚本中不包括 autoload.php 的服务器脚本中自动执行 index.php

1 个答案:

答案 0 :(得分:1)

如果您的网站有多个入口点(index.php,registration.php,order.php,product-page.php等),最佳解决方案是创建" autoload.php&# 34;并把它包括在任何地方,就像你写的那样。

还有其他解决方案,例如auto_prepend_file - 但它们使您的解决方案更少,可读性更强。 (个人意见)。

另外,也许最好不要将它命名为#autoead.php",而是像#34; common.php"或者" bootstrap.php",因为它很可能还包括其他公共代码,而不仅仅是自动加载器。