SQL-Query über Zend/Db unter Symfony2 ausführen

Sa, 06.04.2013 - 14:55 -- Daniel Espendiller

Es gibt Anwendungsfälle wo man unter Symfony2 mit Doctrine und dem QueryBuilder nicht weiterkommt, wie man unter anderem hier lesen kann: Symfony2 / Doctrine ORM: Tabellen JOIN ohne mapping. Zwar ist es möglich über Doctrine ganz normale SQL-Queries über execute und pdo zu verschicken, allerdings ohne Datenbankabstraktionsschicht und andere SQL Hilfsfunktionen.

Um dann doch ohne Doctrine und ORM eine SQL-Query einfach generieren zu können, habe ich das ZendDbBundle entwickelt. Es erstellt anhand der Symfony2 und Doctrine Konfiguration einen Service bereit, über den Queries per Zend/Db an die Datenbank geschickt werden können.

Symfony2: Events, Subscriber und der Dispatcher

Sa, 23.03.2013 - 15:36 -- Daniel Espendiller

In Symfony2 gibt es eine Event Komponente, die man wie unter The Event Dispatcher Component recht einfach nutzen kann. Dort wird allerdings nicht erklärt wie man das Ganze in seinem Symfony2 Bundle einbinden kann. Dazu gibt es entweder das Kernel-Event oder die Subscriber-Services, beide nutzen jedoch den gleich Event-Dispatcher. Events werden an ihm einfach über Listener registriert. Der Dispatcher führt dann alle bekannte Events mit zusätzlichen Event-Daten aus. Wie man nun diese Registrierung über ein Bundle durchführen kannst ist unten erklärt.

Symfony2 / Doctrine ORM: Tabellen JOIN ohne mapping

Sa, 26.01.2013 - 11:49 -- Daniel Espendiller

Symfony2 und Doctrine nehmen Dank ORM einiges an Arbeit ab. Anhand Entities wird ein Datenbankschema samt Foreign Keys aufgebaut. Mittels InnoDB wird man dadurch gezwungen die Datenbank konsisten zu halten. Es können also keine Daten gelöscht werden, die noch miteinader in Beziehung stehen. Doch manchmal passt dieses Konzept nicht.

BitTorrent Tracker Announce mit PHP als Composer Paket

So, 06.01.2013 - 13:55 -- Daniel Espendiller

Um den alten PHP BitTorrent Announce Client etwas moderner zu gestalten und die Pflege zu vereinfachen, habe ich es komplett neuentwickelt und mich an den PSR-0 Standard gehalten. So kann das ganze dann unter anderem als Composer Paket eingebunden werden. Um den Code so sauber wie möglich zu halten, werden die bereits vorhandenen Projekte christeredvartsen/php-bittorrent zum Einlesen von Torrent Dateien (meine Patches sind ab v1.0 enthalten) und kriswallsmith/buzz für HTTP-Requests genutzt.

Testing mit Composer, Travis CI, PHPUnit und GitHub

Sa, 15.12.2012 - 17:06 -- Daniel Espendiller

travis_ci_php_composerBei modernen PHP-Projekten und Libraries im Open-Source Bereich geht kein Weg mehr an Composer, Travis CI und PHPUnit vorbei. Zumal es mittlerweile echt geniale Dienste gibt, die alles automatisieren. Verknüpft man ein GitHub Repository mit Travis CI, so wird jeder Push aber auch Pull Requests automatisiert getestet.

Composer: eigene Pakete, Fork und Abhänigkeiten ersetzen

Mi, 12.12.2012 - 18:14 -- Daniel Espendiller

composer phpPHP Klassen und Projekte werden mittlerweile zum großten Teil über den Composer verteilt. Er löst uns die Abhängigkeiten der Pakte untereinander auf und stellt Autoloading für PHP bereit. Alle Pakete sind hierbei, so sie denn dort angemeldet werden, unter packagist.org zu finden. Der Composer läd hier auch seine Infos her. Will man nun eigene Pakete nutzen oder ein Paket ersetzen (z.B. für Forks) muss man etwas beachten.

XML in Python lesen, bearbeiten mit ElementTree und prettyprint

Do, 23.08.2012 - 20:02 -- Daniel Espendiller

Zum Bearbeitung einer XML Datei brauchte ich in Python eine einfach CRUD Klasse. Darüber sollten sich Elemente hinzufügen, editieren, verschieben und löschen lassen. Daneben sollte eine leer XML automatisch angelegt werden und XML-Ausgabe muss dann auch noch richtig formatiert und eingerückt werden. Gerade letzteres ist leider nicht ohne weitere Python Library nicht einfach möglich (siehe dazu die Verweise), wenn man ein älter Version nutzt oder ein Light-Umgebung zur Verfügung hat. Das alles brauchte ich für MyTube: Youtube auf der Dreambox mit Enigma2. Ich habe dazu die eigentlich Klasse dann noch um default Values erweitert.

MyTube: Youtube auf der Dreambox mit Enigma2

Di, 31.07.2012 - 21:02 -- Daniel Espendiller

youtube mytube authenfikationAuf der Dreambox bzw. Enigma2 basierenden Geräte gibt es viele Erweiterungen um Zugriff auf YouTube Videos zukommen. Keine davon genügt allerdings meinen Ansprüchen. So fehlten für mich eine richtige Suchhistory (mit Speicherung, Filterung), Authenfikation mit einem Account und hier und da eine paar Kleinigkeiten. Ich habe mir also die offzielle MyTube Erweiterung genommen und die nötige Änderungen vorgekommen, so dass ich komplett alles neu entwickeln musste.

Facebook API: OAuth Access Token generieren

Sa, 21.07.2012 - 12:29 -- Daniel Espendiller

Für mein kleines Experiment einer Facebook App:Facebook client for Enigma2 / Dreambox brauchte ich die OAuth User Access Tokens, um Zugriff auf den Open Graph von Facebook zukommen. Dazu muss man bei Facebook eine App erstellen. Die Generierung der Tokens erfolgt dann über die üblichen Facebook "Anwendung Installations-Anfragen" innerhalb des Browser. Da man unter Enigma2 allerdings keinen echten Browser hat, musste ich etwas Basteln.

Seiten

Subscribe to neueste Beiträge