Plantilla:
Modo de uso:
Para lanzar un servidor http con el cliente php, basta con ejecutar el siguiente comando:
php -S <bind_addr>:<port> -t <document_root> <folder_or_dispatcher_to_serve>
- <bind_addr> - Ip de la interfaz a la que queremos hacer el bind (127.0.0.1 para acceder únicamente en local y 0.0.0.0 para que se pueda acceder desde cualquier interfaz)
- <port> - Puerto donde queremos escuchar (el puerto http por defecto es el puerto 80)
- <document_root> - Ruta de $_SERVER['DOCUMENT_ROOT']
- <folder_or_dispatcher_to_server> - Si se especifica una carpeta, php servirá estáticos en esa carpeta y procesará los archivos .php. Si se especifica un arhcivo, php llamará en cada ocasión al fichero PHP para que se encargue gestionar todas las peticiones independientemente del path con un return false; en el ámbito global, haremos que PHP gestione la URL.
Ejemplo:
Servirá únicamente en local en el puerto por defecto (url http://localhost/) con un dispatcher.php que gestionará el routing y estableciendo como DOCUMENT_ROOT el directorio actual.
php -S 127.0.0.1:80 -t . dispatcher.php
Sobre la plantilla incluída
He montado una pequeña plantilla para ilustrar cómo usar PHP en modo servidor. Para lanzarlo basta con ejecutar el archivo run.bat y acceder a http://localhost/.
run.bat <- Al ejecutar run.bat lanzamos PHP en modo servidor stand-alone
@echo off
"%~dp0\bin\php\php.exe" -S localhost:80 "%~dp0\code\dispatcher.php"
Carpeta bin/php <- Contiene los archivos mínimos de PHP5.4 para poder ejecutarlo.
Carpeta public/static <- La carpeta public/static la sirve el dispatcher.php en modo cliente, en producción la carpeta debería servirla el servidor http: apache, cherokee, nginx...
Carpeta code <- Aquí está el código PHP del dispatcher y los phars con las librerías Silex y Twig.
Carpeta views <- Contiene las plantillas de twig que se usarán.
Carpeta public/static <- La carpeta public/static la sirve el dispatcher.php en modo cliente, en producción la carpeta debería servirla el servidor http: apache, cherokee, nginx...
Carpeta code <- Aquí está el código PHP del dispatcher y los phars con las librerías Silex y Twig.
Carpeta views <- Contiene las plantillas de twig que se usarán.
Muy bueno.
ResponderEliminarEsto es lo que tendrian que comparar contra node.js en cuanto a rendimiento, no el monstruo apache+php+extensiones
Tomo nota para probarlo.
------------------------
Guillermo Torres
http://gtorres.itcron.com
Hola Guillermo.
ResponderEliminarMe había puesto a escribir aquí una "explicación", pero me estaba extendiendo tanto que voy a crear un post entero :)
¡Saludos!