Ab heute, dem 7. 3. 2011, steht auf http://symfony.com die “Standard-Edition” der neuesten Version 2 des populären RAD-Frameworks zum Download bereit. Bereits am vergangenen Wochenende ging die neue Website des Projekts online.
Continue reading “Symfony 2 Standard Edition released”
[Symfony 2] Sandbox/Standard Edition – bootstrap.php
Wer sich wundert, woher die beiden Dateien “app/bootstrap.php” respektive “app/bootstrap_cache.php” im Standard-app-Verzeichnis der Sandbox kommen: Das Script unter bin/build_bootstrap.php generiert eben diese aus existierenden Sourcen.
Continue reading “[Symfony 2] Sandbox/Standard Edition – bootstrap.php”
Symfony command line Farben unter Snow Leopard
d’oh
seit längerem hatte ich erfolglos versucht den Ouput der Symfony Tasks auf meinem Mac farbig dargestellt zu bekommen.
Nach Experimenten mit verschiedenen Color Themes und AddOns für die Terminal.app und / oder iTerm hatte ich dann die tollsten Ansi Farben, Prompts und VI-Themes.
Continue reading “Symfony command line Farben unter Snow Leopard”
symfony und Google Analytics
Ich weiss nicht ob Ihr es wußtet:
Es gibt ein feines Plugin für Google Analytics für symfony.
Kris Wallsmith sei dank.
Da kann man sich fragen, warum denn ein Plugin dafür?
Die paar Zeilen Code kopier ich doch schnell ins Layout.
Über das Plugin kann man jedoch Analytics “environment aware” einbinden.
Man will ja nicht das die Test- oder gar Entwicklungsumgebung die Messung verfälscht.
Symfony 2 “from scratch” bootstrappen
… machen wir heute mal, weil die Sandbox komisch ist mit den vielen (ärm – 2) redundanten /vendor und /wasweißich-Verzeichnissen.
Also, bauen wir die Sandbox mal nach:
symfony 1.4 – automatisierte builds
Hier mal ein Beispiel für einen (via shell script) automatisierten build bei einer PHP, Symfony 1.4 Anwendung mit GIT zur Versionskontrolle.
#wipe old version of build db mysql -uUSER -pPW drop build-db
#wipe the build workspace rm -rf ./build-workspace
#checkout the sourcecode git clone git@my-domain.com:my-repository ./build-workspace
cd build-workspace
Symfony 2 PR3: doctrine:schema:create liefert “No Metadata Classes to process.”
Die Doku stellt in Aussicht, dass man den “normalen” Doctrine-Namespace-Shortcut benutzen kann, also bspw. @Entity anstelle von @DoctrineOrmMappingEntity. Funktioniert aber nicht, weil in irgend einer Service-Configuration dieser Namespace auf einen Alias gemapped wird, der da lautet “orm”. Die Syntax lautet aber nun auch nicht @ormEntity, sondern @orm:Entity. Schreibt man sein Model also bspw. so:
<?php namespace ApplicationHelloBundleEntity; /** * ApplicationHelloBundleEntityUser * * @orm:Table(name="users") * @orm:Entity */ class User { /** * @var integer $id * * @orm:Column(name="id", type="integer") * @orm:Id * @orm:GeneratedValue(strategy="AUTO") */ protected $id;
sollten alle CLI-Tasks auch wunderbar funktionieren. Es bleibt zu hoffen, dass die DI-Services eine reichhaltige Parameter-Dokumentation spendiert kriegen und das ganze Bundle-System eine transparente, dokumentierte API erhalten (wo zum Teufel liegt in der Sandbox bitte der versprochene Doctrine-Controller?)
Die Einstellung findet sich übrigens in der Service-Configuration unter src/vendor/symfony/src/Symfony/Bundle/DoctrineBundle/Resources/config/orm.xml:
<service id="doctrine.orm.metadata_driver.annotation.reader" class="%doctrine.orm.metadata.annotation_reader_class%"> <call method="setAnnotationNamespaceAlias"> <argument>DoctrineORMMapping</argument> <argument>orm</argument> </call> </service>
Ist leicht zu finden, wenn man weiß, wonach man suchen muss. Ich denke, es ist am einfachsten, die Service-Definition des DI-Containers an entsprechender Stelle an seine eigenen Bedürfnisse anzupassen. Wie das zuverlässig und projektübergreifend funktioniert, erkläre ich vielleicht mal, wenn ich’s selbst gerafft hab.
Achso, hier noch der Nebensatz (etwas herunter scrollen), in dem gesagt wird, das Jonathan irgendwann mal das “orm:” Präfix einführt. Symfony 2 ist definitiv noch nicht ready for production (was aber auch niemand behauptet).
Dependency Injection mit Symfony 1.x
Durch meine ersten Gehversuche mit Grails sowie einen interessanten Vortrag über JSF2 bin ich kürzlich über das Kürzel “IoC” gestoßen. Das ganze ist vom Prinzip her recht einfach und in Grails, das im Grunde ein stinknormales MVC-Pattern implementiert, konkret gelöst, indem man durch eine Namenskonvention am Controller automatisch sogenannte Services instanziiert.
Ein symfony Projekt in git
Neulich habe ich mal ein Projekt von SVN auf git umgezogen.
Ähnlich wie bei SVN muss auch hierbei das Projekt ein bißchen vorbereitet werden damit die Versionierung
das macht was sie soll.
Das Projekt wird in Eclipse bearbeitet, also wird auch hier drauf Rücksicht genommen.
Alles was man beachten muss ist eigentlich nur die ignores für git richtig zu setzen.
Hier mal meine Ignore List:
The only valid measurement of code quality: WTFs/minute
oder: Doctrine 2 wird wohl ziemlich gut.
Hier gibt es ein paar Notizen von Jonathan Wage’s Präsentation dazu!
Continue reading “The only valid measurement of code quality: WTFs/minute”