Creamos una carpeta en un directorio accesible al servidor web, como /var/www o C:\xampp\htdocs si usas Xampp sobre Windows. En este caso usaremos "misitio" como el nombre de la carpeta, pero tu puedes usar la que gustes :).
Si utilizas Windows recomiendo utilizar Git Bash o MinSys para que te vayas acostumbrando a los comandos linux :).
cd /var/www
mkdir misitio
cd misitio
Luego, lo siguiente que vamos a hacer es instalarlo:
composer require espino316/rsphp
Luego, desde la línea de comandos:
vendor/espino316/rsphp/rsphp init --default
Esto creará la estructura de directorios y archivos necesarios de la aplicación:
* application * Controllers * Libraries * Models * Views * config * public * css * img * js * index.php * .htaccess * .htaccess
A continuación, desde la línea de comandos podemos teclear directamente:
./rsphp help
Esto nos mostrará la ayuda de la línea de comandos, cuando la necesitemos.
Lo primero que vamos a hacer ahora es crear un controlador. Desde la línea de comandos tecleamos:
./rsphp controller create --name=Default --doc="Controlador por defecto"
Esto creará DefaultController.php en el directorio application/Controllers
Abrimos el archivo y veremos:
namespace Application\Controllers;
use RSPhp\Framework\Controller;
/**
* Controlador por defecto
*/
class DefaultController extends Controller
{
/**
* Creates a new instance of DefaultController
*/
function __construct()
{
} // end function constructs
/**
* The home %baseUrl/Default/
*/
function index()
{
} // end function index
} // end class DefaultController
Como podemos observar, tenemos que el controlador se encuentra en el namespace Application\Controllers y que utilizamos la clase RSPhp\Framework\Controller.
La función inicial, por defecto es "index". Aqui colocaremos un mensaje:
/**
* The home %baseUrl/Default/
*/
function index()
{
echo "Hola mundo!";
} // end function index
Guardamos y navegamos a [http://localhost/misitio](http://localhost/misitio/) y podremos ver el mensaje "Hola mundo!" en la pantalla. Bastante simple ¿No?
Creando funciones nuevas podemos utilzar nuevas urls, el formato es el siguiente:
http://misitio/nombrecontrolador/nombrefuncion
ejem.
http://misitio/mensajes/hola
En el ejemplo anterior no especificamos el nombre del controlador. Esto es por que es el controlador por defect y si navegamos a la home, entonces lo podemos omitir. Sin embargo, si utilizamos algun otro controlador con una función, hemos de especificarlo.
Pues bien, creemos otro controlador:
./rsphp controller create --name=Mensajes --doc="Controlador para probar mensajes"
Agreguémosle una función hola:
/**
* Función para decir hola, url: %baseUrl/mensajes/hola
*/
function hola()
{
echo "Hola!";
} // end function index
Y naveguemos a [http://localhost/misitio/mensajes/hola](http://localhost/misitio/mensajes/hola). Se nos mostrará el mensaje: "Hola!".
Para pasarle parámetros a la función, podemos especificarlos en el código y agregarlos directamente a la url, así:
/**
* Función para decir hola, url: %baseUrl/mensajes/hola
*/
function hola( $name )
{
echo "Hola! $name";
} // end function index
Y naveguemos a http://localhost/misitio/mensajes/hola/luis.
Se nos mostrará el mensaje "Hola luis!".
Podemos especificar más parámetros de la misma forma:
/**
* Función para decir hola, url: %baseUrl/mensajes/hola
*/
function hola( $name, $age )
{
echo "Hola! $name, de $age años";
} // end function index
Y naveguemos a [http://localhost/misitio/mensajes/hola/luis/33](http://localhost/misitio/mensajes/hola/luis/33). Se nos mostrará el mensaje "Hola luis, de 33 años!". Como podemos ver es bastante natural y simple.
Ahora procederemos a utilizar vistas. Las vistas se almacenarán en la carpeta application/Views y serán archivos * .php.
Vamos a crear una vista, estas se almacenarán en application/Views, así que allí crearemos el archivo sample.php.
<html>
<head><title>Ejemplo</title></head>
<body>Este es un ejemplo</body>
</html>
Para utilizar las vistas, usaremos la clase View y la función load. Creemos otra función en el controlador "Mensajes" y añadamos la referencia a la clase. Queda de la siguiente manera, la clase completa:
namespace Application\Controllers;
use RSPhp\Framework\Controller;
use RSPhp\Framework\View;
/**
* Controlador de Mensajes
*/
class MensajesController extends Controller
{
/**
* Creates a new instance of MensajesController
*/
function __construct()
{
} // end function constructs
/**
* The home %baseUrl/Mensajes/
*
* @return null
*/
function index()
{
} // end function index
/**
* Dice "Hola"
*
* @param String $name El nombre a mostrar
* @param String $age La edad a mostrar
*
* @return null
*/
function hola( $name, $age )
{
echo "Hola $name, de $age años";
} // end function hola
/**
* Muestra una vista
*
* @return null
*/
function ejemplo() {
View::load("sample");
} // end function ejemplo
} // end class MensajesController
Esto cargará el archivo application/View/ejemplo.php y los escribirá, como si hubiesemos hecho un "echo".
Para usar variables en las vistas utilizaremos la notación $nombreVariable como si estuvieramos usando php directamente. Las variables las pondremos en un arreglo, con la llave incluyendo el símbolo "$" y las pasaremos como parámetro en la función View::load, así:
La vista:
<label>$myTitle</label>
El código php
$data["$myTitle"] = "Mi asombroso artículo";
View::load( "miVista", $data );
Simple ¿no? Ahora vamos a hacer el ejemplo con el nombre y la edad del ejemplo anterior, creamos un archivo hola.php en el directorio application/Views que quedaría así:
<html>
<head><title>Hola</title></head>
<body>
<h1>Hola $name, de $age años.</h1>
</body>
</html>
Ahora modificamos la función hola para que quede de la siguiente manera:
/**
* Dice "Hola"
*
* @param String $name El nombre a mostrar
* @param String $age La edad a mostrar
*
* @return null
*/
function hola( $name, $age )
{
$data['$name'] = $name;
$data['$age'] = $age;
View::load( "hola", $data );
} // end function hola
Como podemos ver, es la mar de sencillo utilizar RSPhp. Checa sus asombrosas funcionalidades en la documentación.