PHP

Posts about the server side scripting language PHP

PHPNW17: A Review

The PHPNW 2017 Conference was run over the weekend of the 30th September to 1st October at the Manchester Conference Centre and I went along to participate. PHPNW has now been going for 10 years and it looks like this will be the last (more on that later) but this year was just as good as ever.

PHPNW 2016

The 9th PHPNW was held on the 1st and 2nd of October 2016 and I was in attendance with around 400 people. The venue was the Manchester Conference Centre, which is where the event has been for the past few years. It's a nice place with helpful and friendly staff, lots of rooms, great food and even a good bar. After a quick introduction from the organisers Jeremy Coates and Rick Ogden) and a session from the platinum sponsors UKFast we started the conference proper.

PHPNW15: A Review

PHPNW is the 8th annual PHPNW Conference, and I think I'm lucky to be one of the few who have attended every year. This was something that Jeremy Coates mentioned out as we sat down the introductory session, but it was also good to see lots of new people attending the conference as well. It was a great conference with a great community feeling.

The keynote this year was by Meri Williams, who talked about Stealing People Lessons from Artificial Intelligence. Meri's career has been in both development and project management and she was able to use lessons learnt during her PhD thesis on artificial intelligence in order to think about how people respond to work. The concept sounds a little un-emotional at face value, but part of the principles of AI is making sure that all agents have their own goals. Meri was a funny and engaging speaker who talked about all kinds of interesting aspects of how people learn and grow.

Compiling And Installing PHP7 On Ubuntu

At the LAMP and Beyond III event (run by PHPNW) this weekend we set ourselves the task of giving PHP7 a go. Below is some nodes from that session.

This assumes that you’ve already installed PHP5.6 along with Apache and MySQL. Installing PHP5.6 via apt-get is fine as we just need some of the dependencies to be present.

To get the the code for PHP7 you need to clone from the PHP repo on Github.

git clone git@github.com:php/php-src.git php-src

Go into the php-src directory and run the ./buildconf command, this will generate a configuration file.

./buildconf

Before you run config you’ll need to install some dependencies (there are one or two).

PHPNW14: A Review

The annual PHPNW conference, now in it’s 7th year, was held on the 4th and 5th of October in Manchester, again in the Manchester Conference Centre. The conference was attended by over 400 people with over 30 speakers from all over the world who talked about everything from project management to the internals of PHP. I have been volunteering at PHPNW for a few years now, but this year I was able to attend as a delegate with a number of colleagues from Access. It’s been a few weeks since the event, but I haven’t had a chance to publish this review, so here it is.

 

PHP Password Functions In 5.5

New in PHP 5.5 is a group of functions that deal with password hashing and verification. This is such a common thing for PHP applications to do that it was decided to include it into the core of PHP. They effectively solve the problem of hashing and comparing passwords that just about every PHP developer has implemented at one point or another.

There are only a few functions available but they provide all of the functionality needed to create a hash value from a password, check if the hash is valid and to check if the password hash needs to be recreated.

To create a hash value from a password use the password_hash() function. The first parameter is the password string and the second value is the hashing algorithm to use. The value PASSWORD_DEFAULT here is a PHP constant that is currently set to the bcrypt algorithm and will be changed to better algorithms when and if they are found in newer versions of PHP.

PHPNW13: A Review

PHPNW13 is the 6th annual PHPNW conference, organised by members of the PHPNW community and Magma Digital. This year the conference saw around 420 people (with myself as a helper) at the conference, which was held in the Manchester Conference Centre.

My involvement in PHPNW13 started a few months before the actual conference. When the call for papers closed back in June I spent a weekend reading the submissions so that we could pick which sessions would be at the conference. Out of the 183 papers submitted (20 more than last year) we had to pick just 35 or so sessions that would be presented at the weekend. The final selection of talks was really good and judging by the comments and rating on joind.in they were well received by the other conference attended as well.

The Monty Hall Problem In PHP

The Monty Hall problem is a counter intuitive problem in probability mathematics that deals with picking the right prize from a set of three doors. The problem is named after the television celebrity Monty Hall and is loosely based on the USA game show Let's Make a Deal.

This has become a popular problem in programming as it is a good exercise in thinking through a problem to prove what outcome actually occurs. Lots of examples have been posted online so I thought I would sit down and attempt to solve it myself. The problem is most commonly summarised as follows (this example was taken from Rosetta Code):

Changing Memory Allocation In Phing

Running complex tasks in Phing can mean running out of memory, especially when altering or changing lots of files. I was recently working on a image sorting Phing project that sorted images based on EXIF information. The many thousands of files involved, along with the custom target used to extract the EXIF data caused the default available memory to run out quite quickly.

<php expression="ini_set('memory_limit', '1G');"></php>

There is no direct way to alter the PHP memory limit setting through Phing, but it can easily be altered using a Phing php task. This evaluates the PHP function ini_set() and set the memory_limit value. The following Phing task sets this limit to be 1G, or 1 gigabyte.

Sieve of Eratosthenes In PHP

The sieve of Eratosthenes is named after Eratosthenes of Cyrene who was a Greek mathematician who devised a mechanism to find a sequence of prime numbers using a simple algorithm.

Normally, looping through a list of numbers and finding the primes can be an expensive process. The seive of Eratosthenes is one of the most efficient way of working out all of the smaller prime numbers below (below 10 million or so).

The sieve works by looping through a list of consecutive numbers, starting at 2. For each number in the sequence the multiples of that number are marked to be removed from the list of numbers. When finished the numbers that are not marked are prime numbers.

This algorithm is pretty straightforward, but from that it is possible to create a simple PHP function that will generate all the prime numbers up to a given number.