Welcome! I'm Lorna Jane Mitchell: web development consultant, trainer and author. I work mostly with PHP, git and the LAMP stack - plus the various excellent technologies associated with it. Currently, I'm looking for a new developer or developer advocate role.

This site is a combination of a blog, a central place to keep links to my books, talks and other resources, and also a place to put a bit of information for anyone who wants to work with me. If you have any questions, or if you'd like to work with me, then please let me know.


Work With Me

PHP Migration

Ready for new PHP but need a hand getting your application upgraded? I am happy to assess your codebase and advise on upgrade paths.

Training

If your team needs to gain or improve their technical skills, I can help. Get in touch with me and we'll work out a package that fits your needs.

Consultancy

With buckets of LAMP experience, I can help your team work through the tough spots - and I love to lend a safe pair of hands to help others along.

PHP Services

Time for better tools or better practice? Time for a new version of PHP? Let me lend a hand to make your transition go smoothly.


From The Blog

MySQL 5.7 Introduces a JSON Data Type

There's a new JSON data type available in MySQL 5.7 that I've been playing with. I wanted to share some examples of when it's useful to have JSON data in your MySQL database and how to work with the new data types (not least so I can refer back to them later!)

MySQL isn't the first database to offer JSON storage; the document databases (such as MongoDB, CouchDB) work on a JSON or JSON-ish basis by design, and other platforms including PostgreSQL, Oracle and SQL Server also have varying degress of JSON support. With such wide adoption as MySQL has, the JSON features are now reaching a new tribe of developers. Continue reading

Simple Access Control for CakePHP3

The newest version of CakePHP doesn't ship with built in ACL, which means you need to write your own. Personally I think this is a smart move, having looked at the one-size-fits-all solutions for previous versions of the framework and knowing that every system has different requirements, this version has good hooks and documentation on how to add something that works for your application. I thought I'd share what worked for mine. Continue reading

Change Form Input Type in CakePHP3

I've been having my first experiences with generated code, generating a new admin backend using CakePHP3 (yes CakePHP is still around, it's alive and doing rather well in fact!). So far it's going great and producing a much more complete solution than I'd have managed for myself on this timescale.

One thing is bothering me though: it guesses form input types from the database column types, which mostly works well but sometimes it picks something that doesn't reflect the way that the user will store information in this field. It's actually pretty easy to change the forms that get generated though, so here's an example. Continue reading


Talks, Articles, Podcasts, and More

Slides

Get The Best From Git


Continuous Lifecycle, May 2016
Slides

What To Expect From PHP 7


DayCamp4Developers, April 2016
Slides

Surviving Code Reviews


Codemotion, March 2016
Slides

What to Expect from PHP 7


CodeMotion, March 2016
Slides

What To Expect From PHP 7


PHPUK, February 2016