2012-06-01 31 views
0

我有一個文件列表,其中一個文件正在另一個文件在同一個目錄中。我想包含一個目錄的所有文件,我如何按照繼承的順序進行操作,以便我不會得到任何錯誤如何包含基於繼承順序的文件

+0

除非您解析文件,否則不能自動執行此操作。只需包含所有文件,並查看是否有任何錯誤。然後改變訂單,直到你沒有任何錯誤了。 –

回答

1

不是自己計算依賴關係,而是使用spl_autoload_register()來自動加載。

這樣你的依賴就可以根據需要制定出來。有點像「Just-In-Time」加載:)

0

如果你的文件對其他文件有一定的依賴性,請確保你首先包含「父」文件。

例如,你有一個文件a.php只會A類:

<?php 

    class A { 
     // .. statements 
    } 

而且你必須擴展的命名B.php B類:

<?php 

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

的想法是在使用該文件中的任何函數/類/語句之前先「包含」/「需要」所需的文件。在PHP 5中,您可以使用自動加載功能,在不需要輸入require功能的情況下,「自動」添加/包含您需要的文件。

0

COULD使用解析器來獲得依賴,但這將是一個非常多的工作和真正的性能殺手。

你可以對文件進行排序,並與數字

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

前綴他們,但如果你對它們進行排序手動這是相當pointles依賴於文件名。

如果您有類繼承,則可以組合一個自動加載器並需要一次。 註冊自定義自動加載器以使用require_once來請求文件並將所有文件包含在循環中。如果您需要第4個文件中第8個文件的類,則自動加載器將提前加載第8個文件,並且當您的inlude循環到達第8個文件時,將不會發生任何事情,因爲require_once不會再包括該文件。

但是,正如你可能已經意識到: 包括其視對方從文件系統中的隨機順序文件是不是良好的idead。