23.03.2013
von Daniel
8 Kommentare

Symfony2: Dependency Injection Container in Formular/AbstractType verwenden

Das Gute an neuen Projekten ist ja immer, dass Dinge kennenlernt, die man sonst nicht brauchte oder die man nie machen musste, weil sie schon irgendwie gelöst wurden.Wobei ich inzwischen festgestellt habe, dass man mit Symfony2 zwar sehr schnell die Basics generieren kann wie Entities und das CRUD-Handling, aber dass die Zeit bei den Feinheiten schnell wieder verbraucht wird.

In meinem Fall brauchte ich ein einfaches Formular zum Bearbeiten von Entities mit einer ManyToOne-Beziehung und im Dropdown sollten nur Objekte auswählbar sein, die dem angemeldeten Benutzer gehören. Da ich leider keine “Symfony2-Magic-Lösung” fand, habe ich einfach etwas selber gebaut. Es ist klein und handlich und vielleicht kann es ja jemand gebrauchen.

Weiterlesen →

21.03.2013
von Daniel
8 Kommentare

Symfony2: Verlass den Weg und brenne in der Hölle

Wie der Titel vielleicht erahnen lässt, schreibe ich diesen Artikel nicht ganz frustfrei. Hinter mir liegen drei Tage gegoogle und viele schlaue Kommentare selbsternannter Experten in diversen Foren. Dennoch ist die aktuelle Lösung gerade mal ein recht aufwändiger Workaround.

Was hatte ich nur vor? Nun, ursprünglich hatte ich zwei Objekttypen, nennen wir sie einfach Category und Product, die in einer ManyToMany-Beziehung stehen. Wunderbar! Ein paar Annotations an die Entity-Klassen, Methoden und CRUD-Controller generieren und alles läuft binnen weniger Minuten rund.

Nun kam aber eine weitere Anforderung hinzu: Die Position der Produkte soll innerhalb der Kategorie konfigurierbar sein. Eigentlich eine einfache Aufgabe und in Minuten erledigt, dachte ich…

Weiterlesen →

12.03.2013
von Daniel
Keine Kommentare

jQuery: Flexigrid ohne initialen Ajax-Request

Die Flexigrid-Tabellen für jQuery sind, wie der Name es schon andeutet, recht flexibel. Ein Grund dafür ist sicher, dass der benötigte Inhalt immer aktuell per Ajax nachgeladen wird.

Das geschied allerdings auch beim ersten Aufruf der Seite und produziert einen unnötigen Request. Aber auch das ist so flexibel, dass man es dem Grid abgewöhnen kann.

Weiterlesen →

10.03.2013
von Daniel
1 Kommentar

Twig: Flexibel arbeiten mit Blöcken

Durch die Arbeit mit Symfony2 lerne ich immer mehr auch die Vorteile und hohe Flexibilität von Twig zu schätzen. Es bietet einfach eine Menge Funktionen von Hause aus und lässt sich zudem auch einfach erweitern. Aber das nur am Rande.

In einem Projekt an dem ich gerade arbeite verwende ich ein Bootstrap-Grid und will gewisse Teile nur rendern, wenn sie verwendet werden bzw. Inhalte bereitstellen. Dazu müssen entsprechende Blöcke überprüft und CSS-Klassen angepasst werden.

Weiterlesen →

31.01.2013
von Daniel
Keine Kommentare

Symfony2: Custom ParamConverter für HTTP-Requests erstellen

Eines der vielen kleinen Goodies die Symfony2 zu bieten hat ist der ParamConverter. Die ParamConverter übersetzen die Parameter beim HTTP-Request nach den gewünschten Vorgaben. So können zum Beispiel Datenmodelle direkt geladen oder Datum-Strings als DateTime-Objekte genutzt werden. Wenn man mit einem Standardsetup arbeitet, sind diese Converter direkt dabei.

Aber auch eigene Converter sind schnell geschrieben und einsatzfähig. Sämtliche Möglichkeiten des ParamConverters stehen in der Dokumentation.
Weiterlesen →

Schlagwörter: A/B-Test, AbstractType, Adapter, AddOn, Administration, Ajax, Alühn, Alühn2, Amazon, Animation, Annotations, Anonyme Klasse, Ant, Apache, API, Array, ArrayAccess, Attachment, Auftrag, Ausbildung, Auswertung, Authentifizierung, AutoLoader, AWS, Backup, Bedienung, Bedingung, Benchmark, Berechtigung, Berlin, Bildbearbeitung, Bildschirmfoto, Blog, Blogroll, BOM, Bootstrap, Bot, Browser, Bugtracker, Byte Order Mark, Bücher, Cache, CakePHP, Call-Center, Callback, CamelCase, Canvas, Captcha, CDN, Cheatsheet, CLI, Clickout, Closure, Cloud, CodeSniffer, Collection, Community, Comparator, Config, Contest, Controller, Converter, CouchDB, Countable, Cronjob, CRUD, CSS, CSV, CustomLibrary, Custom_Model, Daemon, Data Mapper, Datei, Datenbank, Datensicherung, Datenstruktur, Datentypen, Dating, Datum, Debug, Decorator, Dekorierer, Design, Design Patterns, Doctrine, Dokumentation, Dump, Duplikat, each, EC2, Eclipse, Email, Entwicklung, Entwurfsmuster, Enum, Erweiterung, Event, Eventhandling, Exception-Handling, Extension, Facebook, Factory, Fallback, Fehler, Fehlermeldung, Filter, Firefox, Flash, flexigrid, Foreach, Formatierung, Formular, Framework, FTP, Funktion, Futon, ga:pi(), Getter, Gnome, Google Analytics, Hash, Hash-Bang, Header, htaccess, HTML5, htpasswd, HTTP, HTTPS, IDE, If, Implementierung, InnoDB, Interceptor, Interface, Internet Explorer, isset, Iterator, Java, JavaScript, Job, jQuery, Kommentar, Konfiguration, Konsole, Kontrollstruktur, kopieren, kostenlos, Kundenbetreuung, Late Static Binding, Layout, Links, Linux, Listeners, Lizenz, Logging, Löschen, Magento, Magic Methods, Manual, ManyToMany, Marketing, Methode, Model, Monolog, MVC, MySQL, NetBeans, Network, Nirvanix, Objekt, Observable, Observer, OneToMany, Online Tool, OOP, Open Source, Operator, OR-Mapper, Order, ORM, O’Reilly, Parameter, Partnersuche, Passwort, Performance, PHP, php.ini, PHP hates me, phpMyAdmin, PHPUnit, Plugin, Point and Click, Popup, Praktikum, Proxy, Prüfsumme, Prüfung, QR-Code, Qualitätssicherung, Query, Queue, Redesign, Refactoring, Reflection, Repository, Request, Response, Responsive Design, Rest-API, Rockstar, Rollback, Routing, S3, Samba, Scheifen, Schleife, Schutz, Screenshot, Secure Shell, Selbstreferenz, Server, Setter, setTimeout, Shop, Sicherheit, Sicherung, Sichtbarkeit, Singleton Pattern, Skin, SOAP, Social Network, Software, Sortierung, Sourcecode, Spam, Speicherproblem, Spickzettel, SPL, Splittest, SSH, SSL, Stammtisch, Statement, static, Statistik, Status, Stellvertreter, Strategy Pattern, Stream, String, Stuttgart, Stylesheet, Subversion, Sun VirtualBox, Support, SVN, Switch, Symfony, Symfony2, Symfony Live, Tag, Template, Template Method, Ternär Operator, Testing, Theme, Thumbnail, Tool, Tour, Tracking, Twig, Twitter, Type-Cast, Ubuntu, Umwandlung, Underscore, unset, Update, Upload, Url, User Story, Validierung, Vererbung, Versionskontrolle, Versionsnummer, Verzweigung, Video, Videospiel, Virtualisierung, Visitor Pattern, Vorschaubild, walk, Warteschlange, Webserver, Webservice, Weiterleitung, Werkzeug, Windows, WindowsAzure, WordPress, Wrapper, Writer, XML, Youtube, Zeitschleife, Zeitsteuerung, Zend Framework, Zend_Application, Zend_Cloud, Zend_CodeGenerator, Zend_Http_Client, Zend_Reflection, Zend_Service, ZPress, Zugangskontrolle, Zugriffsmethode