一步步 :
加载:
require_once('forms.php');
require_once('members.php');
require_once('messages.php');
应该由一个自动加载脚本来处理spl_autoload_register
:
spl_autoload_register(function($class){ require($class.'.php');});
一个非常好的做法是尊重PSR-0
规范并composer
用作自动加载器。要被允许使用PSR-0
,请确保您至少拥有 PHP 5.3
什么是 PSR-0?
PHPFIG 建议制作可以轻松包含在每个 php 框架中的标准模块。它列出了要遵循的规则列表,以确保您的代码可以以标准方式自动加载。因此,您将使用与目录架构同步的命名空间。
Composer 是一个强大的工具,它依赖于 PSR-0 来自动加载你的类。更重要的是,它能够创建一个依赖树来加载每个尊重 PSR-0 的组件,例如每个 Symfony2 包都可以独立于 Symfony 本身加载,你只需要加载包所依赖的 Symfony 组件(例如 HTTPFundation或 YamlComponent)。如果您的项目依赖于 Symfony Yaml 组件,则在名为composer.json
您的配置文件中require
添加
'Symfony\Component\Yaml': *;
每次你使用php composer.phar update
它都会得到它的最新版本并将它包含到你的项目中。
关于依赖和循环:
永远不要使用全局!维护是一种痛苦。它只能用于绝望的情况。对于您的,您可以通过将分配分成两部分来打破构造循环:
class members() {
function __construct($forms)
{
$this->forms = $forms;
$form->setMembers($this);// here is the trick
}
}
class forms(){
public function __construct($members = null){
$this->members = $members;
}
public function setMembers(Members $m){
$this->members = $members;
}
}