Browse Source

remove article

pull/1/head
Brett Langdon 12 years ago
parent
commit
4c1a3ea7b9
1 changed files with 0 additions and 63 deletions
  1. +0
    -63
      contents/writing/about/using-nginx-for-php-mvc-routing/index.md

+ 0
- 63
contents/writing/about/using-nginx-for-php-mvc-routing/index.md View File

@ -1,63 +0,0 @@
---
title: Using Nginx for PHP MVC Routing
author: Brett Langdon
date: 2014-03-17
template: article.jade
---
An approach for using Nginx to handle all url routing
for a PHP MVC Framework
---
Last week I was profiling a
<a href="http://www.php.org" target="_blank">PHP</a> application
and noticed the overhead of having the url routing written in
PHP. It is not that the code was poorly written or anything,
but just seemed like a lot of overhead for the application.
So, I had an idea what if I moved the url routing to some other
system that was made for handling url routing? Like,
<a href="http://nginx.org" target="_blank">nginx</a>.
_Warning:_ My prototype makes the assumption that I am right
and that nginx is actually faster than PHP for url routing.
I am yet to do any performance testing, so I may actually be
wrong here, but thought I'd share my musings anyways.
```php
<?php
$controllerName = $_SERVER['HTTP_PHP_CONTROLLER'];
$urlParams = array();
foreach($_SERVER as $name => $value){
if(substr($name, 0, 9) == 'HTTP_URL_'){
$urlParams[substr($name, 0, 9)] = $value;
}
}
$controller = new $controllerName();
$controller->handleRoute($urlParams);
```
```cfg
upstream php {
server 127.0.0.1:8000;
}
server {
listen 80;
server_name localhost;
location ~* /model/(?<modelId>[0-9]+)(/.*?\.html)? {
proxy_set_header PHP_CONTROLLER "ModelViewController";
proxy_set_header URL_MODELID $modelId;
proxy_pass http://php;
}
location ~* ^(?<url>/.*)$ {
proxy_set_header PHP_CONTROLLER "DefaultController";
proxy_set_header URL_URL $url;
proxy_pass http://php;
}
}
```

Loading…
Cancel
Save