Blog

Analysis Paralysis oder die Qual der Wahl

Man könnte genau so gut auch "die Wahl der Qual" sagen. Es gibt wissenschaftliche Abhandlungen darüber, dass wir Menschen nicht gut mit zu viel Auswahl umgehen können. Zu viel Auswahl macht uns - und das ist bewiesen - unglücklich, weil wir immer das Gefühl haben, das Falsche ausgewählt zu haben. Wahre Foltermeister sind demzufolge China-Restaurants mit 3-stelligen Bestellnummern, dutzenden Permutationen der Zutaten Huhn, Ente, Rind, Schwein, Reis, Nudeln und den üblichen Gemüsebeilagen.

Aber warum müssen sich Programmierer das antun?

Aktuell müssen wir die Entscheidung für ein PHP-Framework treffen (die Entscheidung für Netbeans und gegen die Eclipse-IDE und derer Derivate haben wir zum Glück schon hinter uns) und da gibt es einige potentielle Kandidaten (in zufälliger Reihenfolge):

Tags:

... den ganzen Beitrag lesen


Zend Framework: Konfigurationsdaten aus der application.ini lesen

Das Zend Framework ist hervorragend dokumentiert, es werden PHP-Coding Standards verwendet und alles ist vorbildlich mit Unit-Tests abgedeckt.

Dennoch gibt es aber manchmal Fälle, in denen man sich in der Dokumentation verliert und einfach nicht mehr weiter kommt.

Einer dieser alltäglichen Fälle ist das Auslesen von Konfigurationsdaten aus der application.ini
In der Zend Framework Dokumentation werden zwei Möglichkeiten beschrieben, wie man die eigene PHP-Applikation über PHP oder über XML konfigurieren kann.

Aber die offensichtliche Lösung über application.ini wird nicht behandelt.

Folgende Lösung funktioniert (zumindest mit der Version 1.9.0):

In der application.ini wird zunächst die gewünschte Konfiguration angelegt, in diesem Fall die Zugangsparameter zu einer MySQL-Datenbank:

  1. db1.host = "someHost"
  2. db1.dbname = "someDb"
  3. db1.username = "someUser"
  4. db1.password = "somePassword"


Im Controller, der die Konfigurationsdaten benötigt, wird die foldende Methode erstellt:

  1. public function preDispatch() {
  2.         $bootstrap = $this->getInvokeArg('bootstrap');
  3.         $config = $bootstrap->getOptions();
  4.        
  5.         $this->_db1_config = array(
  6.          'host' => $config['db1']['host']
  7.         ,'dbname' => $config['db1']['dbname']
  8.         ,'username' => $config['db1']['username']
  9.         ,'password' => $config['db1']['password']);
  10.  
  11.         parent::preDispatch();
  12. }


Aus dieser Methode geht hervor, dass wir ein (per Konvention) privates Attribut _db1config im Controller anlegen müssen mit Daten aus der application.ini über $bootstrap->getOptions() füttern.

Da diese Zugangsdaten zur Datenbank jetzt - natürlich rein zufällig - als Array vorliegen, können diese direkt weiterverwendet werden, z.B. so:

  1. Zend_Db::factory('Mysqli', $this->_db1_config);

Tags:

... den ganzen Beitrag lesen