如何根据继承顺序包含文件

时间:2012-06-01 08:36:51

标签: php

我有一个文件列表,其中一个文件将另一个文件包含在同一目录中。我想要包含目录的所有文件,如何按继承顺序执行,以便我不会出现任何错误

3 个答案:

答案 0 :(得分:1)

您可以使用spl_autoload_register()自动加载,而不是自己计算依赖项。

这样,您的依赖项就会根据需要得到解决。有点像“Just-In-Time”加载:)

答案 1 :(得分:0)

如果您的文件对其他文件有某些依赖性,请确保首先包含“父”文件。

例如,文件A.php中有一个A类:

 <?php

    class A {
      // .. statements
    }

你有一个B类扩展名为B.php:

 <?php

   require_once( "A.php" );
   class B extends A {
     // .. statements
   }

这个想法是在使用该文件中的任何函数/ classes /语句之前首先“包含”/“需要”所需的文件。在PHP 5中,您可以使用自动加载函数来“自动”添加/包含您需要的文件,而无需不断地输入require函数。

答案 2 :(得分:0)

COULD 使用解析器来寻求依赖,但这将是一项非常多的工作和真正的性能杀手。

您可以对文件进行排序,并在其前面添加数字

001.init.php
002.db_connect.php
003.pre_filters.php

但是如果你手动对它们进行排序,那么依赖文件名是非常有必要的。

如果您有类继承,则可以组合自动加载器并需要一次。 注册一个自定义自动加载器以使用require_once需要文件,并包含所有带循环的文件。如果您需要第4个文件中第8个文件的类,自动加载器将提前加载第8个文件,当您的inlude循环到达第8个文件时,不会发生任何事情,因为require_once将不再包含该文件。

但是你可能已经意识到: 在文件系统中包含以随机顺序相互依赖的文件 NOT 是一个好的理念。