Clansuite Community Forum


 
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
 
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: nochmal zum Staging  (Gelesen 330 mal)
0 Mitglieder und 2 Gäste betrachten dieses Thema.
paulbr
Developer
*****
Offline Offline

Beiträge: 126


« am: Juni 16, 2011, 07:55:11 »

Hallo Jens,

also entweder macht mein PC was er will oder es ist doch so das overloadWithStagingConfig
so nicht funktioniert.

Bei mir geht es nicht korrekt so wie es soll.
Nur wenn ich den Umweg über die Funktion:
  array_merge_recursive_distinct($array_to_overload, $staging_config)
mache funktioniert es.

Grund:
in der clansuite.config.php werden nicht die parameter der sectionen mit denen aus dem
development.config.php ausgetauscht, sondern die komplette section ersetzt.
Was falsch ist, den in der development.config.php sollten ja nur die parameter stehen,
welche abweichen von der clansuite.config.php, nicht alles.

Beispiel:
clansuite.config.php
[database]
  host = "localhost"
  driver = "pdo_mysql"
  username = "root"
  password = ""
  name = "clansuite"
  charset = "UTF8"
  prefix = "cs_"

development.config.php
[database]
  username = "root"
  password = ""
  name = "clansuitetest"
  prefix = "test_"

Nach dem overload steht in der clansuite.config.php
[database]
  username = "root"
  password = ""
  name = "clansuitetest"
  prefix = "test_"

anstatt:
[database]
  host = "localhost"
  driver = "pdo_mysql"
  username = "root"
  password = ""
  name = "clansuitetest"
  charset = "UTF8"
  prefix = "test_"

Das Overload ersetzt die komplette section [database] anstatt ein merge zu machen.

Prüfe das doch bei dir bitte nochmal, es kann doch nicht sein das es nur bei mir so der Fall ist.

gruss
paul
Gespeichert
Jens-A. Koch
Maintainer
*
Offline Offline

Beiträge: 574

One-Man Team


« Antworten #1 am: Juni 17, 2011, 05:16:29 »

Hallo Paul,

das ist mir noch nicht aufgefallen, da ich die komplette Config rüberkopiert und nur eine andere Tabelle eingetragen habe. Danke für den Report. Ich habs geprüft und es ist fehlerhaft.
http://trac.clansuite.com/ticket/216

Der Union-Operator "+=" mergt zwar die Arrays, aber nicht rekursiv, also steigt nicht in die Unterelemente der Arrays, wie [Database] etc., ein. Im Prinzip ist das ein array_merge().
Aber warum Elemente des Ausgangsarrays rausgelöscht werden, kann ich nich nachvollziehen.

Also Array-Union entspricht array_merge(). Auch array_merge_recursiv() fällt flach, denn hier werden die Unterelemente zwar übernommen, aber leider re-indexiert.
Die Lösung hast Du ja schon geschrieben: array_merge_recursiv_distinct().

Funktional entspricht das auch der neuen array_replace_recursive() Funktion aus 5.3.
Ich hab mal auf Verwendung von array_replace_recursive() abgeändert und
die array_merge_recursiv_distinct() rausgeworfen.

Bei mir läufts damit.
Bitte testen und Feedback geben.

Gruß Jens
Gespeichert

Keine Supportanfragen per PN oder Mail. Fragen bitte nur im Forum stellen (Wie man Fragen richtig stellt).
paulbr
Developer
*****
Offline Offline

Beiträge: 126


« Antworten #2 am: Juni 17, 2011, 11:22:14 »

Hallo Jens,

klasse nun funktionert es korrekt.

gruss
paul
Gespeichert
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  


Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines

Google visited last this page Mai 21, 2012, 06:01:34