21.03.2011
von Daniel
2 Kommentare

Array als Parameterliste an den Konstruktor übergeben

In verschiedenen Fällen kann/muss man, z.B. Callback-Funktionen/Methoden mit einer variablen Parameterliste aufrufen. Was aber, wenn wir ein Objekt durch eine Factory erstellen wollen und der Konstruktor Parameter erwartet?

Die Funktionen call_user_func() oder call_user_func_array() fallen leider aus, da wir noch kein Callback-Objekt haben. Es gibt aber einen sehr einfachen Weg mit Reflections. Weiterlesen →

21.01.2011
von Daniel
3 Kommentare

Amazon S3 mit PHP-Stream Wrapper verwenden

In der letzten Woche habe ich ja bereits über die Komponente Zend_Cloud geschrieben und ungetestet behauptet, dass sie sicherlich leicht zu verwenden sei. Das Testen habe ich nun nachgeholt und habe erwartungsgemäß keine bösen Überraschungen erlebt.

Ganz im Gegenteil, sogar! Während meiner Arbeit mit Amazon S3 kam mir der Gedanke, dass es doch sehr bequem wäre, wenn es einen Stream Wrapper gäbe und man die PHP-eigenen File-Funktionen zum Lesen und Schreiben verwenden könnte.

Nach kurzem Suchen habe ich, wen wird es überraschen, eine noch einfachere Lösung gefunden. Zuerst aber mein Versuch mit Zend_Cloud Dateien nach Amazon S3 zu kopieren. Weiterlesen →

05.01.2011
von Daniel
6 Kommentare

Wir brauchen echte Typen und keine Primitiven, oder?

Ich bin ein großer Fan objektorientierter Programmierung und wenn es nach mir ginge, würde ich auch nur Objekte verwenden.

Aber nach mir geht es nicht, das Leben ist kein Ponyhof und ich habe mich so entschieden mein Geld mit PHP- und nicht mit Java-Programmierung zu verdienen. Genug gejammert, worum geht es? Weiterlesen →

03.01.2011
von Daniel
1 Kommentar

Website-Tours mit JQuery erstellen

Beim Stöbern in meinen Bookmarks habe ich einen interessanten JQuery-Artikel gefunden.

Sameer von CodeDiesel beschreibt in seinem Artikel, wie einfach sich eine Tour durch eine Webseite umsetzen lässt. Aber wer hätte bei JQuery auch was anderes erwartet?

Website-Tours sind sehr nützlich, um neuen Benutzern die Funktionen einer Seite zu erklären und die Navigation zu vereinfachen. Diese Lösung benötigt nur aktiviertes JavaScript und keine besonderen Desktop-Programme oder andere Videoplayer.

Alle Informationen findet ihr aber auch direkt auf der Seite der Autoren.

13.12.2010
von Daniel
4 Kommentare

Faule Models und große Datenmengen

Unter verschiedenen Umständen kann es vorteilhaft sein, wenn Models nicht vollständig geladen und mit Daten befüllt werden, weil das Lesen zu komplex ist (Stichwort EAV-Model) oder wir mit sehr vielen Datensätzen arbeiten und dabei Speicherplatz sparen wollen/müssen.

Gleichzeitig wollen wir aber zu jeder Zeit sicherstellen, dass wir das Model wie gewohnt vollständig abfragen und verwenden können. An dieser Stelle kommt eine Technik namens LazyLoading (lazy = engl. faul, träge) zum Einsatz.

Weiterlesen →

01.12.2010
von Daniel
Kommentare deaktiviert

SPL: Iterator vs. IteratorAggregate

PHP bietet mit der SPL (StandardPHPLibrary) eine Vielzahl fertiger Iteratoren an, mit denen Daten in Schleifen verarbeitet werden können, aber auch zwei Interfaces durch die eigene Objekte iterierbar werden.

Ganz klar, es handelt sich um die Interfaces Iterator und IteratorAggregate. Was aber unterscheidet die beiden?

Weiterlesen →

Schlagwörter: Adapter, Amazon, Animation, Annotations, Anonyme Klasse, Ant, Apache, API, Array, ArrayAccess, Attachment, AutoLoader, Bedienung, Bedingung, Benchmark, Bildbearbeitung, BOM, Bootstrap, Bot, Byte Order Mark, Callback, CamelCase, Canvas, Captcha, Cheatsheet, CLI, Closure, Cloud, CodeSniffer, Community, Comparator, Contest, Controller, Converter, CouchDB, Countable, Cronjob, CSV, CustomLibrary, Custom_Model, Data Mapper, Datei, Datenbank, Datenstruktur, Datentypen, Dating, Decorator, Dekorierer, Design Patterns, Dump, Duplikat, each, Eclipse, Entwicklung, Entwurfsmuster, Enum, Erweiterung, Eventhandling, Exception-Handling, Extension, Factory, Fehler, Flash, Foreach, Formatierung, Formular, Funktion, Futon, Header, HTML5, HTTP, IDE, If, Implementierung, InnoDB, Interceptor, Interface, isset, Iterator, Java, JavaScript, jQuery, Konfiguration, Konsole, Kontrollstruktur, kopieren, Late Static Binding, Layout, Linux, Listeners, Logging, Löschen, Magento, Magic Methods, Marketing, Methode, Model, MVC, MySQL, NetBeans, Objekt, Observable, Observer, OOP, Operator, Parameter, Partnersuche, Performance, PHP, phpMyAdmin, PHPUnit, Plugin, Proxy, Qualitätssicherung, Query, Reflection, Request, Response, Rest-API, Rockstar, Routing, S3, Samba, Scheifen, Schleife, Schutz, Secure Shell, Selbstreferenz, Shop, Sicherheit, Sicherung, Singleton Pattern, SOAP, Sortierung, Sourcecode, Spam, Speicherproblem, Spickzettel, SPL, SSH, Statement, Stellvertreter, Strategy Pattern, Stream, String, Sun VirtualBox, Support, Switch, Symfony, Symfony2, Symfony Live, Tag, Template, Template Method, Ternär Operator, Testing, Thumbnail, Tool, Tour, Twig, Type-Cast, Umwandlung, Underscore, unset, Vererbung, Verzweigung, Video, Videospiel, Virtualisierung, Visitor Pattern, Vorschaubild, walk, Webserver, Webservice, Weiterleitung, Wrapper, Youtube, Zeitsteuerung, Zend Framework, Zend_Cloud, Zend_CodeGenerator, Zend_Http_Client, Zend_Service, Zugriffsmethode