Jump to content


Foto

Getting started with Symfony2 2.0.5 and MAMP 2.0.5 - Part 1

symfony2 mamp fosuserbundle

No replies to this topic

#1 Thomas

Thomas

    Member

  • Adminstrator
  • PIPPIP
  • 86 Beiträge:

Geschrieben 06 November 2011 - 19:31

Letze Woche kam ich auf die Idee für ein neues Projekt und da ich mit vielen anderen Frameworks schon gearbeitet hatte, beginne ich das neue Projekt mit Symfony2, denn von den Konzepten her, hat sich das Framework stark an Techniken orientiert, die bisher eher in der Java Welt zu Hause waren. Somit denke ich, dass im PHP-Bereich Symfony2 mit das modernste Framework am Markt ist.

Obwohl es im Büro letzte Woche ein wenig stressig war, hatte ich es geschafft, abends schnell in Word die Projektidee in Grundzügen festzuhalten. Nachdem ich mir dann gestern mit der MySQL Workbench ein wenig Gedanken über die Datenstruktur gemacht habe, habe ich heute dann begonnen, den ersten Code zu generieren. Generieren passt hier ganz gut, da ich bis jetzt noch keine eigene Zeile Code geschrieben habe und dennoch denke ich, dass es schon an dieser Stelle Sinn macht, einen Beitrag zu schreiben.

Bevor es losging habe ich MAMP auf die aktuelle Version 2.0.5 aktualisiert und dann mit der Standard Edition von Symfony 2.0.5 begonnen (welch ein Zufall, dass beide Systeme aktuell die gleich Versionsnummer haben).

Mit was beginnt man am besten? Ich habe noch keine Ahnung, aber ein Bundle für das eigene Projekt klingt sinnvoll. Ab in die Console,
./app/console generate:bundle
eingetippt, die Felder ausgefüllt und schon hatte ich in der Form AcmeProjectBundle mein erstes Bundle erstellt.

Da ich das Rad nicht neu erfinden wollte, entschied ich mich dazu, das FOSUserBundle zu verwenden. In der Installationsanleitung stand, dass man seine eigene Userklasse implementieren muss. Also wieder ab auf die Console und
./app/console gen:doctrine:entity
ausgeführt sowie
AcmeProjectBundle:User
als Namen gewählt und keine eigenen Felder definiert.

In der generierten Entity-Klasse musste ich noch die Vererbung nachziehen:
class User extends BaseUser {
   ...
}
und die Imports anpassen:
use FOS\UserBundle\Entity\User as BaseUser;

Außerdem setze ich mich noch ein wenig über die Installationsanleitung hinweg und nannte meine Tabelle nicht fos_users sondern einfach nur users, da user bei MySQL reserviert ist. Dank der Annotationen war das mit
@ORM\Table(name="users")
natürlich extrem einfach.

Bis jetzt war das alles sehr einfach und nun begannen die lieben Umgebungsprobleme als ich
./app/console doctrine:schema:update --force
ausführen wolle. Also musste ich doch Google fragen und kam auch recht schnell auf die Lösung. Das Connect Problem zur Datenbank ließ sich einfach lösen, in dem ich in die config.yml bei doctrine > dbal
unix_socket: /Applications/MAMP/tmp/mysql/mysql.sock
eintrug.

Mein Schema wurde leider immer noch nicht erstellt, denn nun bekam ich eine Timezone-Exception. Aber auch hier fand ich in einem Blog eine Lösung. Einfach unter /private/etc/ eine php.ini anlegen und dort
date.timezone = "UTC"
reinschreiben. Ich bin mir nicht so ganz sicher, ob das die eleganteste Lösung ist oder ob es vielleicht sinnvollere Einstellungen gibt, die man in der MAMP Konfiguration machen kann, aber zumindest war die Exception weg und endlich wurde meine users-Tabelle angelegt.

Unter http://localhost:8888/project/web/app_dev.php/login ist nun die Loginseite aus dem FOSUserBundle erreichbar.

Für heute reicht es mir und ich muss jetzt erst einmal schauen, welches die nächsten Schritte in dem Projekt sein werden bzw. sein müssen. Bestimmt werde ich noch zu dem einen oder anderen Stolperstein kommen, so dass es bestimmt weitere Folgen in dieser Beitragsreihe geben wird.



Antworten



  


0 Besucher lesen dieses Thema

0 members, 0 guests, 0 anonymous users