Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/06/2018, 08:41
Avatar de KATHYU
KATHYU
 
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Dudas con PHP y POO !!!

Buen día, tal y como lo vengo diciendo hace un tiempo, estoy introduciéndome al mundo de la poo.

Tome uno de mis proyectos ya realizados en estructurada, es un archivo que solo muestra una tabla con una serie de eventos a realizarse en la empresa, algo sencillo.

Pues lo primero que hice fue colocar ese archivo como index y realice un árbol así:
Cita:
Index.php
--root/
----loader.php
----class/
------config.php
------database.php
Archivo index.php
Código PHP:
Ver original
  1. <?php
  2.     // require_once(DIR_ROOT.SLASH.'loader.php'); // No funciona
  3.     require_once('root/loader.php');
  4.     echo DBM::conexion();
  5.     echo DBM::desconectar();
  6. ?>

Archivo loader.php
Código PHP:
Ver original
  1. <?php
  2.     define('SLASH', DIRECTORY_SEPARATOR);
  3.     define('DIR_ROOT', realpath(dirname(__FILE__)));
  4.     // define('DIR_CLASS', DIR_ROOT."/".'class'); // Preferi usar la constante
  5.     define('DIR_CLASS', DIR_ROOT.SLASH.'class'.SLASH);
  6.  
  7.     require_once(DIR_CLASS.'config.php');
  8.     require_once(DIR_CLASS.'database.php');
  9. ?>

Archivo database.php
Código PHP:
Ver original
  1. <?php
  2.     // error_reporting(0);
  3.     require_once(DIR_ROOT.SLASH.'loader.php');
  4.  
  5.     class DBM{
  6.         private $conexion;
  7.         private $database;
  8.  
  9.         public function conexion()
  10.         {
  11.             return self::conectar();
  12.         }
  13.  
  14.         private function conectar(){
  15.             $conexion = mysqli_connect(DB_HOST,DB_USER,DB_PASS);
  16.             $database = mysqli_select_db($conexion, DB_DATABASE);
  17.  
  18.             if (!$conexion){
  19.                 $response = '<b>Error al conectar al Servidor !!!</b> '.mysqli_connect_error();
  20.                 return $response;
  21.             }
  22.             else{
  23.                 if (!$database) {
  24.                     $response = 'Error al conectar con la Base de Datos <b>'.DB_DATABASE.'</b> '.mysqli_error($conexion);
  25.                     return $response;
  26.                 }
  27.                 else{
  28.                     $response .= $conexion->host_info . "<br>";
  29.                     $response .= 'Conectado al Servidor: <b>'.DB_HOST.'</b><br>';
  30.                     $response .= 'Base de Datos: <b>'.DB_DATABASE.'</b><br>';
  31.                     mysqli_set_charset($conexion, 'utf8');
  32.                     $response .= ('Conjunto de caracteres de la Base de Datos es: <b>'.$conexion->character_set_name().'</b><br>');
  33.                     return $response;
  34.                 }
  35.             }
  36.         }
  37.  
  38.         public function desconectar(){
  39.             $conexion = self::conexion();
  40.             echo '<hr>';
  41.             var_dump($conexion);
  42.             echo '<hr>';
  43.             if (isset($conexion)) {
  44.                 mysqli_close($conexion); //Linea 44
  45.                 unset($conexion);
  46.                 if (mysqli_close($conexion)) { // Linea 46
  47.                     $response = '<hr>Conexion a la Base de Datos Cerrada !!!';
  48.                     return $response;
  49.                 }
  50.                 else{
  51.                     $response = '<hr>La Conexion a la Base de Datos sigue Abierta !!!';
  52.                     return $response;
  53.                 }
  54.             }
  55.             else{
  56.                 $response = 'Conexion no esta definida';
  57.                 return $response;
  58.             }
  59.         }
  60.     }
  61.  
  62.     // $dbm = new DBM();
  63. ?>

Dudas

1- Porque desde index.php si coloco require_once(DIR_ROOT.SLASH.'loader.php'); no funciona, pero si coloco require_once('root/loader.php'); si ??

2- En database.php esta correcta la funcion conectar?? Osea, si funciona y muestra tal cual la informacion de los echo, pero no se si esta bien diseñada. o si el hecho de "redeclarar" $conexion es incorrecto?

3- La función desconectar esta bien diseñada?? Tengo dudas en esa variable $conexion puesto que el ejemplo que he seguido utiliza $this->conexion pero yo he englobado eso en la variable $conexion en la función conectar(), no se si deba hacerlo en cada función ?? me refiero al código $conexion = $this->conexion ??
A parte de eso No funciona, pongo captura del resultado


4- El ejemplo que estoy siguiendo es el que se puede descargar en Este Link, y esa gente hace una funcion para cada cosa.

5- Cual seria la forma de hacer una función para tratar todos los select? o hay que hacer una función por cada select ? de ser así es lo mismo que en estructurada

6- Tambien estaba siguiendo un curso de Cesar Cancino pero es super viejo, hoy estoy siguiendo Este de Facultad Autodidacta
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.

Última edición por KATHYU; 15/06/2018 a las 08:56