2010-03-23 67 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