2013-04-03 21 views
1

我在我的index.php中有一些定義,其值指向某些文件夾。我想避免的是煩人要求:如何在php中有效地管理include和require_once?

require_once("something/../../../file.php") 

的問題(因爲範圍的)是,當我嘗試在另一個PHP文件中使用它們這些定義都將丟失,然後我需要重新做require_once(「/ ../../......etc「),或再次定義它們。

我怎樣才能避免這種情況有類似:

require_once(PATH_LIBRARY1."/my_file.php")? 
+1

你不知道。要麼將'PATH_LIBRARY'安排爲絕對路徑(例如在啓動時),並且這樣做,或者,如果您包含的是類,請使用[autoloading](http://php.net/manual/en/language)。 oop5.autoload.php)。 – Jon 2013-04-03 22:38:38

+1

看看這個答案[這裏](http://stackoverflow.com/a/15752693/1401975) – HamZa 2013-04-03 22:38:52

回答

4
  1. 你必須瞭解autoloading。 它有助於避免使用require或include。

  2. psr-0標準。 它有助於正確管理文件系統中的類。並使用簡單的自動加載功能。

  3. composer。 它有助於避免寫入任何自動加載。即使你沒有使用psr-0,它也可以創建班級地圖。

+0

哇........我不知道他們中的任何人。但是謝謝你! – francis 2013-04-03 22:38:59

+0

在5分鐘內你會有你的「棒!」,謝謝(我需要等待5分鐘) – francis 2013-04-03 22:47:48

1

幾個選擇:

  • 使用自動加載
  • 定義一個基本路徑常數應用和依賴於
  • 定義一箇中央庫,該庫負責加載你需要
2

在現代PHP應用程序中,對require/include的需求非常小,因爲最有效的方式包括代碼是使用OOP類和自動加載功能。這樣你就不用擔心任何類的代碼位於哪裏,你只需使用該類。

手動包含的唯一東西是類之外的函數和配置數組之類的東西,它們本身也沒有定義類。

相關問題