The Curious Engineer

All blogs / PHP

Rob Allen

akrabat.com

An article by Rob Allen

PHPDev tools / editors / IDEsWeb developmentDevOps / SRE / infrastructureEngineering blogs

Posts
785 from 23 Jan 2005 to 26 Oct 2026
Posting
monthly (11 in the last year)
Kind
personal blog
Feed
https://akrabat.com/feed/

2026 9

  1. Sort git branches by date
  2. Find the slowest PHPUnit tests
  3. Apidays London 2026
  4. Opening Sublime Text from the command line
  5. Fixing two minor git irritations in my OSS fork workflow
  6. Create an HTML version of an OpenAPI spec
  7. PHPStan custom rules
  8. Feelings
  9. Dad

2025 43

  1. 2025 in pictures
  2. IPTC export changed in Photos for macOS 26 Tahoe
  3. Appending text to Obsidan via Shortcuts
  4. mac-volume: A CLI to control device volume
  5. Opening Slack Jira Cloud links in the right browser
  6. Fixing PostgreSQL collation version mismatch
  7. Jumping to the end of bash's history
  8. Converting JWKS JSON to PEM using Python
  9. Stop in-place editing of bash history items
  10. Extending an OpenAPI Component Schema
  11. Saving the current URL to a Note
  12. Accessing Longplay info for SwiftBar
  13. Responding to StreamDeck buttons with Keyboard Maestro
  14. Step-debugging Docker Compose NestJS services
  15. QuickSS: Screenshot the active window on Mac
  16. Notarising a macOS standalone binary
  17. Using the 1Password CLI in a script
  18. Accessing my printer's web app remotely via Tailscale
  19. FIxing Linux Tailscale exit node routing
  20. Renaming files with Hazel
  21. Updating SMTP relay in postfix
  22. Global word count on Mac using Shortcuts
  23. Moving a Perforce P4 P4ROOT to a different drive
  24. Updated rst2pdf website
  25. Using OneOf for a property in an OpenAPI spec
  26. Additional parameters on a PHP interface method
  27. Some thoughts on LLM usage in my work
  28. Previewing OpenAPI specs using redocly's Docker container
  29. Using the Stripe CLI with with Docker Compose
  30. No SSL padlock on Safari on macOS 18.4
  31. Generating scripts with LLMs
  32. Backing up Signal messages on Mac
  33. Getting the screen's size in a macOS screensaver
  34. Privileges app: sudo for macOS
  35. Cloudflare SSL/TLS setting for an encrypted connection to upstream
  36. Converting a PHPUnit TestListener to an Event Subscriber
  37. OAuth scopes vs user roles
  38. Writing out the page contents in Playwright
  39. Activating rather than relaunching a menu bar app on macOS
  40. Using uv as your shebang line
  41. Always expand the Fantastical editor popover
  42. Global git ignore patterns
  43. Enabling a focus mode when an app is running on Mac

2024 53

  1. 2024 in pictures
  2. Developing rst2pdf with uv
  3. Sunrise and sunset times on the Mac command line
  4. Internet Speedtest from the command line
  5. Running DisplayLink Manager on Mac without the purple icon
  6. Testing internal network speed with iperf3
  7. Prepending to the terminal's prompt
  8. Parsing command line arguments in Python
  9. Defining Python dependencies at the top of the file
  10. Selecting the correct iPhone to mirror in macOS Sequoia
  11. Installing PyMuPDF on a prerelease Python
  12. Scripting News is 30 years old
  13. Running Spectral lint in Gitlab CI
  14. Docker Compose DNS entries
  15. Increase truncated body in a Guzzle exception
  16. Fixing PhpStorm cannot find a local copy of Standard Input Code
  17. Installing the SQL Server PHP extension in Docker on Mac
  18. Prevent the Docker container from taking 10 seconds to stop
  19. File uploads with Slim 4, tested with curl
  20. UUID v7
  21. Keyword substitutions make life easier
  22. Damaged application error when developing for Mac
  23. Missing trailing new line when using cat in a bash script
  24. Use xxd to convert to hex
  25. Changing port maps in Docker Compose
  26. A short primer on SPF, DKIM and DMARC
  27. Indenting output in a shell script with pr
  28. Using Monolog's TestHandler
  29. Getting status code and body from curl in a bash script
  30. Release process checklist
  31. Renaming PDF files based on their content
  32. Small scripts for repetitive tasks
  33. Exercise
  34. macOS tips and tricks
  35. Command line access to GitLab & GitHub
  36. Stash unstaged changes in git
  37. Command line access to the Mac Keychain with keyring
  38. Matt Gemmell's short stories
  39. Check licenses of composer dependencies
  40. Reinstall pipx apps after Homebrew Python upgrade
  41. Creating JWKS.json file in PHP
  42. A quick guide to JWTs in PHP
  43. Sleeping an external hard drive
  44. Setting up a new hard drive in Linux
  45. Using GitHub Actions to add Go binaries to a Release
  46. A few thoughts on conferences
  47. Building Go binaries for different platforms
  48. Setting the version of a Go application when building
  49. Backing up to an external HDD using rsync
  50. Uploading to Flickr directly from Mac Finder
  51. Darkening an image with ImageMagick
  52. Updating Flickr metadata using Python
  53. Creating montages with ImageMagick

2023 9

  1. 2023 in pictures
  2. index.md vs _index.md in Hugo
  3. Set a file's created date from YAML front matter in macOS
  4. Getting a Bundle ID using an Alfred File Action
  5. Use ExifTool to remove private data in images
  6. Counting the rows in a SQL Group By query
  7. Keep your iPhone passcode secret
  8. PHPUK 2023
  9. Successful SOC 2 Type II compliance

2022 6

  1. 2022 in pictures
  2. Only display body on error with curl
  3. Override Nginx media type for a URL
  4. Installing Xdebug on PHP 8.1 installed with Homebrew
  5. BBEdit Hosts File Syntax Highlighting
  6. Background images and multiple styles in rst2pdf

2021 11

  1. 2021 in Pictures
  2. Add TouchID authentication to sudo
  3. Quick script to (re)create my python virtualenv
  4. Changelog generator for GitHub milestones
  5. Setting HTTP status code based on Exception in Slim 4
  6. A few Git tips
  7. OpenConnect on Mac
  8. Dependency injection in Serverless PHP with Bref
  9. MailTrackerBlocker
  10. Keyboard control of Big Sur notification alerts
  11. Free ticket to The Online PHP Conference!

2020 18

  1. 2020 in Pictures
  2. Add Apple Watch authentication to sudo
  3. Using jenv to select Java version on macOS
  4. Installing PHP extensions without pecl in PHP 8 Docker images
  5. Syncing macOS Keychain certificates with Homebrew's OpenSSL
  6. Using MailHog via Docker for testing email
  7. Dorothy Hodgkin
  8. Step-debugging linked composer dependencies with PhpStorm
  9. Completely reset Apple Watch's Mac auto-unlock
  10. Recursive PHP lint
  11. Prevent an external drive from auto mounting on macOS
  12. Ignoring mass reformatting commits with git blame
  13. Converting JSON to a struct in Go
  14. Validating default PHP session ID values
  15. Turn off foreign key checks when restoring a mysql file dump
  16. A logo for rst2pdf
  17. Creating collections with the Lightroom Classic SDK
  18. Writing a Lightroom Classic plug-in

2019 41

  1. 2019 in Pictures
  2. Migrating to Lightroom Classic from Apple Photos
  3. Routing in Slim 4
  4. Keyboard shortcut to mirror displays on a Touch Bar Mac
  5. My JetBrains IDE shortcuts
  6. Dark and light mode blog images with MarsEdit
  7. Cannot find zlib headers on macOS 10.15 Catalina
  8. Changing an SQL Server primary key in Doctrine Migrations
  9. First steps with Windows on Vagrant
  10. Testing migrating to Laminas
  11. Embedding Notist slides
  12. HTML encode selected text on Mac
  13. Custom error rendering in Slim 4
  14. Folder types in AppleScript
  15. Dependency Injection in Slim 4
  16. Running Slim 4 in a subdirectory
  17. Slim4-empty: minimal Slim 4 starting point
  18. Receiving input into a Slim 4 application
  19. Automatically mounting a network drive on Mac
  20. A first look at Slim 4
  21. Displaying exif information in WordPress posts
  22. Images and WordPress
  23. Developing WordPress sites with Docker
  24. Setting title and caption with exiftool
  25. Creating virtual environments with Pyenv
  26. Using a separate master password in 1Password for Mac
  27. Running PHP applications on Azure App Engine
  28. Step debugging sphinx-build in PyCharm
  29. PHP Architect: Serverless PHP With Bref, Part 2
  30. Keyboard shortcut to Save as PDF on Mac
  31. Extracting the base name of a file in Bash
  32. Circular dependencies in AWS SAM Policies
  33. Changing the AWS API Gateway response status code in SAM
  34. My Bref Makefile
  35. PHP Architect: Serverless PHP With Bref, Part 1
  36. Slim 4 Cyclomatic Complexity
  37. Using img2lambda to publish your Serverless PHP layer
  38. rst2pdf: back from the dead!
  39. Setting up IBM Cloud Object Storage
  40. Keyboard control of macOS notification alerts
  41. Serverless PHP on AWS Lamda

2018 18

  1. 2018 in pictures
  2. Autojump is magic
  3. Upgrading to Bash 4 on macOS
  4. Route specific configuration in Slim
  5. Migrating to password_verify
  6. Replacing a built-in PHP function when testing a component
  7. Analysing the focal length of my photos
  8. Using .vimrc for project specific settings
  9. Notes for working on the OpenWhisk PHP Runtime
  10. Using Fractal as your OpenWhisk API's view layer
  11. Dependency Injection with OpenWhisk PHP
  12. Using API Gateway with Serverless & OpenWhisk
  13. Using Composer with Serverless & OpenWhisk
  14. Using Serverless Framework with OpenWhisk PHP
  15. Invoking many OpenWhisk actions from another one
  16. Using async/await in OpenWhisk
  17. Automated Testing for PHP training course
  18. Using Composer packages with OpenWhisk

2017 47

  1. 2017 in pictures
  2. Run the UniFi Controller headless on Mac
  3. Generating training handouts for printing
  4. Implementing CORS in Zend Expressive
  5. Customising Whoops in Expressive
  6. Using Docker to create a MySQL server
  7. OuputBuffer Middleware for Expressive
  8. Displaying errors in Expressive with Twig
  9. "Software architecture is failing" by Alex Hudson
  10. Pretty print curl -i
  11. Converting a Composer dependency to git for editing
  12. Custom URLs for a Cloud Foundry application
  13. CORS and OpenWhisk web actions
  14. CLI credentials for a Cloud Foundry database
  15. Using PostgreSQL with PHP in Cloud Foundry
  16. Deploying a PHP application to Cloud Foundry
  17. Adding a user to your Bluemix space
  18. Getting started with Serverless PHP
  19. Logging in to Bluemix via wsk
  20. Creating an OpenWhisk Alexa skill
  21. Getting started writing an Alexa Skill
  22. Simple way to add a filter to Zend-InputFilter
  23. Default route arguments in Slim
  24. Slim's route cache file
  25. Inserting binary data into SQL Server with ZF1 & PHP 7
  26. Autocomplete Composer script names on the command line
  27. Switching OpenWhisk environments
  28. POSTing data using KituraNet
  29. Using CircleCI for a PHP project
  30. Automatically converting PDF to Keynote
  31. Detecting OpenWhisk web actions
  32. Calling an OpenWhisk action in Swift
  33. Passing secrets to your OpenWhisk action
  34. Quick tip: OpenWhisk autocompletion
  35. Error handling in OpenWhisk actions
  36. Using ngrok to test on a mobile
  37. OpenWhisk web actions
  38. Serverless Swift on OpenWhisk
  39. Keyboard shortcut to resize Finder columns
  40. Stand-alone usage of Zend-InputFilter
  41. Rendering problem details in Slim
  42. Rendering ApiProblem with PSR-7
  43. Making Slack accessible on macOS
  44. A note on framework performance
  45. Homestead per-project crib sheet
  46. Automatic OCR with Hazel and PDFPen
  47. Using Phive to manage PHPUnit

2016 46

  1. 2016 in pictures
  2. SSH keys in macOS Sierra
  3. Handling JSON data errors in Slim 3
  4. Use curl to create a CouchDB admin user
  5. PHPNW 2016 API Tutorial
  6. On respect in the workplace
  7. Hide the ST3 sidebar automatically
  8. Using CharlesProxy's root SSL with home-brew curl
  9. Using HTTP/2 with PHP 7 on Mac
  10. RESTful APIs and media-types
  11. A Kitura tutorial
  12. 10 years since my ZF Tutorial
  13. Passing on the baton
  14. Screenshot of the active window on Mac
  15. Introducing SwiftDotEnv
  16. Checklist for releasing Slim
  17. Auto reloading a PDF on OS X
  18. API errors are first class citizens
  19. Standalone Doctrine Migrations redux
  20. Ctags with Swift
  21. Iteration in fixed-everything projects
  22. Notes on keyboard only use of macOS
  23. View an SSL certificate from the command line
  24. Cross-platform Makefile for Swift
  25. View header and body with curl
  26. swiftenv: Swift version manager
  27. Filtering the PSR-7 body in middleware
  28. Slim 3.4.0 now provides PSR-7!
  29. Compiling Swift on Linux
  30. DI Factories for Slim controllers
  31. Easily install Swift on Linux
  32. Unit testing with Swift PM
  33. Overriding Slim 3's error handling
  34. Using Eloquent in Slim Framework
  35. Free the Geek appearance
  36. A few composer tips
  37. Configuration in Slim Framework
  38. Testing Slim Framework actions
  39. Determining the image type of a file
  40. Improved error handling in Slim 3.2.0
  41. Team culture and diversity
  42. Use vim's :make to preview Markdown
  43. PSR-7 file uploads in Slim 3
  44. Proxying SSL via Charles from Vagrant
  45. The internal pointer of an array
  46. Getting started with Zewo

2015 58

  1. 2015 in pictures
  2. Function pointers in my Swift CCurl library
  3. Using Composer with shared hosting
  4. Wrapping variadic functions for use in Swift
  5. Using a C-library in Swift
  6. Swift around the web
  7. An Ansible playbook for Swift
  8. Running Phan against Slim 3
  9. Installing Phan on OS X
  10. Installing 32 bit packages on Ubuntu 14.04
  11. Slim 3.0 RC2 Released
  12. Writing PSR-7 middleware
  13. Changing Apigility's auth token expiry
  14. Render an array based on accept header
  15. Kathy
  16. The beginner's guide to rebasing your PR
  17. The beginner's guide to contributing to a GitHub project
  18. On blocking ads
  19. Simple Ansible file for Z-Ray preview
  20. Improved error handling in Slim 3 RC1
  21. random_bytes() in PHP 5.6 and 5.5
  22. Slim-Csrf with Slim 3
  23. Using abstract factories with Slim 3
  24. Zend\Input fallback value
  25. Zend\Input and empty values
  26. Checking your code for PSR-2
  27. Custom OAuth2 authentication in Apiiglity
  28. Replacing Pimple in a Slim 3 application
  29. Debugging PHP SOAP over SSL using Charles
  30. First beta of Slim Framework 3
  31. Selecting the service port with PHP's SoapClient
  32. Accessing services in Slim 3
  33. Testing my ZF1 app on PHP 7
  34. Brent Simmons: How Not to Crash #9: Mindset
  35. 20 years of PHP
  36. My Xdebug configuration
  37. Turn warnings into exceptions
  38. A Slim3 Skeleton
  39. Role models
  40. Styling rst2pdf tables
  41. ZF2 validator message keys
  42. Using Zend\Config with a Slim app
  43. installing XHGui via Ansible
  44. Logging errors in Slim 3
  45. Building and testing the upcoming PHP7
  46. WordCamp London, 2015
  47. Run Slim 2 from the command line
  48. Ally
  49. Convert PHP Warnings and notices into fatal errors
  50. Git submodules cheat sheet
  51. Routing to a controller with Slim 2
  52. Sending test emails from PHP
  53. Customising Bootstrap 3
  54. Dependency injection in Slim framework 2
  55. Setup Doctrine Migrations to update MySQL timestamp on update
  56. Shorter directory text in Bash prompt
  57. Setting OS X's Terminal Tab to the current directory
  58. Exclude elements from Zend\Form's getData()

2014 49

  1. 2014 in pictures
  2. Recursively deleting elements from an array
  3. SSL certificate verification on PHP 5.6
  4. Overriding the built-in Twig date filter
  5. Converting databases between MySQL and SQL Server
  6. Validating JSON with ZF2's Zend\Validator
  7. Autocomplete Phing targets on the command line
  8. A few Phing tips
  9. Using Phing to SSH into a Vagrant box
  10. My "new" blogging habit
  11. Registering Doctrine Type Mappings for standalone migrations
  12. Routing specific traffic to the VPN on OS X
  13. Using Doctrine Migrations as a standalone tool
  14. Two incidents
  15. Why I care about codes of conduct
  16. Provisioning with Ansible within the Vagrant guest
  17. substr_in_array
  18. Setting up PHP & MySQL on OS X Yosemite
  19. Git push to multiple repositories
  20. Kim
  21. Jerry-rigging pygments to support new PHP keywords
  22. Context specific history at the bash prompt
  23. Alias for the PHP built-in server
  24. Setting up mailcatcher as a service in Debian/Ubuntu
  25. Codes of conduct
  26. Using ZF2 Forms with Twig
  27. Sending attachments in multipart emails with Zend\Mail
  28. Throw an exception when simplexml_load_string fails
  29. Redirecting in Slim 2 Middleware
  30. Integrating ZF2 forms into Slim
  31. Globally overriding validation messages for ZF2 forms
  32. Creating a ZF2 form from config
  33. View status of all Vagrant environments
  34. Prefixing every key in a hash ref in Perl
  35. Z-Ray for Zend Server 7
  36. Privilege
  37. Missing mime-info database for use with File::MimeInfo
  38. Speaking at DPC & OSCON
  39. Styling a Chosen select to fit Bootstrap 3 better
  40. Perl syntax highlighting in Sublime Text 3
  41. Injecting dependencies into your ZF2 controllers
  42. Sharing host VPN with Vagrant
  43. Some (disjointed) notes on provisioning Vagrant with Ansible
  44. Writing to vagrant synced folders
  45. Immutable entities
  46. Use statements
  47. Broken
  48. Creating a zip file with PHP's ZipArchive
  49. Implementing a ZF2 development mode

2013 31

  1. 2013 in pictures
  2. Global installation of PHP tools with Composer
  3. Apigility tutorial on TechPortal
  4. Setting up PHP & MySQL on OS X Mavericks
  5. Manuel Stosic: Understanding Zend Framework 3 before it's out
  6. Lorenzo Ferrara: Testing Apigility Code-Connected REST API
  7. Investigating Apigility
  8. Changing the GitHub IRC hooks notification events
  9. Returning JSON errors in a ZF2 application
  10. rst2html does not support :startinline:
  11. Setting up Zend Server 6 on OS X for PHP development
  12. Password-less command line scripts with MySQL 5.6
  13. Configuring a ZF2 view helper before rendering
  14. Using PHP's NumberFormatter to format currencies
  15. Returning a ZF2 HydratingResultSet when starting with raw SQL
  16. Displaying the generated SQL from a ZendDbSql object
  17. IN and Zend\Db\Sql's where()
  18. Caching your ZF2 merged configuration
  19. Contracts and NDAs for Nineteen Feet
  20. Injecting configuration into a ZF2 controller
  21. Adding Diff syntax highlighting to Sublime Text
  22. Simple logging of ZF2 exceptions
  23. Notes on embedding fonts in rst2pdf
  24. Setting the umask when using Capistrano
  25. Minding my own business
  26. Objects in the model layer: Part 2
  27. Ideas of March: It's my content and my opinion
  28. Objects in the model layer
  29. Changing the format of a ZendForm DateTime element
  30. Improved Sublime Text 2 PHP getter and setter generation
  31. Thoughts on module directory structure

2012 67

  1. 2012 in pictures
  2. Zend Framework 1 is not dead; ensure you upgrade!
  3. Some notes on git
  4. Git export from BitBucket
  5. Migrating to BitBucket from Subversion
  6. Using ZendSession
  7. Integrating BjyAuthorize with ZendNavigation
  8. Introducing AkrabatSession
  9. Zend Framework 1 or 2 training in Belgium in January 2013?
  10. Martin Shwalbe: Getting Started with REST and Zend Framework 2
  11. Zend\ServiceManager configuration keys
  12. Sending an HTML with text alternative email with Zend\Mail
  13. PHPNW12: Some photos
  14. Jurian Sluiman: Using Zend Framework service managers in your application
  15. Preparing for the ZF2 Tutorial at PHPNW12
  16. ZF2: Using the ServiceManager as an Inversion of Control Container (Part 1)
  17. Module specific layouts in ZF2
  18. Zend Framework 2.0.0 STABLE Released!
  19. Introducing Avalance: A landslide presentations theme
  20. ZF2 training at PHPNW 2012
  21. Setting up PHP & MySQL on OS X 10.8 Mountain Lion
  22. ZF1.12 is released
  23. Setting up required fields that can be empty with Zend\InputFilter
  24. Missing fields in $_POST
  25. My ZF2 tutorial now part of the official ZF2 docs
  26. Evan Coury: Creating a simple view helper in Zend Framework 2
  27. Adam Lundrigan: Quick-and-dirty ZF2: ZendNavigation
  28. Updated ZF2 tutorial for Beta 5
  29. Evan Coury: Using ZendDb’s TableGateway and HydratingResultSet to return rows as custom entity/model objects
  30. Jurian Sluiman: Use 3rd party modules in Zend Framework 2
  31. Gittyup – Easily keep master in sync with upstream
  32. Kyle Spraggs: How does configuration work in ZF2?
  33. Padraic Brady: Automatic Output Escaping In PHP And The Real Future Of Preventing Cross-Site Scripting (XSS)
  34. Kyle Spraggs: ZF Commons – A Zend Framework 2 organization
  35. Enrico Zimuel: Cryptography made easy with Zend Framework
  36. Gary Hockin: Zend Framework 2 and a Restful Application
  37. Zend Framework 2 beta 4 released
  38. Evan Coury: Module-specific layouts in Zend Framework 2
  39. Vagrant in Zend Framework 1
  40. Unit testing Zend Framework 1
  41. Evan Coury: Sharing a database connection across modules in Zend Framework 2
  42. An introduction to ZendEventManager
  43. Getting started with Natural Load Testing
  44. Access view variables in another view model
  45. Returning JSON using the Accept header in ZF2
  46. Returning JSON from a ZF2 controller action
  47. Automatic Apache vhosts
  48. OS X Tips and Tricks
  49. A list of ZF2 events
  50. Ralph Schindler: PHP Constructor Best Practices And The Prototype Pattern
  51. Pádraic Brady: A Hitchhiker’s Guide to Cross-Site Scripting (XSS) in PHP (Part 1)
  52. Some Zend\View examples
  53. Module specific bootstrapping in ZF2
  54. Matthew Weier OPhinney: View Layers, Database Abstraction, Configuration, Oh, My!
  55. Modules in ZF2
  56. An introduction to Zend\Di
  57. Sublime Text 2 Plugin: Function Name Display
  58. Overriding module configuration in ZF2
  59. Shahar Evron: Generating ZF Autoloader Classmaps with Phing
  60. What problem does dependency injection solve?
  61. A primer on PHP namespaces
  62. Using Zend\Loader\Autoloader
  63. One-to-many joins with Zend_Db_Table_Select
  64. Two new Sublime Text 2 packages for PHP
  65. Florian Eibeck: Zend Framework application.ini cheat sheet
  66. Jason Grimes: Using Doctrine 2 in Zend Framework 2
  67. Sublime Text 2 Snippet for PHP getter and setter generation

2011 27

  1. 2011 in pictures
  2. Zend Framework 2 Beta 2 released
  3. Evan Coury: Keeping a clean GitHub fork – Part 1
  4. ZF2 no longer requires a CLA to contribute
  5. Updated tutorial for Zend Framework 2 beta 1
  6. Bring a laptop to my ZF2 tutorial at PHPNW11
  7. Remi Woler: The 10 rules to get support through IRC
  8. Day Camp 4 Developers #3: Project Management
  9. Bradley Holt: The Case For Rapid Release Cycles
  10. Setting up PHP & MySQL on OS X 10.7 Lion
  11. Robert Basic: Grouping Zend Framework controllers in subdirectories
  12. Zend_Config_Ini and a string
  13. tek11 photos
  14. DPC 11 photos
  15. ZF2 Training at PHPNW 2011!
  16. Exploring Zend_Paginator
  17. Great PHP developer required in Central Birmingham
  18. A Zend Framwork compound form element for dates
  19. Zend Framework View Helpers
  20. Using your own View object with Zend_Application
  21. A review of PHP Benelux 2011
  22. Zend Framework 2 in Action
  23. Translations of my Zend Framework Tutorial for ZF 1.10 & 1.11
  24. Remove index.php from your URL
  25. PHPUK 11 Conference in London
  26. Enrise: Using MemCacheQ as a Message Queue
  27. Displaying an RSS feed in WordPress

2010 47

  1. 2010 in pictures
  2. Handling exceptions in a Front Controller plugin
  3. David Papadogiannakis: HTML5 Zend Framework form elements
  4. View helpers in modules
  5. PHP 5.3 is quicker than PHP 5.2
  6. Local config files and Zend_Application
  7. Some notes on SQL Server blobs with sqlsrv
  8. Ralph Schindler: Composite Rowsets For Many-To-Many Relationships Via Zend_Db_Table
  9. Validating UK Postcodes
  10. Validating dates
  11. I'm speaking at PHPBenelux Conference 2011
  12. SqlSrv v2 and long field names
  13. PHPNW10 Conference
  14. A form in your layout
  15. OS X Tips and Tricks for Snow Leopard
  16. Devzone article on Zend_Config
  17. ZendTool providers in ZF2 (dev1)
  18. Setting up ZF2's ZendTool side by side with ZF1
  19. TweetGT: an example of Zend_Service_Twitter via OAuth
  20. On Exceptions
  21. Unit testing controller actions with Zend_Test_PHPUnit_ControllerTestCase
  22. Day Camp for Developers virtual conference
  23. The Redirector action helper
  24. Zend Framework's Flash Messenger action helper
  25. Speaking at PHPNW 10
  26. Matthew Weier O'Phinney: Using Action Helpers To Implement Re-Usable Widgets
  27. New Zend_Auth tutorial
  28. Akrabat_Db_Schema_Manager: table prefix support
  29. The Dutch PHP conference 2010
  30. Community Review Team for Zend Framework
  31. MongoDB on OS X with the stock PHP installation
  32. Tek.X recap
  33. Meet the TEK·X speakers
  34. Using PDT with Zend Framework Projects
  35. Akrabat_Db_Schema_Manager: Zend Framework database migrations
  36. Photos of Seagulls
  37. Sending a file to IE using SSL
  38. Zend Framework, IIS and 500 errors
  39. Mobile web monopoly
  40. Zend Framework Tutorial for ZF 1.10
  41. Redirecting email whilst developing
  42. Determining if a ZF view helper exists
  43. Custom Zend_Application Resources
  44. Zend Framework on a shared host
  45. Speaking at TEK·X
  46. Pragmatic Version Control Using Git
  47. 2009 in pictures

2009 50

  1. PHP Advent 2009: On deployment
  2. Accessing your configuration data that's stored in application.ini
  3. IPC 2009
  4. Zend Framework URL Rewriting in IIS6
  5. ZendCon 2009
  6. PHPNW 09 Conference
  7. Introducing yourself at a conference
  8. Setting up PHP & MySQL on OS X 10.6 Snow Leopard
  9. Changing OS X Terminal colours when ssh'ing into a server
  10. A new blog from someone new to PHP
  11. Tutorial Q&A PDF
  12. Three years of my Zend Framework Tutorial
  13. My tutorial is compatible with Zend Framework 1.9
  14. DNS Transfer
  15. The watch Linux command line tool
  16. Bootstrapping modules in ZF 1.8 and up
  17. I'm speaking at ZenCon 2009!
  18. Some notes on Zend Server CE for Mac OS X
  19. DPC '09
  20. WinPHP wrap-up thoughts
  21. SuccesSQL demo online
  22. Metadata from Zend_Db_Table_Abstract
  23. Retrieving a list of databases from SQL Server
  24. SQL Server troubles
  25. Zend Framework URL Rewriting in IIS7
  26. Zend Framework connection to SQL Server using SqlSrv
  27. MSSQL and PHP
  28. Viewing PHP errors over the network when using IIS
  29. Women in open source communities
  30. Zend Framework Tutorial for ZF 1.8
  31. Zend_Loader's autoloader deprecated in Zend Framework 1.8
  32. The EuroWinPHP application
  33. Finalising installation
  34. Installing PHP on Windows Server 2008
  35. Installing Windows Server 2008
  36. WinPHP Challenge
  37. Shorter Link: A rev=canonical WordPress plugin
  38. Digg bar blocker for WordPress
  39. Caching talk at DPC 2009
  40. Initial notes on Zend_Application
  41. In honour of Ada Lovelace
  42. Fixing — in WordPress
  43. Manning is on Twitter
  44. UTF-8, PHP and MySQL
  45. Setting up PHP on OS X Leopard
  46. PHPUK 2009
  47. PHP UK Conference, London
  48. Zend Framework in Action forum and errata
  49. Catching-up
  50. Seven Things – Tagged by Matthew

2008 36

  1. 2008 in pictures
  2. On models in a Zend Framework application
  3. Zend Framework in Action Errata
  4. File uploads with Zend_Form_Element_File
  5. PHPNW08 Conference
  6. Hooks in Action Helpers
  7. Using Action Helpers in Zend Framework
  8. Where is php ?
  9. PHPNW08 schedule posted
  10. ZendCon 08
  11. Uninstalling MySQL on Mac OS X Leopard
  12. PHPNW Conference
  13. Busy
  14. Recursion
  15. Notes on Zend_Cache
  16. UK Readers: Don't buy petrol from BP or ESSO
  17. Zend Framework URLs without mod_rewrite
  18. Top Tip: XHTML with Zend Form Elements
  19. Simple Zend_Form File Upload Example Revisited
  20. A review of "Learning PHP Data Objects"
  21. A review of "Object-Oriented Programming with PHP5"
  22. Flickr Uploadr
  23. Simple Zend_Form File Upload Example
  24. On Mail.app
  25. Updated Tutorial for Zend Framework 1.5
  26. PHPWM March Meeting: Symfony
  27. Site Stats
  28. IE8 will work like IE8 by default!
  29. PHP London 08
  30. Cure for BSS announced!
  31. Simple Zend_Form Example
  32. A View Stream with Zend_View
  33. Subversion Externals
  34. UK PHP Conference
  35. Code cleanliness guidelines from Etienne Kneuss
  36. New Zend Framework Blog/Website

2007 51

  1. OT: Need something? Ask Hoosgot!
  2. Notes to self, re: IE6
  3. Simple Zend_Layout Example
  4. Where to set up your view?
  5. Zend_View: Access the view from a view helper
  6. Back to zero bugs
  7. TaskPaper
  8. svn and case-insentive file systems
  9. post2cat doesn't exist after upgrading WordPress
  10. The move to Mac
  11. Do it before goddamned breakfast
  12. PHPAbstract
  13. Life outside of PHP
  14. Luke – Lucene Index Toolbox
  15. View Helper Case Notes
  16. Downtime
  17. Zend_Filter_Input / Zend_Validate Messages
  18. Zend Framework Book coming soon
  19. Image Resizing Done Right
  20. ID != id
  21. PHPWM Social
  22. Zend Framework Tutorial Zip File Updated
  23. Yslow
  24. OT: A Bit Wet
  25. Russian and Polish Zend Framework Tutorial
  26. Two-Step view in Zend Framework 1.0.0
  27. Zend Framework 1.0 Released
  28. Spanish versions too!
  29. Would have made me laugh…
  30. Zend_Auth tutorial in French
  31. Notes on using Oracle with my tutorial
  32. Extending ViewRenderer to Support Layout Templates
  33. Tutorial 1.4.0
  34. Zend_Config Updates
  35. More translations
  36. Quiet around here
  37. Premiers pas avec le Zend Framework
  38. Simplified Chinese Version of my Zend Auth Tutorial
  39. Questions regarding the latest tutorial (1.3.0)
  40. New Tutorial: Getting Started with Zend Auth
  41. Zend Framework Tutorial for 0.9.1
  42. Typo in Zend Framework 0.9
  43. Goodbye Zend.php
  44. Zend Framework Tutorial for ZF v0.8
  45. Upgrade time
  46. PHP UK Conference 2007
  47. Indonesian Translation of the Tutorial
  48. Zend Framework Tutorial for 0.7
  49. Modules
  50. Subversion's svn:externals
  51. New Theme

2006 55

  1. Simplified Chinese version of the Zend Framework Tutorial
  2. Extending Zend_View_Interface for use with Smarty
  3. Zend Framework Tutorial for ZF v0.6
  4. Version 1.1.2 of the Tutorial
  5. Italian Translation of the Zend Framework Tutorial
  6. Zend PHP 5 Certification Guide Competition
  7. Polish Translation of the Zend Framework Tutorial
  8. preg_last_error() returns No Error on preg_match() Failure
  9. Zend_Config Documentation in 0.2
  10. Zend Framework Tutorial: Version 1.1
  11. Zend Framework 0.2
  12. Zend_Config: Multiple Sections and a BC Break for 0.2!
  13. Zend_Config: Progress Towards 0.2
  14. German Translation of my Zend Framework Tutorial
  15. Directory Structures (again!)
  16. Zend Framework Tutorial 1.0.3
  17. One Application Down: Some Zend Framework Thoughts
  18. Firefox 2 beta 2
  19. Minor update to the Zend Framework Tutorial
  20. My Take on a Zend Framework Tutorial
  21. Demo
  22. AkCom: The Akrabat Components for the Zend Framework
  23. Dynamic Tabs Subversion Respository
  24. Zend_Config: Iteration and Arrays
  25. Zend Framework 0.1.4
  26. Overworked
  27. PHP Editors
  28. Zend_Config: Array Reader
  29. Zend Framework: Incubator Testing
  30. Default Dirs
  31. Zend_Config is in the Incubator
  32. Zend_Config Proposal v3: Akrabat_Config (8)
  33. Zend_Config Proposal v2.1: Akrabat_Config (7)
  34. Zend_Config Proposal v2: Akrabat_Config (6)
  35. PHP West Midlands Meeting
  36. The Zend Framework PDO driver's insert() function is fixed!
  37. Zend_Db_Adapter_Pdo_Abstract::insert()
  38. Akrabat_Config (5)
  39. Zend_Config Proposal for the Zend Framework
  40. Akrabat_Config (4th Go!)
  41. Akrabat_Config (Take Three!)
  42. Akrabat_Config (2nd Attempt)
  43. Akrabat_Config
  44. Zend Framework: Router Again
  45. ZF Authentication
  46. Zend Framework: Test Code Upgrade to 0.1.2
  47. Zend Framework 0.1.2
  48. Zend Framework Controller Docs!
  49. Zend Framework: Database Access
  50. Zend Framework Views and the Front Controller
  51. Zend Framework Front Controller
  52. PHP UK Conference 2006 in Detail
  53. PHP UK Conference 2006
  54. WordPress 2.0 Rewrite Rules
  55. Dynamic JavaScript Tabs v1.0.3

2005 13

  1. Dynamic JavaScript Tabs v1.0.2
  2. Active Record
  3. PHP Collaboration Project
  4. Quick and Dirty Profiling
  5. 10 Years of PHP
  6. Bug in Dynamic JavaScript Tabs
  7. Dynamic JavaScript Tabs v1.0.1
  8. Dynamic JavaScript Tabs
  9. Version Control
  10. Runtime Variable Inspection
  11. Additional Content Blocks
  12. ADOdb Data Dictionary
  13. Is this thing on?