Most Content Management System requirements can be fulfilled by eZ Publish without any custom PHP coding. But sooner or later experienced eZ Publish implementers get to the point where a project needs some special functionality and it becomes necessary to develop extensions.
(This tutorial was initially published on 21/01/2008, and refreshed to match the 4.x series on 10/12/2010)