Wenn man das PHP Maximum function nesting Limit erreicht, dann ist das normalerweise kein gutes Zeichen. Nutzt man allerdings komplexe Systeme, wie das CMS TYPO3, dann kann das schon mal passieren. In der offiziellen Doku von dem Content Management System ist das glaube ich auch irgendwo beschrieben. Konkret sieht das bei der error Ausgabe oder im Error Log dann so aus.
Fatal error: Maximum function nesting level of ‚100‘ reached, aborting!
php.ini Einstellung für Nesting Level für TYPO3 und Xdebug erhöhen
xdebug.max_nesting_level = 200
Jeder PHP Entwickler freut sich außerordentlich über die tollen Möglichkeiten in einer PHP Entwicklungsumgebung mit Xdebug. Arbeitet man allerdings zusätzlich noch in Verbindung mit einem TYPO3 CMS System ist das Limit für verschachtelte Funktionsaufrufe – nesting level – sehr schnell erreicht. Das trifft natürlich in diesem Fall nicht nur auf TYPO3, sondern auch auf andere Content Management Systeme oder komplexere Applikationen gegebenenfalls mit dem Zend Framework zu. Mit dem PHP Framework Codeigniter wird dieses Limit zum Beispiel nicht so schnell erreicht. Aber es hängt natürlich immer vom Anwendungsfall ab und es ist auch klar warum das – nesting level – Default auf 100 steht. Hier wird der Rechenleistung in der PHP Entwicklungsumgebung schon eine Menge abverlangt. Daher darf man sich nicht wundern, wenn man das Level hoch setzt, daß man gegebenenfalls eine scheinbare Endlosschleife laufen lässt und die Applikation von selber nicht mehr abbricht. In Entwicklungsumgebungen sind in der Regel auch die max_execution_time und das memory_limit hoch gesetzt worden. Diese Kombination kann einen Neustart des Apache Servers verlangen, falls man aus dem Laden nicht mehr rauskommt.