LogoPhly, boy, phly
the weblog and site of Matthew Weier O'Phinney

Wednesday, December 31. 2008

2008: The year in review

That time of year again -- wrap-up time. Each year, it seems like it's the busiest ever, and I often wonder if it will ever slow down. As usual, I'm restricting myself to primarily professional activities out of respect for the privacy of my family.

The short, executive summary:

  • One trip to Israel
  • One trip to The Netherlands
  • One trip to California's Bay Area
  • One trip to Atlanta, GA
  • Three minor releases of Zend Framework
  • Seven webinars, six for zend.com and one for Adobe
  • Three conferences attended as a speaker, including:
    • One six-hour workshop
    • One three-hour tutorial (as a co-presenter)
    • Four regular sessions
    • Two panel sessions (one scheduled, one for an uncon)
    • Two uncon sessions (one as a co-presenter)
    • One foul-mouthed Pecha Kucha talk
  • Ten Burlington, VT PHP User's Group meetings attended; I spoke at many
  • One Bug Hunt week organized
  • Two books reviewed as a technical editor
  • Six articles for DevZone
  • 50 blog entries (including this one)

Read on for the gruesome, month-by-month breakdown.


Continue reading "2008: The year in review"

Posted by Matthew Weier O'Phinney in Dojo, PHP, Programming at 14:17 | Comments (2) | Trackbacks (0)

Tuesday, December 30. 2008

Model Infrastructure

In the last two entries in this series on models, I covered using forms as input filters and integrating ACLs into models. In this entry, I tackle some potential infrastructure for your models.

The Model is a complex subject. However, it is often boiled down to either a single model class or a full object relational mapping (ORM). I personally have never been much of a fan of ORMs as they tie models to the underlying database structure; I don't always use a database, nor do I want to rely on an ORM solution too heavily on the off-chance that I later need to refactor to use services or another type of persistence store. On the other hand, the model as a single class is typically too simplistic.


Continue reading "Model Infrastructure"

Posted by Matthew Weier O'Phinney in PHP at 07:35 | Comments (34) | Trackbacks (0)
Defined tags for this entry: best practices, mvc, php, zend framework

Wednesday, December 24. 2008

Applying ACLs to Models

In my last post, I discussed using Zend_Form as a combination input filter/value object within your models. In this post, I'll discuss using Access Control Lists (ACLs) as part of your modelling strategy.

ACLs are used to indicate who has access to do what on a given resource. In the paradigm I will put forward, your resource is your model, and the what are the various methods of the model. If you finesse a bit, you'll have "user" objects that act as your who.

Just like with forms, you want to put your ACLs as close to your domain logic as possible; in fact, ACLs are part of your domain.


Continue reading "Applying ACLs to Models"

Posted by Matthew Weier O'Phinney in PHP at 07:26 | Comments (27) | Trackback (1)
Defined tags for this entry: mvc, php, zend framework

Monday, December 22. 2008

Using Zend_Form in Your Models

A number of blog posts have sprung up lately in the Zend Framework community discussing the Model in the Model-View-Controller pattern. Zend Framework has never had a concrete Model class or interface; our stand has been that models are specific to the application, and only the developer can really know what would best suit it.

Many other frameworks tie the Model to data access -- typically via the ActiveRecord pattern or a Table Data Gateway -- which completely ignores the fact that this is tying the Model to the method by which it is persisted. What happens later if you start using memcached? or migrate to an SOA architecture? What if, from the very beginning, your data is coming from a web service? What if you do use a database, but your business logic relies on associations between tables?

While the aforementioned posts do an admirable job of discussing the various issues, they don't necessarily give any concrete approaches a developer can use when creating their models. As such, this will be the first in a series of posts aiming to provide some concrete patterns and techniques you can use when creating your models. The examples will primarily be drawing from Zend Framework components, but should apply equally well to a variety of other frameworks.


Continue reading "Using Zend_Form in Your Models"

Posted by Matthew Weier O'Phinney in PHP at 08:30 | Comments (27) | Trackbacks (0)
Defined tags for this entry: mvc, php, zend framework

Monday, December 15. 2008

A Simple PHP Publish-Subscribe System

I've been playing a lot with Dojo lately, and have been very impressed by its elegant publish-subscribe system. Basically, any object can publish an event, and any other object can subscribe to it. This creates an incredibly flexible notification architecture that's completely opt-in.

The system has elements of Aspect Oriented Programming (AOP), as well as the Observer pattern. Its power, however, is in the fact that an individual object does not need to implement any specific interface in order to act as either a Subject or an Observer; the system is globally available.

Being a developer who recognizes good ideas when he sees them, of course I decided to port the idea to PHP. You can see the results on github.


Continue reading "A Simple PHP Publish-Subscribe System"

Posted by Matthew Weier O'Phinney in Dojo, PHP at 10:26 | Comments (22) | Trackbacks (0)

Friday, December 12. 2008

Autocompletion with Zend Framework and Dojo

I've fielded several questions about setting up an autocompleter with Zend Framework and Dojo, and decided it was time to create a HOWTO on the subject, particularly as there are some nuances you need to pay attention to.


Continue reading "Autocompletion with Zend Framework and Dojo"

Posted by Matthew Weier O'Phinney in Dojo, PHP at 11:07 | Comments (4) | Trackbacks (0)
Defined tags for this entry: best practices, dojo, php, zend framework

Wednesday, December 10. 2008

Mumbles irssi integration

I've been using IRC regularly for the past six to nine months, in large part due to the growing ZF community on the Freenode #zftalk channel (unfortunately, I simply don't have time to be in that particular channel any more, but you can generally find me in #zftalk.dev), but also to keep in contact with other peers, friends, and colleagues.

One difficulty, however, is keeping productivity high while staying on IRC. To me, the ultimate client would provide me notifications when somebody mentions my name or a watch word - allowing me to read the channel at my leisure, yet still respond to people in a timely fashion.


Continue reading "Mumbles irssi integration"

Posted by Matthew Weier O'Phinney in Perl, Programming at 15:01 | Comments (5) | Trackbacks (0)
Defined tags for this entry: irc, perl, programming

Tuesday, December 2. 2008

Tidings of the Season

Just about every day, I have an idea for a blog post, and most days, by the end of the day, I just don't have the time or energy to actually write anything up. The inner writer in me screams, "no excuses!" while the aging adult in me whispers, "time for bed, dear."

So, to keep my hand in the game, here are a few things running through my head, or that I'm working on, or that I'll be doing soon.


Continue reading "Tidings of the Season"

Posted by Matthew Weier O'Phinney in Dojo, PHP at 22:07 | Comments (4) | Trackbacks (0)
Defined tags for this entry: best practices, conferences, dojo, php, zend framework
(Page 1 of 1, totaling 8 entries)
  • Home
  • Resume
  • Blog
  • Phly PEAR Channel
  • Contact Me
  • About this site

ZCE

Zend Education Advisory Board Member

Add to Technorati Favorites

Calendar

Back December '08 Forward
Mon Tue Wed Thu Fri Sat Sun
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Quicksearch

Links

  • PHLY - PHp LibrarY
  • Paul M. Jones
  • Mike Naberezny
  • Shahar Evron
  • Planet PHP
  • Zend Where I now work
  • Garden.org Where I once worked

Archives

January 2009
December 2008
November 2008
Recent...
Older...

Categories

XML Linux
XML Personal
XML Aikido
XML Family
XML Programming
XML Dojo
XML Perl
XML PHP

All categories

Syndicate This Blog

XML RSS 0.91 feed
XML RSS 1.0 feed
XML RSS 2.0 feed
ATOM/XML ATOM 0.3 feed
ATOM/XML ATOM 1.0 feed
XML RSS 2.0 Comments

Show tagged entries

xml best practices
xml books
xml conferences
xml dojo
xml dpc08
xml file_fortune
xml linux
xml mvc
xml oop
xml pear
xml perl
xml personal
xml php
xml phpworks08
xml programming
xml ubuntu
xml vim
xml webinar
xml zendcon
xml zendcon08
xml zend framework
© 2004 - present, Matthew Weier O'Phinney
matthew-web <at> weierophinney.net