<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Slim_Framework_-_PHP</id>
	<title>Slim Framework - PHP - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Slim_Framework_-_PHP"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Slim_Framework_-_PHP&amp;action=history"/>
	<updated>2026-10-21T04:22:49Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Slim_Framework_-_PHP&amp;diff=66982&amp;oldid=prev</id>
		<title>Veiga: /* Trabajando directamente con el servidor web integrado de PHP */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Slim_Framework_-_PHP&amp;diff=66982&amp;oldid=prev"/>
		<updated>2020-02-21T09:17:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Trabajando directamente con el servidor web integrado de PHP&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Slim framework =&lt;br /&gt;
&lt;br /&gt;
Slim framwework es un &amp;#039;&amp;#039;&amp;#039;micro framework&amp;#039;&amp;#039;&amp;#039; para PHP que nos permite escribir rápidamente aplicaciones web y APIs.&lt;br /&gt;
&lt;br /&gt;
Para comenzar a utilizar frameworks y aprender MVC (Modelo Vista Controlador) es muy recomendable ya que se pueden hacer aplicaciones muy interesantes con muy poco código. No tiene la potencia de otros frameworks de PHP como Laravel, Code Igniter, etc.. pero hace bastante bien su trabajo.&lt;br /&gt;
&lt;br /&gt;
Página web oficial: http://www.slimframework.com/&lt;br /&gt;
&lt;br /&gt;
Documentación del framework: http://www.slimframework.com/docs/v4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Características de Slim Framework ==&lt;br /&gt;
&lt;br /&gt;
* Creador de rutas bastante potente&lt;br /&gt;
** Soporta métodos HTTP standard y personalizados.&lt;br /&gt;
** Parámetros de ruta con comodines y condiciones.&lt;br /&gt;
** Redirecciones de rutas, paros y saltos.&lt;br /&gt;
* Renderizado de plantillas y vistas personalizadas.&lt;br /&gt;
* Mensajes Flash.&lt;br /&gt;
* Encriptación segura de cookies con AES-256.&lt;br /&gt;
* Caché HTTP.&lt;br /&gt;
* Logging de accesos personalizado.&lt;br /&gt;
* Gestión de errores.&lt;br /&gt;
* Configuración sencilla.&lt;br /&gt;
&lt;br /&gt;
== Requerimientos ==&lt;br /&gt;
&lt;br /&gt;
Para la &amp;#039;&amp;#039;&amp;#039;versión 3&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;a Enero de 2020 ya existe la versión 4&amp;#039;&amp;#039;&amp;#039;), son necesarios los siguientes requisitos:&lt;br /&gt;
* Servidor web con la reescritura de URL activada.&lt;br /&gt;
* PHP 5.5 o superior.&lt;br /&gt;
&lt;br /&gt;
== Instalación ==&lt;br /&gt;
&lt;br /&gt;
=== Slim Framework 3  - Windows ===&lt;br /&gt;
* Instalar la herramienta &amp;#039;&amp;#039;&amp;#039;Composer&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;&amp;#039;https://getcomposer.org/download/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Descargar el ejecutable desde: https://getcomposer.org/Composer-Setup.exe&lt;br /&gt;
* Desde la carpeta dónde queramos ejecutar el proyecto ejecutaremos los comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
composer require slim/slim:&amp;quot;3.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Slim Framework 3 - Linux ===&lt;br /&gt;
* Instalar la herramienta &amp;#039;&amp;#039;&amp;#039;Composer&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;&amp;#039;https://getcomposer.org/download/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Instalamos Composer en línea de comandos, en el terminal de Linux:&lt;br /&gt;
&lt;br /&gt;
php -r &amp;quot;copy(&amp;#039;https://getcomposer.org/installer&amp;#039;, &amp;#039;composer-setup.php&amp;#039;);&amp;quot;&lt;br /&gt;
php -r &amp;quot;if (hash_file(&amp;#039;sha384&amp;#039;, &amp;#039;composer-setup.php&amp;#039;) === &amp;#039;e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a&amp;#039;) { echo &amp;#039;Installer verified&amp;#039;; } else { echo &amp;#039;Installer corrupt&amp;#039;; unlink(&amp;#039;composer-setup.php&amp;#039;); } echo PHP_EOL;&amp;quot;&lt;br /&gt;
php composer-setup.php&lt;br /&gt;
php -r &amp;quot;unlink(&amp;#039;composer-setup.php&amp;#039;);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Movemos el fichero composer.phar a una ruta global que esté en el PATH:&lt;br /&gt;
&lt;br /&gt;
mv composer.phar /usr/local/bin/composer&lt;br /&gt;
&lt;br /&gt;
# A partir de este momento podemos ejecutar el comando composer desde cualquier directorio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Desde la carpeta dónde queramos ejecutar el proyecto ejecutaremos los comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
composer require slim/slim:&amp;quot;3.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para su instalación simplemente se descomprime el .zip en la ruta dónde queramos dar servicio con este framework y lo único que nos interesa de ese zip es la &amp;#039;&amp;#039;&amp;#039;carpeta Slim&amp;#039;&amp;#039;&amp;#039; y el fichero &amp;#039;&amp;#039;&amp;#039;.htaccess&amp;#039;&amp;#039;&amp;#039; incluído en la carpeta principal.&lt;br /&gt;
&lt;br /&gt;
El fichero &amp;#039;&amp;#039;&amp;#039;index.php&amp;#039;&amp;#039;&amp;#039; es un ejemplo interesante que estaría bien tenerlo para poder programar nuestra aplicación.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo1 básico para probar la ejecución de Slim Framework ==&lt;br /&gt;
&lt;br /&gt;
* En la carpeta dónde hemos instalado el framework, crearemos una nueva carpeta llamada &amp;#039;&amp;#039;&amp;#039;/proyecto1/public&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Y dentro de &amp;#039;&amp;#039;&amp;#039;public&amp;#039;&amp;#039;&amp;#039; un fichero &amp;#039;&amp;#039;&amp;#039;index.php&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Contenido del fichero &amp;#039;&amp;#039;&amp;#039;/proyecto1/public/index.php&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* Antes de probar el ejemplo vea el siguiente apartado de Configuración&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// proyecto1/public/index.php&lt;br /&gt;
&lt;br /&gt;
use Psr\Http\Message\ResponseInterface as Response;&lt;br /&gt;
use Psr\Http\Message\ServerRequestInterface as Request;&lt;br /&gt;
use Slim\Factory\AppFactory;&lt;br /&gt;
&lt;br /&gt;
# Ajustar a la carpeta dónde tengamos vendor.&lt;br /&gt;
require __DIR__ . &amp;#039;/../../vendor/autoload.php&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Instanciamos la aplicación.&lt;br /&gt;
$app = new \Slim\App;&lt;br /&gt;
&lt;br /&gt;
// Creamos la ruta por defecto&lt;br /&gt;
$app-&amp;gt;get(&amp;#039;/&amp;#039;, function (Request $request, Response $response) {&lt;br /&gt;
    $response-&amp;gt;getBody()-&amp;gt;write(&amp;quot;El framework Slim funciona !&amp;quot;);&lt;br /&gt;
    return $response;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Ejecutamos la aplicación.&lt;br /&gt;
$app-&amp;gt;run();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ejemplo2 básico para probar la ejecución de Slim Framework ==&lt;br /&gt;
&lt;br /&gt;
* En la carpeta dónde hemos instalado el framework, crearemos una nueva carpeta &amp;#039;&amp;#039;&amp;#039;/proyecto2/public&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Y dentro de &amp;#039;&amp;#039;&amp;#039;/proyecto2/public&amp;#039;&amp;#039;&amp;#039; un fichero &amp;#039;&amp;#039;&amp;#039;index.php&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Contenido del fichero &amp;#039;&amp;#039;&amp;#039;/proyecto2/public/index.php&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* Antes de probar el ejemplo vea el siguiente apartado de Configuración&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// proyecto2/public/index.php&lt;br /&gt;
&lt;br /&gt;
use Psr\Http\Message\ResponseInterface as Response;&lt;br /&gt;
use Psr\Http\Message\ServerRequestInterface as Request;&lt;br /&gt;
use Slim\Factory\AppFactory;&lt;br /&gt;
&lt;br /&gt;
# Ajustar a la carpeta dónde tengamos vendor.&lt;br /&gt;
require __DIR__ . &amp;#039;/../../vendor/autoload.php&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Instanciamos la aplicación.&lt;br /&gt;
$app = new \Slim\App;&lt;br /&gt;
&lt;br /&gt;
// Creamos la ruta por defecto&lt;br /&gt;
$app-&amp;gt;get(&amp;#039;/&amp;#039;, function (Request $request, Response $response) {&lt;br /&gt;
    $response-&amp;gt;getBody()-&amp;gt;write(&amp;quot;Prueba a entrar en la siguiente ruta &amp;lt;a href=&amp;#039;/hola/Marita&amp;#039;&amp;gt;/hola/Marita&amp;lt;/a&amp;gt;&amp;quot;);&lt;br /&gt;
    return $response;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Otra ruta /hola/ que recibe un parámetro&lt;br /&gt;
$app-&amp;gt;get(&amp;#039;/hola/{parametro1}&amp;#039;, function (Request $request, Response $response, array $args) {&lt;br /&gt;
    $nombre = $args[&amp;#039;parametro1&amp;#039;];&lt;br /&gt;
    $response-&amp;gt;getBody()-&amp;gt;write(&amp;quot;Hola &amp;lt;b&amp;gt;$nombre&amp;lt;/b&amp;gt;, ¿qué tal estás?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return $response;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Ejecutamos la aplicación.&lt;br /&gt;
$app-&amp;gt;run();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuración del servidor web ==&lt;br /&gt;
&lt;br /&gt;
=== Trabajando con NGINX ===&lt;br /&gt;
Si estamos trabajando con &amp;#039;&amp;#039;&amp;#039;Nginx&amp;#039;&amp;#039;&amp;#039; tendremos que configurar el &amp;#039;&amp;#039;&amp;#039;root directory&amp;#039;&amp;#039;&amp;#039; de nuestro servidor para que apunte a la carpeta pública del proyecto (1,2,3,...) que queramos probar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Como root&lt;br /&gt;
&lt;br /&gt;
nano /etc/nginx/sites-enabled/veiga.dynu.net&lt;br /&gt;
&lt;br /&gt;
# Sustituir la ruta raíz (root) por la carpeta pública de nuestro proyecto. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
root /var/www/veiga.dynu.net/public/slimframework/proyecto1/public&lt;br /&gt;
&lt;br /&gt;
# Reiniciar el servidor Nginx:&lt;br /&gt;
service nginx restart&lt;br /&gt;
&lt;br /&gt;
# A partir de este momento ya nos podemos conectar a nuestro dominio y probar el ejemplo básico de funcionamiento:&lt;br /&gt;
http://veiga.dynu.net&lt;br /&gt;
&lt;br /&gt;
El framework Slim funciona !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Trabajando directamente con el servidor web integrado de PHP ===&lt;br /&gt;
&lt;br /&gt;
* Otra forma de trabajar con el framework &amp;#039;&amp;#039;&amp;#039;si no queremos tocar nuestra configuración de Nginx&amp;#039;&amp;#039;&amp;#039; sería algo similar a lo que hacemos con NodeJS.&lt;br /&gt;
* Consiste en arrancar un servicio web con la carpeta que deseemos como raíz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Nos situamos en la carpeta slimframework. Por ejemplo:&lt;br /&gt;
cd /var/www/veiga.dynu.net/public/slimframework&lt;br /&gt;
&lt;br /&gt;
# Desde allí arrancamos el servidor web integrado con el lenguaje PHP con el siguiente comando:&lt;br /&gt;
# php -S 0.0.0.0:puerto [-t carpetapublica]&lt;br /&gt;
# ATENCIÓN: si tenemos NGINX funcionando y queremo&lt;br /&gt;
s usar el mismo puerto tendríamos que pararlo antes.&lt;br /&gt;
# O también podríamos arrancarlo en un puerto diferente, por ejemplo el 8080, para no chocar con el puerto de Nginx.&lt;br /&gt;
&lt;br /&gt;
# Para escuchar en un puerto 8080 de la carpeta proyecto1/public&lt;br /&gt;
php -S 0.0.0.0:8080 -t proyecto1/public&lt;br /&gt;
&lt;br /&gt;
# Para escuchar en el puerto 80 de la carpeta proyecto1/public&lt;br /&gt;
php -S 0.0.0.0:80 -t proyecto1/public&lt;br /&gt;
&lt;br /&gt;
# Para escuchar en un puerto 8080 de la carpeta proyecto2/public&lt;br /&gt;
php -S 0.0.0.0:8080 -t proyecto2/public&lt;br /&gt;
&lt;br /&gt;
# Si estuviéramos dentro de la carpeta public podríamos arrancarlo directamente con:&lt;br /&gt;
php -S 0.0.0.0:80&lt;br /&gt;
&lt;br /&gt;
# Y se muestra la siguiente información:&lt;br /&gt;
&lt;br /&gt;
PHP 7.3.14-1~deb10u1 Development Server started at Thu Feb 20 10:03:20 2020&lt;br /&gt;
Listening on http://0.0.0.0:80&lt;br /&gt;
Document root is /var/www/veiga.dynu.net/public/slimframework/proyecto1/public&lt;br /&gt;
Press Ctrl-C to quit.&lt;br /&gt;
&lt;br /&gt;
# A partir de este momento ya nos podemos conectar a nuestro dominio y probar el ejemplo básico de funcionamiento:&lt;br /&gt;
http://veiga.dynu.net&lt;br /&gt;
&lt;br /&gt;
El framework Slim funciona !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Usuario:Veiga|Veiga]] ([[Usuario discusión:Veiga|discusión]]) 10:17 21 feb 2020 (CET)&lt;/div&gt;</summary>
		<author><name>Veiga</name></author>
	</entry>
</feed>