Blog

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


MySQL von 5.0 auf 4.1 downgraden

Manchmal kann es vorkommen, dass ein älteres CMS oder ein älterer webshop nicht mit der aktuellen MySQL Version klar kommt. In diesem Fall gibt es 2 Möglichkeiten:
- einen weiteren MySQL-Server in der passenden Version einrichten
- MySQL auf die richtige Version downgraden.

Letzteres lässt sich z.B. bei Ubuntu komfortabel über apt-get install mysql-server-4.1 mysql-client-4.1 erreichen, der Paketmanager entfernt sogar automatisch die alte MySQL 5.0 Version.

Tags:

... den ganzen Beitrag lesen