Crear APIREST con php - sin FRAMEWORKS #2
Vamos a comenzar con la programación de nuestra APIREST con PHP para ello debemos tener la siguiente estructura en el folder del proyectò.
Carpeta Clases : En este folder guardaremos toda la lógica y clases que heredaran de una clase principal llamada conexión.
Carpeta Conexión : Este folder almacenaremos únicamente dos archivos conexion.php el cual contendrá la clase conexión que a su vez se encargara de la conexion con la base de datos. y el archivo config que es donde almacenaremos los datos para conectarnos a dicha base de datos
Archivo config
Como he dicho anteriormente es donde almacenaremos los datos para conectarnos a nuestra base de datos. Almacenaremos dichos datos en formato JSON de la siguiente manera.
{
"conexion":{
"server" : "direccion-de-tu-servidor",
"user" : "nombre-de-tu-usuario",
"password" : "tu-contraseña",
"database" :"nombre-de-tu-basededatos",
"port" : "3306"
}
}
Archivo conexion.php
Como he dicho anteriormente en este archivo escribiremos la lógica de conexión a la base de datos y lo haremos de la se siguiente manera
<?php
//comenzamos declarando el nombre de la clse
class conexion {
//creamos los atributos de la clase
private $server;
private $user;
private $password;
private $database;
private $port;
private $conexion;
//declaramos el contructor
function __construct(){
//obtenemos los datos del archivo config mediente el metodo datosConexion
$listadatos = $this->datosConexion();
foreach ($listadatos as $key => $value) {
$this->server = $value['server'];
$this->user = $value['user'];
$this->password = $value['password'];
$this->database = $value['database'];
$this->port = $value['port'];
}
$this->conexion = new mysqli($this->server,$this->user,$this->password,$this->database,$this->port);
if($this->conexion->connect_errno){
echo "algo va mal con la conexion";
die();
}
}
//obtenemos los datos del archivo config
private function datosConexion(){
$direccion = dirname(__FILE__);
$jsondata = file_get_contents($direccion . "/" . "config");
return json_decode($jsondata, true);
}
//convertiremos los datos obtenidos en utf8
private function convertirUTF8($array){
array_walk_recursive($array,function(&$item,$key){
if(!mb_detect_encoding($item,'utf-8',true)){
$item = utf8_encode($item);
}
});
return $array;
}
//esta funcion la invocaremos cuando necesitemos utilizar un select
public function obtenerDatos($sqlstr){
$results = $this->conexion->query($sqlstr);
$resultArray = array();
foreach ($results as $key) {
$resultArray[] = $key;
}
return $this->convertirUTF8($resultArray);
}
//esta funcion la invocaremos cuando necesitemos utilizar insert,delete,update
public function nonQuery($sqlstr){
$results = $this->conexion->query($sqlstr);
return $this->conexion->affected_rows;
}
//UNICAMENTE INSERT YA QUE NOS DEVOLVERA EL ULTIMO ID INSERTADO
public function nonQueryId($sqlstr){
$results = $this->conexion->query($sqlstr);
$filas = $this->conexion->affected_rows;
if($filas >= 1){
return $this->conexion->insert_id;
}else{
return 0;
}
}
//encriptar CONTRASEÑAS
protected function encriptar($string){
return md5($string);
}
}
?>
Conectar PHP con MYSQL
En el siguiente video te muestro como crearlo con mas detalle
¿Te gusta este tipo de contenido ?
Nos vemos en la próximo post de este blog!!
No te olvides de suscribirte a mi canal de YouTube y apuntarte mis cursos de desarrollo web profesional que te ayudarán muchísimo en tu camino como programador o desarrollador web .