30.09.2013
von Daniel
2 Kommentare

Symfony2: Passwort setzen und verschlüsseln

Wenn man eine Anwendung mit einer Benutzerverwaltung baut, dann kommt man irgendwann mal an den Punkt, dass Passwörter geändert werden sollen. Nur wo das neue Passwort setzen und verschlüsseln?

Symfony2 bietet eine Menge Möglichkeiten für eine lose Kopplung verschiedener Komponenten. Ich wollte die Verschlüsselung daher auch nicht in die Entity verbauen und habe einen anderen Weg gewählt, den ich euch gerne beschreiben will.

Weiterlesen →

29.07.2013
von Daniel
Keine Kommentare

Öfter mal was neues, z.B. ebene7 to go

Ein paar Kleinigkeiten habe ich meinem Blog immer mal wieder funktionell erweitert. Vor einiger Zeit habe ich schon das freie und sehr gute responsive Design Yoko von Elmastudio eingesetzt und eine Anbindung zu Twitter gemacht, so dass ihr euch automatisch über neue Artikel informieren und diese dann auch auf mobilen Geräten gut lesen könnt.

Letztens bin ich über ein jQuery Plugin zum Erzeugen von QR-Codes gestolpert und habe etwas damit experimentiert. Da dachte mir, das passt alles gut zusammen und habe das einfach mal versuchsweise mit auf die Seite genommen. So könnt ihr die aktuelle Seite, sofern sie euch hoffentlich interessiert, ganz einfach auf einem mobilen Gerät laden und weiterlesen.

Das Plugin kann man unter https://github.com/jeromeetienne/jquery-qrcode bekommen und mit wenigen Zeilen Code einbinden.

<div id="qrcode" style="text-align:center;"></div>
<script>
$(function(){
    $('#qrcode').qrcode({
        width: 170,
        height: 170,
        text: window.location.href
    });
});
</script>

Wem es gefällt, der darf es gerne übernehmen. Natürlich freue ich mich wie immer über Kommentare und wenn ihr mir auf Twitter folgt.

04.06.2013
von Daniel
Keine Kommentare

Symfony2: Getrennte Logfiles in der Entwicklungsumgebung

Gerade während der Entwicklung hilft das Logfile oft schnell weiter. Bislang war dies jedoch etwas zu überladen, so dass es teilweise etwas mühsam war die gewünschten Informationen zu finden. Seit Symfony 2.1 lassen sich Channels in Monolog konfigurieren und die Ausgaben können in verschiedene Dateien geschrieben werden.

Dafür muss einfach nur der Eintrag in der app/config/config_dev.yml erweitert werden.

monolog:
  handlers:
    main:
      type:  stream
      path:  %kernel.logs_dir%/%kernel.environment%.log
      level: debug
      channels: !event
    events:
      type:  stream
      path:  %kernel.logs_dir%/%kernel.environment%_events.log
      level: debug
      channels: event

Danach werden die event.debug Ausgaben in eine eigene Datei geschrieben und die Log-Datei ist wieder etwas handlicher.

08.04.2013
von Daniel
2 Kommentare

Symfony2: Unabhängiger mit eigenen Basisklassen

Heute mag ich mal ein paar Ideen und Gedanken zum Thema machen, die mal so bei der Arbeit mit diversen Frameworks entstanden sind. Die Beispiele betreffen zwar das Symfony2 Framework, aber Vergleiche dazu lassen sich auch bei den anderen finden. Es liegt in der Natur von Frameworks, dass sie sich meist unabhängig von der eigenen Anwendung weiterentwickeln, da sie allgemeingültig sein sollen.

Nach Möglichkeit soll das eigene Projekt unabhängig sein von der Version, damit auch nach einem Versionswechsel noch alles wie gehabt funktioniert. Dabei habe ich positive Erfahrungen mit eigenen Basisklassen gemacht. Für manch einen ein alter Hut, für andere unnötig komplex. Hier ein paar Beispiele, wie man Zeit einsparen kann.

Weiterlesen →

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 →

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