ZPress: Update 01/11

| Keine Kommentare

Das letzte Update zum Projektfortschritt liegt schon eine Weile zurück und es ist mal wieder Zeit für ein weiteres Lebenszeichen. Das wichtigste zuerst: Ich bin immer noch motiviert dabei und es geht sowohl mit der Planung, wie auch mit der Entwicklung voran.

Bereits im August letzten Jahres habe ich darüber berichtet, dass ich für ZPress Geschichten schreiben will und das verfolge ich auch so weiter. Im Laufe der Zeit kommen regelmäßig neue Wünsche und Ideen dazu und der Einsatz eines Bugtrackers zum Verwalten der Aufgaben ist jetzt nicht nur sehr nützlich, sondern macht auch richtig Spaß.

Die Aufgaben lassen sich oft gut bündeln und in weitere Untertasks aufteilen. Dadurch ergeben sich viele kleine “Häppchen”, die sich auch mit wenig Zeit mal eben zwischendurch erledigen lassen. Persönlich finde ich das sehr angenehm, da ich dann nicht alles im Kopf behalten muss und es auch meine Motivation steigert, wenn ich öfter mal den “resolved”-Button klicken darf.

Viele von euch werden das sicher auch schon vom Job her kennen und allen Hobbyentwicklern kann ich das nur empfehlen. Für meine Zwecke habe ich Mantis-Bugtracker im Einsatz, habe aber auch gute Erfahrungen mit Bugzilla und Jira gemacht.

Die aktuellen Schwerpunkte in der Entwicklung sind das User-Modul, das Post-Modul für Artikel und Seiten, sowie noch viele umliegenden Baustellen. Vieles befindet sich noch in der “MacGyver”-Phase und ist erstmal provisorisch umgesetzt, damit die anderen Bereiche funktionieren können.

Ein wichtiger Bestandteil im Core-Modul ist das Meta-Model, welches alle allgemeinen Informationen zu einem Objekt speichert und auf sehr einfache Weise bei Bedarf verwendet werden kann, z.B. für das Post-Model. Durch die Auslagerung müssen sich nicht sämtliche Objekte selber darum kümmern und jedes Objekt erhält zudem eine eindeutige Id, mit der dann später systemweit gearbeitet werden kann.

Durch die Id können dann andere Module einfacher arbeiten, da es dann egal ist, ob beispielsweise ein Post, ein Bild oder ein Link kommentiert oder bewertet wird. Es wird einfach die jeweilige Information zu der Id gespeichert oder geladen.

Das eben erwähnte Post-Modul verarbeitet die Beiträge inzwischen auch versioniert und wer sich nicht ganz sicher ist, was er/sie lesen will, der kann sich auch einen Zufallsartikel präsentieren lassen. Letzteres war einer dieser kleinen Lückenfüller-Tasks.

Ansonsten experimentiere ich noch etwas mit einer bereits älteren Aufgabe herum. Es geht dabei um wiederkehrende Zugriffsmethoden in Modellen, die nicht über eine einfache Vererbung implementiert werden können.

Vor einem guten halben Jahr hatte ich dazu schon mal etwas zu einer einfachen Plugin-Schnittstelle geschrieben, aber es stellte sich heraus, dass dieser Ansatz nicht flexibel genug ist, um alle Anforderungen abzudecken.

Aktuell verwende ich dafür bestimmte Model-Objekte als Handle, die sich gewöhnlich über die Factory erzeugen lassen und den Übergang zwischen Ids und Objekten herstellen können.

Diese “Handles” lassen sich nun für einzelne Felder eines Models zuweisen und werden dann vom zentralen _get() oder _set() eingebunden. Später sollen diese dann auch über eine Konfiguration hinzugefügt werden.

Die eigentliche Logik wird nach dem Stategie-Muster ausgelagert und wiederverwendet. So kann man vom Meta_Model nicht nur die owner_id, creator_id und modifier_id bekommen, sondern auch direkt die jeweiligen Objekte. Das spart einiges an Arbeit.

So, das war diesmal etwas umfangreicher. Fragen, Hinweise oder Kritik könnt ihr gerne wie gewohnt in den Kommentaren hinterlassen.

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.


Schlagwörter: A/B-Test, AbstractType, Adapter, AddOn, Administration, Ajax, 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, 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, Popup, 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