A Brief Introduction to Multi-Threading in PHP
- Foreword
- Execution
- Sharing
- Synchronization
- Pitfalls
In the comments from my last post and on Twitter I noticed a lot of people who had something to say about PHP. The comments were varied but they usally sounded something like this (sorry @ipetepete, I picked yours because it was the shortest).
...the little bits of soul from all of us who've had to work on, and or maintain large PHP applications. – ipetepete
In Pete's defense, he did go on to say that rest of the stack I was using was a "smorgasbord of awesome". Thanks, Pete. I agree!
I would, however, like to take a little time to correct a misperception in the developer community about PHP. I recently got into this same... discussion... with Jeff Atwood, and I seem to be running into it more and more. So here goes. Please bear with me as I cover a little history further on.
Pete, and everybody else, _you're exactly rig
https://iceportal.de/bap/api/bap-service-status
{
"bapServiceStatus" : "PAUSED",
"status" : false
}
<?php | |
function it($m,$p){echo ($p?'✔︎':'✘')." It $m\n"; if(!$p){$GLOBALS['f']=1;}}function done(){if(@$GLOBALS['f'])die(1);} |
<?php | |
ini_set('display_errors', 1); | |
/** | |
* This script check how PHP makes HTTPS (SSL/TLS) requests using PHP Streams | |
* or cURL. Configuration options are passed as GET parameters, for example: | |
* http://localhost/checksslcontext.php?reconfigure=1 | |
* | |
* Configuration: | |
* http://localhost/checksslcontext.php | |
* Basic PHP Streams using file_get_contents(). Default settings. |
Go read the blog post.
FROM php-cgi #custom | |
COPY api.phar /api.phar | |
EXPOSE 8888 | |
CMD ["/api.phar", "start", "-c", "ppm.json"] |
<?php | |
namespace Jsor\MysqlAsync; | |
use React\EventLoop\LoopInterface; | |
use React\Promise\Deferred; | |
class Connection | |
{ | |
private $loop; |
#!/bin/sh | |
branch=$(git branch 2>/dev/null | grep ^\*) | |
[ x$1 != x ] && tracking=$1 || tracking=${branch/* /} | |
git config branch.$tracking.remote origin | |
git config branch.$tracking.merge refs/heads/$tracking | |
echo "tracking origin/$tracking" |