Book review: "TYPO3 Extension Development" by Dmitry Dulepov
Abstract: A review of the book TYPO3 Extension Development" by Dmitry Dulepov, Packt Publishing
A couple of months ago I started working on a Typo3 project for a client, and at about the same time I was asked by the folks at Packt Publishing to review a book, so the choice fell naturally on "Typo3 Extension Development" by Dmitry Dulepov.
The book, published in September 2008, covers the entire extension development life cycle, from planning to uploading it to the Typo3 Extension Repository (TER).
The Book's Table of Contents:
- Chapter 1: About TYPO3 API
API overview, common classes and files, data storage, db API, helper functions, hooks, language support, be/fe API.
- Chapter 2: Anatomy of TYPO3 Extension (sample chapter [PDF])
Typo3 extension categories, and structure of the files
- Chapter 3: Planning Extensions
Requirement gathering, DB structure, documentation, etc.
- Chapter 4: Generating Extensions
Step-by-step guide to the Kickstarter extension for different extension types.
- Chapter 5: Frontend Plugin: An In-Depth Study
TypoScript and FlexForm configuration, templating, localisation, caching
- Chapter 6: Programming Frontend Plugins
From the generated skeleton to a full plugin
- Chapter 7: Programming Backend Modules
Similar to the previous chapter, but focused on Backend modules: DB structure (TCA), hooks, modules.
- Chapter 8: Finalizing Extensions
Code revision, packaging, documentation writing, upload to TER.
I read this book while actually developing some new extensions and I must say it turned the task into a smooth and painless process, holding the reader's hands on every step. Typo3 is terrific from many point of views, and really stands up for it reputation of being an "enterprise CMS", though its code is anything but elegant (hey, the project started more than 10 years ago!), so delving into its internals is not for the faint of the heart.
This lean book is perfect if you want to start writing extensions without having to study the whole core for months, since it highlights the most important classes, files and APIs.
Depending on what you intend to do, Dmitry explains what the best type of extension for that goal and scope is, and in chapters 6 and 7 (perhaps the most interesting part of the book) gives practical examples of frontend and backend extension programming.
Unlike other books, where only a few code snippets are shown (leaving the beginner reader clueless on how to glue them together), here you can see the full extension code, explained bit by bit, with references and tips on how similar things could be implemented in a different way.
Also, the chosen examples are generic enough to cover different aspects such as caching, locale-aware content, templating.
The caching bits are especially interesting since there's not much documentation available on the internet: a proof of that is that many of the extensions available on TER are turning off caching for the whole page, instead of for the extension alone, resulting in an avoidable performance hit.
Another interesting section of the book which isn't easily found on the internet explains how to enable in-place editing. Considering how complex the Typo3 admin interface might appear to the non-techie editor, this is certainly something that improves the usability of your web app a lot.
I also read another Typo3 book in Packt's offering, "TYPO3: Enterprise Content Management", but that book, although also very useful and almost 3 times as big, is more like a reference, while Dmitry's book is leaner and with a tutorial-like approach that favors real examples over generic descriptions, resulting in a more engaging read.
Generally speaking, the perceived goal of the book is to give an immediate head-start to the reader, showing the most common functions and processes, and skipping over less common stuff. At times, I wish the writer had lingered a bit longer on certain topics, instead of dismissing them briefly and pointing to the online TSref, but the book would probably lose its leanness.
The only thing I found a bit annoying about the book is its term index, too scarce to be of any use.
I think this is a common pitfall of all Packt's books, my advice to the editors is to look after this section, since having a good (complete and easy to search) term reference would save a lot of precious time to the readers, especially for technical books like this one.
- On batching vs. latency, and jobqueue models
- Updated Kafka PHP client library
- Musings on some technical papers I read this weekend: Google Dremel, NoSQL comparison, Gossip Protocols
- Historical Twitter access - A journey into optimising Hadoop jobs
- Kafka proposed as Apache incubator project
- NoSQL Databases: What, When and Why (PHPUK2011)
- PHPNW10 slides and new job!