PHP类的根目录

时间:2011-01-08 14:45:05

标签: php class directory root

任何人都知道如何像wordpress一样创建 php类根目录吗? 它最重要的是像wordpress 我有一些文件夹

*include:
 -header.php
 -footer.php
*images
*forms
 -index.php

问题是当我使用php header图像没有正确链接时,无论如何都要解决它。
我读了一些文章来使用$_SERVER['DOCUMENT_ROOT'].,我如何在全球范围内应用它?

4 个答案:

答案 0 :(得分:1)

我设法做到的最不奇怪的方式:

  1. 将您的应用根(通常为$_SERVER[DOCUMENT_ROOT])添加到include_path(可在php.ini,apache配置中轻松完成,或在运行时使用set_include_path
  2. 将__autoload函数定义为require "classes/{$classname}.class.php"
  3. 您可能需要将文件名称设为小写;我忘了__autoload是否以小写的形式传递了类名,但我似乎记得那个问题。

答案 1 :(得分:1)

您必须定义include_pathinclude_path与Windows和UNIX上的$PATH类似。当你要求一个文件(带有require或include)时,PHP会尝试在当前目录中找到它。如果找不到,那么将开始尝试使用include_path中定义的目录。

include_path是一个PHP.ini环境变量,因此您可以在主php.ini文件中,.htaccess中使用php_value修改它,或使用{{ 3}}

例如,当您添加了class文件夹时,您可以在任何项目的文件中运行require('class/foo.php');,并且只有当您<时才会找到您的全局类文件夹strong>不要在那里有另一个类文件夹。

祝你好运!

答案 2 :(得分:1)

不确定它与您正在寻找的内容有多大关系,但万一它有所帮助:在大多数网站中,我从头开始将不必要的php文件包含在不同的文件夹中(取决于语言,部分等)一个简单的代码。从URL中,我得到语言以及节和页面变量:

$root = $_SERVER['DOCUMENT_ROOT'];
$include_string = ":/$root:/$root/$lang:/$root/$lang/$section:/$root/$lang/$section/$page";
ini_set("include_path", ".:../:$include_string");

我的代码有点复杂,因为还有一些变量和共享文件夹,但是对于一些循环和条件,它们也是一样的。

答案 3 :(得分:0)

$_SERVER['DOCUMENT_ROOT']将在全球范围内发挥作用。

$_SERVER是PHP superglobals之一。