anatomy of a joel salas php request herman j. radtke, iii · 2016-01-24 · joel salas lead...
TRANSCRIPT
![Page 1: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/1.jpg)
Anatomy of a PHP Request
Herman J. Radtke, III
Joel Salas
![Page 2: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/2.jpg)
Who are we?
![Page 3: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/3.jpg)
Herman J. Radtke III
VP Engineering at HauteLook
Twitter: @hermanradtke
GitHub: hjr3
![Page 4: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/4.jpg)
Joel Salas
Lead Platform Engineer at HauteLook
Twitter: @joelesalas
GitHub: joelesalas
![Page 5: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/5.jpg)
Anatomy:The science of the shape and
structure of organisms and their
parts.
![Page 6: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/6.jpg)
![Page 7: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/7.jpg)
Process Lifecycle
![Page 8: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/8.jpg)
![Page 9: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/9.jpg)
PHP Internals
![Page 10: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/10.jpg)
![Page 11: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/11.jpg)
HTTP
GET
POST
PUT
DELETE
HEAD
![Page 12: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/12.jpg)
![Page 13: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/13.jpg)
Apache (mod_php)
vs
nginx + php-fpm
![Page 14: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/14.jpg)
![Page 15: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/15.jpg)
mod_php(Apache)
![Page 16: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/16.jpg)
![Page 17: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/17.jpg)
FastCGI / FPM(NGINX)
![Page 18: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/18.jpg)
![Page 19: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/19.jpg)
![Page 20: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/20.jpg)
![Page 21: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/21.jpg)
![Page 22: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/22.jpg)
GET /index.php HTTP/1.1
![Page 23: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/23.jpg)
![Page 24: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/24.jpg)
MINIT
![Page 25: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/25.jpg)
![Page 26: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/26.jpg)
MINIT Example
Redis Sentinel
![Page 27: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/27.jpg)
What is Sentinel?
![Page 28: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/28.jpg)
1. Create a global variable to track Redis server
![Page 29: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/29.jpg)
2. If fails, query Sentinel again for a server
![Page 30: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/30.jpg)
3. Value persists across requests (global in MINIT)
![Page 31: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/31.jpg)
RINIT
![Page 32: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/32.jpg)
![Page 33: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/33.jpg)
Microtimers
![Page 34: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/34.jpg)
Execute
![Page 35: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/35.jpg)
![Page 36: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/36.jpg)
<?php
// index.php
require __DIR__ . ‘/path/to/App.php’;
require __DIR__ . ‘/path/to/Config.php’;
$config = new Config();
$app = new App($config);
![Page 37: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/37.jpg)
<?php
require
dirname(__DIR__) .
‘/vendor/autoload.php’;
![Page 38: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/38.jpg)
<?php
$vendorDir = dirname(__DIR__);
$classMap = array(
‘Legacy_Model’ =>
$vendorDir . ‘/path/to/App/Model.php’;
);
![Page 39: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/39.jpg)
What about Opcache?
![Page 40: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/40.jpg)
<?phpecho “Hello SCALE”;
![Page 41: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/41.jpg)
ASSIGN !0, 'Hello+SCALE'ECHO !0RETURN null
![Page 42: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/42.jpg)
Opcache is global
![Page 43: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/43.jpg)
Flatten config files
![Page 44: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/44.jpg)
Cache the classmap
![Page 45: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/45.jpg)
Cache file paths
![Page 46: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/46.jpg)
stat=0
![Page 47: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/47.jpg)
Each request is independent
![Page 48: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/48.jpg)
<?php
$db = new
PDO('mysql:host=localhost;dbname=test',
'username',
'password'
);
![Page 49: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/49.jpg)
<?php
$fp = fopen('php://output', 'w');fwrite($fp, 'Hello World!');fclose($fp);
![Page 50: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/50.jpg)
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at on line 8)
![Page 51: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/51.jpg)
<?php ob_start(); ?>
<p>Hello world!</p>
<?php ob_end_flush(); ?>
![Page 52: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/52.jpg)
RSHUTDOWN
![Page 53: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/53.jpg)
![Page 54: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/54.jpg)
MSHUTDOWN
![Page 55: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/55.jpg)
![Page 56: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/56.jpg)
Review
![Page 57: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/57.jpg)
![Page 58: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/58.jpg)
![Page 59: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/59.jpg)
Questions?
![Page 60: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/60.jpg)
HauteLook is hiring!http://hautelook.github.io/careers/sr-software-eng-php.html
![Page 61: Anatomy of a Joel Salas PHP Request Herman J. Radtke, III · 2016-01-24 · Joel Salas Lead Platform Engineer at HauteLook Twitter: @joelesalas GitHub: joelesalas joelesalas@gmail.com](https://reader033.vdocument.in/reader033/viewer/2022060403/5f0eb5d17e708231d4408ee4/html5/thumbnails/61.jpg)
Links● http://blog.golemon.com/2008/01/understanding-opcodes.html
● http://web.archive.org/web/20101216035343/http://dev-tips.com/featured/output-
buffering-for-web-developers-a-beginners-guide
● http://www.sitepoint.com/sitepoint-smackdown-php-vs-node-js/
● https://www.phusionpassenger.
com/library/walkthroughs/basics/ruby/reloading_code.html
● http://www.amazon.com/Extending-Embedding-PHP-Sara-
Golemon/dp/067232704X