back

Php

Setting things straight ... PHP began life as "Personal Home Page" (Tools), and later the "Personal Home Page" (Construction Kit). Later it would be merged with an SQL query tool for webpages and become PHP/FI, or "Personal Home Page / Form Interpreter". FastForward to the present day and it's no longer a mere tool to handle generation of Personal Home Pages, reuiring a new acronym, some clever chap came up with: "PHP: Hypertext Preprocessor" Cunningly (or not), in the same vein as "GNU's not Unix" and "PINE Is Not Elm", PHP became a recursive acronym, whereby the first letter actually stands for the full acronym. Deep, huh?
Preparing for Pentesting (@ Longhorn PHP 2018)
At this year’s Longhorn PHP conference I’ll be presenting two talks: an updated version of my “Securing Legacy Applications” session and something new and a bit different for a conference primarily...
PHP Developer
Are PHP developers functophobic?
There is this one thing that I noticed recently and that concerns me: PHP devs don’t use functions. Now, that was overly general, so let me clarify: PHP developers who have reached a certain degre...
Nickic on PHP
Cooperative multitasking using coroutines (in PHP!)
One of the large new features in PHP 5.5 will be support for generators and coroutines. Generators are already sufficiently covered by the documentation and various other blog posts (like this one ...
Nickic on PHP
The case against the ifsetor function
Recently igorw wrote a blog post on how to traverse nested array structures with potentially non-existing keys without throwing notices. The current “idiomatic” way to do something like this, is to...
Nickic on PHP
Fast request routing using regular expressions
Some time ago I stumbled on the Pux routing library, which claims to implement a request router that is many orders of magnitude faster than the existing solutions. In order to accomplish this, the...
Nickic on PHP
Methods on primitive types in PHP
A few days ago Anthony Ferrara wrote down some thoughts on the future of PHP. I concur with most of his opinions, but not all of them. In this post I’ll focus on one particular aspect: Turning prim...
Nickic on PHP
PHP's new hashtable implementation
About three years ago I wrote an article analyzing the memory usage of arrays in PHP 5. As part of the work on the upcoming PHP 7, large parts of the Zend Engine have been rewritten with a focus on...
Nickic on PHP
Internal value representation in PHP 7 - Part 1
My last article described the improvements to the hashtable implementation that were introduced in PHP 7. This followup will take a look at the new representation of PHP values in general. Due to ...
Nickic on PHP
Internal value representation in PHP 7 - Part 2
In the first part of this article, high level changes in the internal value representation between PHP 5 and PHP 7 were discussed. As a reminder, the main difference was that zvals are no longer in...
Nickic on PHP
PHP 7 Virtual Machine
This article aims to provide an overview of the Zend Virtual Machine, as it is found in PHP 7. This is not a comprehensive description, but I try to cover most of the important parts, as well as so...
Nickic on PHP
Saying Thanks – Open Source Appreciation
Wow, it has been a really long time since I’ve posted here. Most of my writing has ended up in articles of php[architect] or over on Websec.io. I wanted to jump back into the blog though and talk a...
PHP Developer
Custom Configuration for Phabricator
Phabricator is an excellent code review tool used by Facebook and other respected software engineering organizations.  The user interface is beautiful, the workflow and tools are concise and compre...
David Walsh - Javascript