In this section you'll find books, whitepapers and video courses that I have written or created.
I try not to have favourite technologies; for the most part I enjoy them all when used for the purpose they are intended for. However Redis is so excellent and used for so many brilliant things that it does have a special status in my world :) As a long-standing MVB with DZone (they've been reading and syndicating content from this site much longer than basically anyone else) I was delighted to be invited to author their new Redis Refcard!
PHP Web Services covers the theory behind web services, some specific examples of data formats and service types, then moves on to give good, solid advice on different aspects of writing kick-ass services. The advice is all hard-won, and I've aimed to share it in a way that's useful, approachable, and applicable to practical projects. I've included the tools and techniques that I'm using when doing this kind of work, particularly around debugging problems and monitoring exactly what's going on.
The book is available through O'Reilly here:
PHP Web Services (affiliate link)
This screencast series was a fun collaboration with O'Reilly. Because it's aimed specifically at web developers, I felt I had the freedom to include code samples (I usually don't when teaching git) and you'll find some python and nodejs in this as well as the PHP you'd expect to see around here! Each chapter is pretty short, less than 10 minutes, and is self-contained, so if you're studying on your commute, in your lunch break, or between other activities, hopefully you can find the chapter you need and still have time for a sandwich!
This course covers everything from the basics (not total beginner, you should read a tutorial first!) through configuring your machine, day-to-day taking care of your own work ... right through to managing team workflows and integrating with other tools in the development process. The tools in this area have improved significantly in recent years and I enjoyed this opportunity to share them.
This book is your opportunity to sit down with git, and study the topic in useful units of skill, with practical exercises for each skill. I teach a lot of git, in formal classroom settings as well as rescuing people via IRC, and this book brings together everything I know about getting people up to speed with git. Each chapter teaches something new and ends with an affirmative statement for you to tick off to say what you learned!
With hands-on examples of how to solve real-world problems, and topics running the whole spectrum from installing git through to skills such as rebasing, using submodules and finding faults in a large repository, this text is your "level up" for all your git skills. The chapters are mostly pretty short, so you can just work through at your own pace on whatever time you can find, and the hands-on elements mean that you're sure to remember and understand the skills you're learning.
Calling PHP developers everywhere, this course covers the things people most ask me, under a rather unremarkable title :) The full outline is on the site, but I've tried to bring in here some elements of new content, some under-used but excellent features of PHP - and all the supporting material you need to be able to pick up and use all of those features yourself. There are the best new features from PHP 5.3, 5.4, 5.5 and 5.6 here - plus a primer in OOP in case this isn't something you've had a chance to study from first principles before. Having a good OOP grounding helps so much with all the new developments in PHP that it was really important to me to include it.
I've also picked the best of things that make developers go "wait. Do that again?" and shared it here. There's commandline PHP, for scripts, the built-in webserver, and also for writing workers that can integrate with queues. For the neglected area of security, there are some really easy ways to make sure you're "doing it right" in your application, so both the new password functionality and the filter extension are here. And I've also included a section on using PDO for accessing databases - this is used internally in most frameworks now, but there are any number of reasons why you might like to write your code yourself (performance, for one) so understanding PDO can help a lot for database-driven applications.
You can get the course directly from oreilly.com
If you're more of a visual learner than a wordy one, then the video course might be a more useful way to view some of this content. I think the videos give me a chance to walk through the code examples in a more tangible way, and hopefully you think so too!
The course covers the tools we use to work with APIs: curl, streams and Guzzle (version 4) are my top recommendations for PHP and they're all shown, both in their own right and also for the later examples of other things. There is REST as well as the more traditional SOAP and RPC services, and both XML and JSON are covered. There's also some less-PHP content, covering how to debug APIs, using testing endpoints and tools such as commandline curl, Wireshark and Charles Proxy, and also a chapter on good API design, with recommendations of what works to make a kick-ass API.
You can buy the video directly from O'Reilly's site
The book I needed something over 5 years ago in order to get my career started and also moving with momentum in the right direction! This self-published ebook is a joint effort with my friend and mentor Ivo Jansch, and is a work in progress. We started with the contents of our keynote "0x0F Ways To Be A Better Developer", and added many things that we'd had to discard in order to fit our talk into the allocated slot.
This book will continue to grow (updates are free, once you've bought it, you'll get new installments as we release them) as we find the time and inspiration to add to it - such a fun project and also I hope a useful guide for those starting their journey today or looking to move up a gear in career terms. http://leanpub.com/nways
This book, which I wrote with co-authors (and friends) Davey Shafik and Matt Turland, is a mid-level text for existing PHP Developers to raise their game still further. It's not a beginner text, but covers a nice selection of topics which are building blocks to being able to build advanced, robust applications.
There's a chapter on OOP, beginning at the very beginning and then taking a tour through the finer points of the language. Most importantly, it shows how and when to use the various features, and has working code examples to accompany it. To follow on, there's also a chapter on design patterns, also with real examples, and a later section on SPL which is a great way to build elegant object-oriented code in PHP.
One thing I often find myself working with developers on is their databases, data structure and also how to actually talk to the database efficiently. The book has a chapter that covers both aspects, how to normalise data and then how to work with it from PHP using PDO.
All in all, getting together with some peers to work out what we'd tell someone who isn't a beginner, but wants to learn and can handle some quite heavyweight technical ideas, was a lot of fun and personally I think the topics list covers it all quite nicely. I'm recommending this book to everyone looking for an up-to-date text bringing their development skills up a level in a good, all-round way.
Considering learning OOP for PHP? I made this video course for Learnable (who have plenty of other lovely courses too, the membership is a good deal IMO). It starts at the absolute beginning and aims to give you the tools and the vocabulary to start using and applying OOP principles to your own projects.
I seem to write the same advice so often when I encounter organisations not using source control, that I thought I'd wrap up all my thoughts into one, pretty document that you can hand to your manager, technical lead, or whoever it is that you need to convince. This PDF (no registration required) is a short overview of the tools available, the benefits of source control in general, and some action points for actually making it happen. I am, of course, available for hire to help with source control implementation, but I hope the document also works on its own and is helpful.
Download PDF: You're not using source control? Read This!