XAMP
Apache + PHP + MariaDB(MySQL se cerro) + Pearl
Se utilizara XAMP para intercambiar datos con la aplicación móvil.
Video de la página oficial(en ingles).
Apache ofrece muchas ventajas, es posible escoger que directorio utilizar para los archivos de la web. Por ejemplo, utilizar una Raspberry y conectar un disco externo para alojar archivos(videos, la interfaz de administración, probar desarrollos o respaldos), mientras ella ejecuta su sistema desde una tarjeta SD.
Por favor: no uses C:/Program Files.
Solo usaremos
Apache
PHP
Maria
MyAdmin.
Se recomienda una partición para archivos y una de sistema, pero eso es de otro tema. Por suerte XAMPP permite montar en raíz un directorio. Y si el directorio web sera muy pesado, se podría montar en un disco externo, es cuestión de modificar el httpd.conf del apache.
Inicio>XAMPP>XAMPP Control Panel
Idioma
Español o Inglés
Abrirá en alemán, reiniciamos el panel de control.
Cerramos la ventana y del menú de la barra de tareas presionamos Bendeen.
Lo abrimos.
Arrancamos mysql y apache. Nos vamos al myadmin.
La instalación ha sido exitosa.
Para usuarios de Linux, recuerden no correr el demonio directamente como root, creen el usuario www.
Lo siguiente es crear un usuario para la conexión, una tabla para intercambiar datos, y un "manipulador" de la conexión.
Recomiendo(y cualquiera que conozca del tema lo haría) guardar valores que se repiten demasiado en "enums". Por ejemplo marca y modelo. No vamos a llenar discos duros con datos redundantes de un esquema que podemos mantener en cache. Además el gasto energético, CPU, ancho de banda, étc.
Recomendación: usar un XML para esas listas, debe ser el mismo para el modo Web que para el móvil, así cuando actualices el del servidor, poner el mismo en el update de la app móvil.
Código
Buscamos la carpeta htdocs, se puede trabajar con un bloc de notas, pero recomiendo Visual Studio Code o notepad ++.
Clase vehículo
<?php
class vehiculo
{
public $numeroEjes = 0;
public $llantasEje = 0;
public $marca=0;
public $modelo=0;
public $uso=0;
}
?>
Clase auto
<?php
include('vehiculo.php');
class auto extends vehiculo{
public $motor=0;
public $numeroAsientos=0;
public $GPS=0;
public $camaraTrasera=0;
}
?>
Observarán que es versátil, puedo poner una bicicleta: 2 ejes, 1 llanta por eje, marca, el índice de una lista de marcas, modelo, de BMX, el uso: privado, público, transporte(públicas, las que prestan algunas ciudades, como la CDMX), naturalmente de una lista.
Creamos un auto. Para leer los valores podemos usar un switch e imprimirlos.
<?php
include('auto.php');
$miAuto=new auto;
?>
No debe arrojar error.
Recuerden desactivar las alertas en producción.
Ahora veremos como devolver valores.
Las funciones de PHP nos servirán para esto. Recuerden deben encontrar una forma de programar que les acomode, si trabajan en equipo llegar a un acuerdo para el mantenimiento adecuado del código. El código debe ser simple, para que sea fácil de comprender, pero debe cubrir las expectativas.
Aquí vemos los enums en prueba:
<?php
class vehiculo
{
public $numeroEjes = 0;
public $llantasEje = 0;
public $marca=0;
public $modelo=0;
public $uso=0;
privade $marcas=array("VolksWagen", "Chevrolet", "Subaru", "Cherokee", "Toyota", "KIA", "Nissan");
privade $modelos=array("leaf", "tornado", "beetle", "crossfox");
privade $usos=array("público", "partícular", "gubernamental");
function getCadenaMarcas(){
return $this->marcas[$this->marca];
}
function getCadenaModelo(){
return $this->modelos[$this->modelo];
}
function getCadenaUso(){
return $this->usos[$this->uso];
}
}
?>
<?php
include('vehiculo.php');
class auto extends vehiculo{
public $numeroAsientos=0;
public $motor=0;
public $GPS=0;
public $camaraTrasera=0;
//motor puede ser más rico, pero en vehículo ya éxplique a lo que van los enums
privade $motores=array("diesel", "magna", "premium", "híbrido", "eléctrico");
function getMotorCadena(){
return $this->motores[$this->motor];
}
function getGPS(){
switch $this->GPS{
case 0:
return "Si";
break;
case 1:
return "No";
break;
}
function getCamaraTrasera(){
switch $this->camaraTrasera{
case 0:
return "Si";
break;
case 1:
return "No";
break;
}
}
}
?>
<?php
//error_reporting('0');
include('auto.php');
//echo "Hola";
$miAuto=new auto();
echo $miAuto->getMotorCadena();
//recuerda que el motor se fija en la variable
?>
Android solo recibirá directamente el número y lo deberá interpretar.
Aquí se puede hacer algo parecido con javascript, para el entorno web, json es recomendable.
El link de la carpeta:
https://drive.google.com/drive/folders/0B0zrGMhduaXIWURlV1NyczFzaVU?usp=sharing
En el siguiente episodio una base de datos, luego Json y app estara terminada.