New from Iain Dooley on the Working Software website today is his look at working with threading in PHP including forking and communication between the processes.
I recently wrote a little application that dumps a file across a forwarded port. [...] So when I first wrote it, I didn't know what I was doing and had never written socket code before, so it was a big procedural mess. Naturally I was keen to separate out my socket class into it's own package but this presented a problem: the controlling process needed to check the status but how could I decouple the process that instantiated the socket class from the socket code itself
So, he set about working up his class, hitting a few barriers along the way:
- Copy On Write issues with how PHP handles the variable for the forked process
- Interprocess Communication using Sockets using the socket_create_pair function
- a "Curious Interlude" about why you can share sockets between two processes
There's a example of it in action - a setup with a child process that's all set to count up and respond back with the current number to the managing script.