RSPhp
Inicio Rápido
Código Fuente
Documentación

Documentación

Configuración

Para configurar la aplicación utilizamos el archivo /config/app.json. Es un conjunto de datos json en los que cada clave es un elemento a configurar.

Nombre de la aplicación

Este archivo es capaz de configurar el nombre de la aplicación con la clave "appName", esta variable podrá ser accesida en toda la aplicación mediante $appName en las vistas y APP_NAME en el código Php.

Configuración:

    
      {
        "appName": "Mi asombrosa aplicación"
      }
    
  

Utilización (código):

    
      echo "Mi aplicación se llama: " . APP_NAME;
    
  

Utilización (vistas):

    
      <span>Nombre de la aplicación: $appName</span>
    
  

Variables globales

Para configurar más variables globales, utilizamos la clave "globals", siendo esta un elemento json, en la que cada clave es el nombre de la variable global y su valor es especificado como el valor de la clave. Podremos acceder a esta información con la sintaxis App::get('nombreVariableGlobal') en nuestro código.

Configuración:

    
      {
        "globals": {
          "EMAIL_ADMIN": "luis@espino.info"
        }
      }
    
  

Utilización:

    
      print_r( App::get('EMAIL_ADMIN') );
    
  

Rutas

Las rutas representan url's o direcciones web. La configuración las "apunta" a controladores y funciones. Se configura con la clave "routes" y es un arreglo de elementos json.

Cada elemento cuenta con las claves:

Configuración:

    
      {
        "routes": [
          {
            "method": "*",
            "url": "",
            "newUrl": "default"
          },
          {
            "method": "GET",
            "url": "cliente/nuevo",
            "newUrl": "customer/newcustomer"
          }
        ]
      }
    
  

Los segmentos restantes son considerados como parámetros para la función, por ejemplo:

    
      {
        "routes": [
          {
            "method": "*",
            "url": "usuarios/detalle",
            "newUrl": "users/get"
          }
        ]
      }
    
  

Suponiendo que nuestro sitio es misitio.com, al entrar a http://misitio.com/usuarios/detalle/123, el framework ejecutará:

    
      $UsersController->get('123');
    
  

Pueden ser multiples parámetros.

Otra manera de declarar parámetros es con dos puntos (":"), así:

    
      {
        "routes": [
          {
            "method": "*",
            "url": "admin/empresas/:id/usuarios/nuevo",
            "newUrl": "admin/adduser/:id"
          }
        ]
      }
    
  

Al entrar a http://misitio.com/admin/empresas/123/usuarios/nuevo el framework ejecutará:

    
      $AdminController->addUser('123');
    
  

**IMPORTANTE** Si se utiliza este método, los parámetros deben ser numéricos.

Conexiones a Bases de Datos

Utilizamos la clave: "dbConnections", siendo un arreglo de objetos json. Podemos declarar cuantas conexiones a bases de datos deseemos, asignándole un nombre a cada una de ellas, sin poderse repetir este dato. Debemos declarar además:

Configuración:

    
      {
        "dbConnections": [
          {
            "name": "miSitio",
            "driver": "mysql",
            "hostName": "127.0.0.1",
            "databaseName": "misitio",
            "userName": "luis",
            "password": "myPass"
          }
        ]
      }
    
  

Utilización:

    
      $db = new Db( 'miSitio' );
      $sql = "SELECT * FROM customers";
      $resultSet = $db->query( $sql );
    
  

Para utilizar una conexion por defecto, simplemente la nombramos como "default", luego en las declaraciones no tenemos que especificar un nombre de conexión.

Configuración:

    
      {
        "dbConnections": [
          {
            "name": "default",
            "driver": "pgsql",
            "hostName": "127.0.0.1",
            "databaseName": "mydb",
            "userName": "luis",
            "password": "myPass"
          }
        ]
      }
    
  

Utilización:

    
      $db = new Db(); // no es necesario el nombre
      $sql = "SELECT * FROM customers";
      $resultSet = $db->query( $sql );
    
  

Fuentes de Datos

Las fuentes de datos pueden ser consultas a bases de datos, a una tabla o multiples tablas, y pueden estar parametrizadas. El framework ejecutará la fuente de datos automáticamente y devolverá el resultado.

Toda fuente de datos tiene que tener una conexión especificada, a la base de datos de la cual tomará la información.

Para declararla utilizamos la clave "dataSources", es un arreglo de objetos Json, en el que para cada objeto debemos especificar:

Configuración:

    
      {
        "dataSources": [
          {
              "connection": "default",
              "name": "dsMedals",
              "type": "SQLQUERY",
              "text": "SELECT * FROM medals"
          }
        ]
      }
    
  

Utilización:

    
      $dsName = "dsMedals";
      $result = Db::getResultFromDataSource( $dsName, null);
      print_r( $result );
    
  

La estructura completa de la configuraicón se ve así:

    
      {
        "appName": "MiSitio",
        "globals": {
          "EMAIL_ADMIN": "luis@espino.info"
        },
        "routes": [
          {
            "method": "*",
            "url": "",
            "newUrl": "default"
          }
        ],
        "dbConnections": [
          {
            "name": "default",
            "driver": "mysql",
            "hostName": "127.0.0.1",
            "databaseName": "misitio",
            "userName": "luis",
            "password": "myPass"
          }
        ],
        "dataSources": [
          {
              "connection": "default",
              "name": "dsCustomers",
              "type": "SQLQUERY",
              "text": "SELECT * FROM customer WHERE customer_id = :customerId",
              "parameters": [
                {
                  "name": "customerId",
                  "type": "session",
                  "defaultValue": "1"
                }
              ]
          }
        ]
      }