2010-03-23 64 views
1

這是一個普遍問題。當您移動文件或將文件移動到不同的目錄時,您採用了哪些技術來防止PHP代碼中的鏈接中斷?PHP中的健壯目錄管理器

+0

你是什麼意思的「切換目錄」? – 2010-03-23 07:42:07

回答

1

對於前端的東西,始終使用絕對URL(以'/'開頭,以便您可以根據需要從一個域移動到另一個域)。

對於內部include()/require()類型的東西,按照Gaurav建議並使用創建常量來表示路徑的配置文件(以便您可以根據需要從代碼中的一個位置輕鬆更改它)。

對於要重用的庫類型的東西(即類,函數等),我會通過php.ini(全局或本地),.htaccess(如果您使用的是Apache)將其添加到include_path或通過ini_set()函數。這樣,你可以包括這些文件的文件名(即<?php include_once('library.php'); ?>

如果你去ini_set路線,看看auto_append指令(它可以通過php.ini,.htaccess或ini_set設置) ...這樣,您可以爲每個頁面請求添加一個'bootstrap'文件,該文件只爲該應用程序設置include_path,而無需在每次轉動的位置添加ini_set語句。

說了這麼多,我建議你:

  • 認爲自己的申請提前佈局提前,制定共同的約定,並堅持下去。
  • 考慮學習設計模式(MVC等),這將讓你以新的方式思考如何設計應用程序
  • 採納使用的應用程序框架(CakePHP中,Zend框架等),這將到來與建議(或強制)的文件/目錄佈局,讓你不必管理文件的位置和東西。

祝你好運!

+0

令人敬畏的寫作......正是我所需要的。謝謝! – Matt 2010-03-23 10:25:09

1

如果您移動/重命名整個網頁鏈接的文件,並希望確保鏈接仍然有效,我會編寫一個303重定向(在哪裏以及如何取決於您的Web服務器以及它的配置)。

1

我使用配置文件其中I定義所有路徑(using define())至不同的目錄,如「根目錄」,「應用程序」或「樣式表」

這樣我需要改變只有一條線在一個文件並且這些更改在使用此變量的所有文件中都受到影響。

+0

如果移動包含所有路徑的目錄(或文件本身)會發生什麼? ;) – Strae 2010-03-23 08:07:40

+0

如果你將目錄移動到一個新的位置,那麼你只需要在配置文件中改變它的路徑,但如果你移動配置文件,那麼你將不得不做出調整。 – 2010-03-23 10:53:30