PHP

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

Sa, 06.04.2013 - 14:55 -- admin

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: Dynamisches Routing im Bundle

Sa, 23.03.2013 - 17:25 -- admin

Das Symfony2 Routing wird normalerweise über die app/config/routing.yml oder die Annotations aufgebaut. Möchte man das allerdings etwas dynamischer gestallten so sind die Möglichkeit mit Core Mittel doch etwas begrenzt. Installiert man zum Beispiel ein Bundle welches Routing-Pfade anbietet, so muss immer das zentrale Routing angepasst. Ein Bundle kann nicht ohne weiteres einfach das Routing erweitern. Sucht man etwas wird man wohl auf diesen Beitrag stoßen, der einen guten Ansatz liefert, allerdings auch noch nicht komplett dynamisch ist: Symfony2: dynamically add routes

Symfony2: Events, Subscriber und der Dispatcher

Sa, 23.03.2013 - 15:36 -- admin

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 -- admin

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 -- admin

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 -- admin

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 -- admin

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.

Symfony2: Twig Engine als String für Mail

Mi, 12.12.2012 - 17:36 -- admin

In Symfony2 kann man die Twig Engine wunderbar für reine HTML-Ausgaben nutzen, dabei werden die Templates allerdings immer nur aus Dateien geladen. Will man die Twig Templates allerdings nicht aus Dateien laden, sondern als reine Strings übergeben, um z.B. Mailtemplates aus der Datenbank weiterzureichen, so hilft uns hier Symfony2 über die DependencyInjection nicht weiter.

Die Templates werden in Symfony und Twig über loader geladen. Dazu werden diverse Klassen von Symfony "zusammengesetzt" und template bereitgestellt. Es muss nun also das ganze quasi nachgebaut werden um den Twig_Loader_String dort nutzen zu können. Zusätzlich bietet Symfony noch weitere Extension an, so dass man das Routing und anderes auch direkt in den Templates nutzen kann. Das läuft alles über den Tag "twig.extension"), ab.

Facebook API: OAuth Access Token generieren

Sa, 21.07.2012 - 12:29 -- admin

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

PHP abonnieren