The item has not been saved due to some errors.

Falls symfony und der Admin Generator einem diese Fehlermeldung anzeigt:

“The item has not been saved due to some errors.”

und sonst weiter schweigt und man schon den halben Core debugt hat und auch sonst der Auffassung ist man hat alles richtig gemacht .

Dann nicht durchdrehen, sondern cool bleiben und mal checken ob man nicht zufällig ein Field auf required gesetzt hat, aber es durch die generator.yml nicht anzeigt!

Gosh! Zeit für Feierabend!

Javascript Code Quality Checker

JSLint ist ein Tool zur statischen Codeanalyse wie bspw. Checkstyle, den einem die Javaprofs gerne mal im ersten Semester OOP aufzwingen. JSLint prüft, wie der Name schon sagt – Javascript-Code. Aber Vorsicht:

JSLint will hurt your feelings!

Kleine Randnotiz: Der hier muss natürlich wieder rumstänkern, aber das gehört wohl zu jedem guten Nerd-Blogger, der etwas auf sich hält ;).

Diese Prüfwerkzeuge, die es mittlerweile für so gut wie jede neuere (nicht älter als <>20 Jahre) Programmiersprache gibt, stellen natürlich nur ein Mittel von vielen zur Qualitätssicherung in der Softwareentwicklung, außerdem ist blindes Vertrauen natürlich Fehl am Platze.

symfony 1.2. Admin Generator mit Datepicker

Eigentlich hatte ich gedacht, dass das irgendwie einfacher gehen würde, aber hat mich dann doch einiges an Recherche gekostet.

Nachdem ich irgendwann mal das “My First Project” durchgespielt hatte, war ich der Auffasung, dass der Datepicker immer benutzt wird beim Admin Generator. Doch nachdem ich dann mal eine andere Anleitung benutzt hatte mußte ich feststellen: Das ist nicht immer so!

Den Unterschied macht, wie man den Admin Generator aufruft:

php symfony propel:init-admin backend post BlogPost

ist symfony 1.0 und macht den DatePicker

php symfony propel:generate-admin backend BlogComment --module=comment

ist symfony 1.2 und generiert stattdessen ein häßliches pulldown.

Um nun für 1.2. doch einen DatePicker zu bekommen nützt es auch nix irgendwas in der generator.yml anzugeben. Das wird alles ignoriert.

Continue reading “symfony 1.2. Admin Generator mit Datepicker”

Ein Projekt mit Zend Framework anlegen via USVN und Subclipse

Mal wieder ein neues Projekt anlegen, wird Zeit, dass das mal automatisch geht.

Diesmal aber noch manuell und zwar so:

USVN benutzen wir um bequem unsere Repos zu verwalten, hat sich bisher bewährt im manuellen Betrieb.

Für den automatisierten Betrieb kann ich es allerdings nicht empfehlen.

Der Text hier gilt für USVN Version 0.7.2, es gibts übrigens eine neuere Version 1.0.1, da kann ich allerdings noch nicht viel zu sagen.

benutzen wir um bequem unsere Repos zu verwalten, hat sich bisher bewährt im manuellen Betrieb.
Für den automatisierten Betrieb kann ich es allerdings nicht empfehlen

Also ein svn Projekt anlegen: Continue reading “Ein Projekt mit Zend Framework anlegen via USVN und Subclipse”

Simple Tags

Eines meiner persönlichen Lieblingsplugins – wer die Tagsammlung meines persönlichen Blogs, kleinski.de gesehen hat, weiß auch warum – ist Simple Tags von Amaury Balmer.

Denn dank des Plugins ist die Verschlagwortung von Artikeln binnen kürzester Zeit erledigt und, via Zugriff auf die Yahoo terms extractions API und den Service Tag The Net, werden bekannte Personen, Namen und andere Ausdrücke, die man vielleicht selber gerade nicht auf dem Schirm hat, aus dem entsprechenden Pool gefischt und jeder Artikel ist mit wenigen Mausklicks getagged.

Tag it.

CouchDB E-Book

Eine dieser neumodischen dokumentenbasierenten Datenbanken. Ich bin über eine ausführliche Dokumentation gestolpert, nämlich gibt es das ziemlich brandneue Buch “CouchDB – The Definitive Guide” (J. Anderson, Noah Slater, Jan Lehnard, CouchDB – The Definitive Guide, ISBN 978-0-596-15589-6) von O’Reilly als E-Book zum im-Internet-angucken und umsonst. Unter dieser Adresse. Schon die ersten Kapitel machen Lust, in die Thematik zu schnuppern. Schon immer mal wollte ich via Dojo JsonRESTStore einen Webservice so richtig ansaugen und zwar ohne das lästige PHP dazwischen. Mit CouchDB scheint das auf einfachste Weise möglich zu sein. Continue reading “CouchDB E-Book”

Behave, baby!

Doctrine macht es dem Entwickler leicht, seine Object-Models mit Businesslogic anzureichern. Entsprechende Methoden an der Doctrine_Record-  – oder allgemeiner – an einer entsprechenden Doctrine_Table-Kindklasse zu verdrahten ist ein Kinderspiel. Irgendwann trifft man dann auf einen Anwendungsfall, der eine entsprechende Zusatzfunktionalität erfordert, ohne dass das “Tätigkeitsfeld” dieser Funktionalität auf nur eine Gruppe von Entitäten zu begrenzen wäre. Anstatt nun die immer gleichen Methoden für alle seine Object-Models, die die neue Funktionalität benötigen, zu implementieren und damit ziemlich viel Code zu produzieren, möchte man lieber das ORM-Framework selbst erweitern. Auch hierfür bietet Doctrine die entsprechenden Schnittstellen: Einen Eventdispatcher zusammen mit ziemlich viele Stellen im Code, denen man “zuhören” kann und das Konzept der Behaviours (dt. etwa Verhaltensmuster): Oh behave!

Continue reading “Behave, baby!”

Tiny URLs mit PHP und der tinyurl API

für den Fall dass ich nicht der einzige bin, der das bis vorhin nicht wusste:

tinyurl.com hat auch eine API.
Die ist zwar unglaublich simpel, aber das ist doch auch mal schön.

$tinyURL =  file_get_contents( 'http://tinyurl.com/api-create.php?url='.$tooLongURL );

und vice versa (hackish):

function reverse_tinyurl($url){
            // Resolves a TinyURL.com encoded url to it's source.
            $url = explode('.com/', $url);
            $url = 'http://preview.tinyurl.com/'.$url[1];
            $preview = file_get_contents($url);
            preg_match('/redirecturl" href="(.*)">/', $preview, $matches);
            return $matches[1];
        }

Continue reading “Tiny URLs mit PHP und der tinyurl API”