KingCrunchs kleine Welt

Gedanken über PHP und was mich sonst bewegt…

Zend_Loader und „Return-Includes“

| Keine Kommentare

Vorweg in eigener Sache: Ich habe zwar schon einen Beitrag über die neue Autoloader-Komponente vom Zend-Framework, allerdings scheint noch Bedarf zu sein, wie ich im Forum erkannte. Deshalb habe ich (diesmal als Seite) nochmal einen separaten Artikel über die ganzen Zend_Loader-Familie 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 Blog dazu einen Artikel verfasst, wie sich diese Technik schnell und einfach für abhängigkeitslose Konfigurationsdateien. 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. array_merge_recursive() überschreibt niemals Werte, sondern fasst sie (bei gleichem Schlüssel) nur zusammen. Dies kann zu merkwürdigen und schwer verfolgbaren Fehlern führen

< ?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"
      }
    }
  }
}
*/

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 Kommentare zur Funktion im PHP-Manual.

Kommentar verfassen

Bad Behavior has blocked 9 access attempts in the last 7 days.

Page optimized by WP Minify WordPress Plugin

%d Bloggern gefällt das:

Durch das Fortsetzen der Benutzung dieser Seite, stimmst du der Benutzung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen", um Ihnen das beste Surferlebnis möglich zu geben. Wenn Sie diese Website ohne Änderung Ihrer Cookie-Einstellungen zu verwenden fortzufahren, oder klicken Sie auf "Akzeptieren" unten, dann erklären Sie sich mit diesen.

Schließen