Vorweg in eigener Sache: Ich habe zwar schon einen [url="http://www.kingcrunch2000.de/blog/2009/04/21/vorschau-zend-framework-18-autoloader/"]Beitrag über die neue Autoloader-Komponente[/url] vom [url="http://framework.zend.com"]Zend-Framework[/url], allerdings scheint noch Bedarf zu sein, wie ich im [url="http://www.zfforum.de/"]Forum[/url] erkannte. Deshalb habe ich (diesmal als Seite) nochmal einen separaten Artikel über die ganzen [url="http://www.kingcrunch2000.de/blog/zend-framework/loader/"]Zend_Loader-Familie[/url] verfasst, der bei Bedarf auch noch korrigiert und angepasst wird.

Mit (von mir selbst liebevoll getauft) "Return-Includes" sind PHP-Dateien gemeint, die selbst einen Rückgabewert haben. DASPRiD -- mittlerweile auch Bastler im Zend-Framework-Haus -- hat in seinem [url="http://www.dasprids.de/"]Blog[/url] dazu einen Artikel verfasst, wie sich diese Technik schnell und einfach für [url="http://www.dasprids.de/blog/2009/05/08/writing-powerful-and-easy-config-files-with-php-arrays"]abhängigkeitslose Konfigurationsdateien[/url]. Er nennt es zwar anders, aber für mich existiert auch schon länger der Vorteil, dass dabei keine externen Bibliotheken benötigt werden, bzw sie sind benutzbar, während es die Klassen der Bibliothek (noch) nicht sind.

Vor einer Sache möchte ich aber noch Warnen. [url="http://us3.php.net/array_merge_recursive"]array_merge_recursive()[/url] überschreibt niemals Werte, sondern fasst sie (bei gleichem Schlüssel) nur zusammen. Dies kann zu merkwürdigen und schwer verfolgbaren Fehlern führen
[php]< ?php
$a = array (
'config'=>array(
'db'=>array(
'dbname'=>'name')));
$b = array (
'config'=>array(
'db'=>array(
'dbname'=>'thisConfigUseAnotherName')));

var_dump (array_merge_recursive($a,$b));
/*
array(1) {
["config"]=>
array(1) {
["db"]=>
array(1) {
["dbname"]=>
array(2) {
[0]=>
string(4) "name"
[1]=>
string(24) "thisConfigUseAnotherName"
}
}
}
}
*/[/php]

Eine PHP-native Funktion, die zwei Arrays rekursiv kombiniert und dabei aber gleichnamige Schlüssel mit skalaren Werten überschreibt, ist mir nicht bekannt, weswegen man kurz selbst tätig werden muss. Oder man schaut in die [url="http://us3.php.net/manual/en/function.array-merge-recursive.php#89684"]Kommentare zur Funktion[/url] im [url="http://us3.php.net/manual/en/index.php"]PHP-Manual[/url].