PHP has subtly changed the wording of this error between various versions of the language, which can trip up your log aggregators when you upgrade so I thought I'd give a quick rundown of the changes around the "call to member function on non-object" error in PHP, up to and including PHP 7 which has an entirely new error handling approach. Continue reading
I'm very excited to announce that some of my content is featured in the PHP Learning Path from O'Reilly. The Learning Paths are a good way to buy a bundle of content from different people on related topics, and the introductory pricing is always a good deal! Their newest offering is the PHP Learning Path, which has a video course on PHP and MySQL, my intermediate PHP Video course (they wouldn't let me call it "all the things Lorna thinks PHP developers need to know" unfortunately!) and also my video course Git for Web Developers which has a bunch of PHP in it as well as my best git tips and tricks.
I think it's a pretty well-rounded collection and it's only $99 for a couple of weeks, so get the PHP Learning Path here and let me know what you think?
Not the catchiest name for an operator, but PHP 7 brings in the rather handy null coalesce so I thought I'd share an example.
In PHP 5, we already have a ternary operator, which tests a value, and then returns the second element if that returns true and the third if it doesn't:
echo $count ? $count : 10; // outputs 10
It's PHPNW time again, and that means hackathon! This conference has a strong tradition of hands-on building as well as the usual talks you'd expect to see, and next week will be no exception to that as there's a hackathon on Friday night before the main conference on Saturday and Sunday. If you're at the event then make sure you sign up for your hackathon ticket, it's always a good experience.
Joind.in is one of the featured projects and I'm one of the maintainers, so I'll be at the hackathon and I'm hoping that we'll get quite a few things done during the evening. Joind.in is an ideal project for events like this since it's easy to get started with it, and we have a development platform virtual machine (that we'll have already downloaded onto USB sticks so no conference wifi delay) so you can be up and running in no time. We also have a specific label on our bug tracker for items that we think are manageable for people who don't already know the system, so chances are that if you want to, you'll be able to contribute to an open source project with something finished by the end of the night. Continue reading
I'm working on an update to my PHP Web Services book and with PHP 7 likely to release before the book even makes it into print, I'm testing all my example code across PHP 5.6 and PHP 7 ... which today gave me a weird problem with a very, very simple SOAP example. Continue reading
PHP 7 is coming, which is nice, but what does it mean for the majority of PHP developers? PHP as a community is notoriously slow in adoption, some of us are still waiting for 2012's new shiny to be available as standard on our hosting platforms. However with the performance benefits and a few really nice new features, PHP 7 is well worth everyone's attention, and it's actually quite easy to get started so here's my quick howto. Continue reading
If you're a web developer looking to improve your git skills, then I have just the thing for you. I love it when a project is finished and "out there" and I'm pleased to announce that my new screencast course Git Fundamentals For Web Developers is now available. It's mostly PHP but you'll find Python and Node examples in there as well just to show off some of the tricks that work best for different disciplines. The course is structured around specific tasks or problems that we face in creating and deploying web applications, and my best advice on how to solve them. Mostly, I just want you to be able to be awesome at what you do already without your source control tool getting in the way :)
Edit: If you're reading this before July 25th 2015, use code CFSCON5 to get a massive 50% off!
If you know anything at all about PHP7, you probably know it's fast. But did you know how fast? The alpha is out and looks very robust, so I decided I would create a new set of benchmarks to include it. Graphs first, disclaimers later :)
This graph shows the time it takes for each version of PHP to perform the same task, on average, with oldest PHP on the left and moving forward in time.
PHP 5.4 isn't exactly new; in fact the opposite is true! PHP 5.4 is end of life, but as our adoption rates show, as a community, PHP people aren't especially good at upgrading! I'm getting lots of questions now because some of the hosting providers, notably including Acquia's hosting, are finally upgrading away from those 5.2 and 5.3 offerings.
One thing in particular is tripping people up: the short open tag. I've had a few questions on this so here's the advice I am giving to clients and friends.
What Actually Changed
short_open_tag configuration directive was removed, but the short echo syntax
<?= is always available.
How To Upgrade Your Codebase
- If you have
<?=in your templates, leave it alone, those will still work
- If you have short tags
<?in your code, including in any of your libraries, then you need to do a global find-and-replace and turn them all into
If you have short tags somewhere in your codebase, you probably won't get errors, you'll just suddenly start seeing PHP code in your output as PHP doesn't recognise the tag and therefore doesn't evaluate the code! To find them, try searching for
<? followed by a whitespace character.
Hopefully that helps; there are a few gotchas to getting upgraded from older versions (especially from PHP 5.2) but this particular gotcha really isn't a problem and the instructions here should see you through.
For some years I've been creating a bundle of links covering articles I recommend for various topics in the Zend Certified Engineer Exam (if you can here looking for the bundle itself, it's at http://www.lornajane.net/zce-links-collection). This was done using bitly's bundles feature, which I thought was a great way to share links. In fact I had 10-15 bundles that I had created from collating all the links in a particular training course or talk, so that people didn't have to try to write down URLs as I went along. Unfortunately they sunset their bundles and then removed them completely, and I missed the announcement (it all happened quite quickly, they'd seen some abuse of the feature, it's free, all totally reasonable) BUT they also didn't respond to my support questions about how to recover the data.
It turns out, it's an undocumented feature on their API, so here is everything I know about recovering your bundle data, including the script I used to rescue my own data. Continue reading