Sublime Text 3

Sublime Text has got to be one of the most popular text editors out there for coding. Although still in beta, Sublime Text 3 is a relatively stable and very usable. I’ve personally been successfully using it for over 2 years now both at work and at home. It’s sophisticated, lightweight and easy to use. It also works on all the major platforms: Windows, OSX and Linux.

Sublime Text is not quite an IDE (Inte­grated Devel­op­ment Envi­ron­ment), but with the installation of a handful of packages/plugins you can really make it the ideal editor for developing PHP in.

Sometimes when a user requests to download a file from your app you may want to run some pre-download logic. For example, you may want to check that the user is authenticated or perhaps log the download. Since CakePHP 2.3 this can be simply achieved using CakeResponse.

Comparison of parameters for the date() and strftime() methods in PHP.

Generating a downloadable CSV file in CakePHP seems to be a bit of a stumbling block for many relatively new to using Cake. It doesn’t need to be challenging. There’s just a few basic steps you need to put in place.

As an example we’ll consider a Subscriber model that contains contact details of people who have subscribed to our app. We want to create a CSV export of all the subscribers data.

Hack: a new programming language for HHVM


Facebook have released a new programming language based on PHP called Hack. Basically it appears to work much like PHP, but with static typing.

Today we’re releasing Hack, a programming language we developed for HHVM that interoperates seamlessly with PHP. Hack reconciles the fast development cycle of PHP with the discipline provided by static typing, while adding many features commonly found in other modern programming languages.

Looks interesting. Although I’m not all that keen on the name.

Earlier this week I came across a bug in some code that highlighted the frustration of doing comparisons with floating point numbers in PHP. Basically the code was failing when checking if one floating point number was equal to another (that was a tally of other floating numbers). Despite the two floating numbers seemingly being the same they were not equating.