Ambiguous and yet accurate answer:
It's as close as it can be and as different as it needs to be ;D
We drop some conventions like rc.conf because they aren't needed the way we use it. We use a custom rc script to do our boot-time configuration, and trying to shoehorn our methods into the default model doesn't give us the flexibility we need to get things done.
There is PHP everywhere because the project was originally forked from m0n0wall which was using PHP. Also, we know PHP and the libraries for reading the config, etc, etc are all in PHP.
If you're looking to run things at startup, use the shellcmd package. More detail on shellcmd can be found here: http://doc.pfsense.org/index.php/Executing_commands_at_boot_time