是的我查看了本主题中的前几个问题,但仍然无法解决问题。我在我的脚本中尝试ini_set('xdebug.max_nesting_level', 5000);
但仍然得到了错误。所以我会告诉你我正在做些什么来希望得到一些并得到解决方案。
基本上我使用数据库中的数据运行测试。
include 'testSettings.php';
//get config
$conf = Config::getInstance('sendCsv.php');
$conf->getConfig();
$formatter = new FormatterContext(new CSVFormatter($conf));
$formatter->formatLoads(null);
当我调用`$ formatter-> formatLoads(null)时出现抱怨;
所以这是FormatterContext()
class FormatterContext
{
private $strategy;
public function __construct(IFormatter $formater)
{
$this->strategy = $formater;
}
public function formatLoads()
{
return $this->formatLoads();
}
}
界面:
abstract class IFormatter
{
private $config;
private $formatted;
private $fileMaps;
private $fileRows;
abstract public function formatLoads($loads);
public function __construct(Config $conf)
{
$this->fileMaps = $conf->__get('fileMaps');
$this->fileRows = $conf->__get('fileRows');
}
}
战略:
class CSVFormatter extends IFormatter
{
public function formatLoads($loads)
{
echo "hello world!\n";
}
}
现在我真的不知道我在这里做错了什么。这是我第一次遇到这个错误。除了嵌套级别= 5000我没有尝试过,我认为在那一点上有些事情是错误的。感谢
答案 0 :(得分:0)
精氨酸!愚蠢的我......在上下文课程中,我调用了上下文formatLoad()
而不是策略。哎呀!
上下文类应该是:
class FormatterContext
{
private $strategy;
public function __construct(IFormatter $formater)
{
$this->strategy = $formater;
}
public function formatLoads()
{
// return $this->formatLoads();
return $this->strategy->formatLoads();
}
}