Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Critica, aportacion, Sobre patron de diseño OOP que medio diseñe

Estas en el tema de Critica, aportacion, Sobre patron de diseño OOP que medio diseñe en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos realmente, mas o menos programo en objetos en aspx pero ahora el trabajo me ha llevado a php por que el hosting ...
  #1 (permalink)  
Antiguo 11/02/2008, 13:24
Avatar de Fher  
Fecha de Ingreso: febrero-2003
Ubicación: En algun lugar de cancun
Mensajes: 384
Antigüedad: 21 años, 3 meses
Puntos: 0
De acuerdo Critica, aportacion, Sobre patron de diseño OOP que medio diseñe

Hola a todos realmente, mas o menos programo en objetos en aspx pero ahora el trabajo me ha llevado a php por que el hosting es mas economico y con 1000 dolares al año obtienes mas en un hostin linux que uno windows ,pero no entrare a discusion solo es un comentario jeje

hace algun tiempo programaba en capas en aspx y pues me gusto esto y he hice un diseño parecido en php para mis aplicaciones y consta de lo siguiente..

primero tengo mi selector de base de datos , donde defino mi base de datos que voy a ocupar, usuarios, passwords ... este lo pongo en un archivo llamado database.php

-----------------------------------------------------------------------
Código:
class DataBaseClass
{

	var $database_name= 'base de datos;
	var $database_user= "usuario;
	var $database_pass= "password";
	var $database_host= "localhost";
	var $database_conexion;

    
        // funcion conectar
	function connect()
	{
		$this->database_conexion= mysql_connect($this->database_host, $this->database_user, $this->database_pass) or die("Could not make connection to MySQL");
		mysql_select_db($this->database_name) or die ("Could not open database: ". $this->database_name);
	}

	//funcion desconetar
   function disconnect()
	{
		if(isset($this->database_conexion))
		{
			mysql_close($this->database_conexion);
		}
		else
		{
			mysql_close();
		}
	}

       //funcion para ejecutar un query de SELECT, cuando le mando $RowD=True
// solo recojo un valor es es solo para obtener un valor

	function query($qry, $RowD=false)
	{
		if(!isset($this->database_conexion))
		{
			$this->connect();
		}

		$result = mysql_query($qry, $this->database_conexion) or die("Error: ". mysql_error());

		if ($RowD==false)
		{
			$returnArray = array();
			$i=0;
			while ($row = mysql_fetch_array($result, MYSQL_BOTH))
			{
				if ($row)
				{
					$returnArray[$i++]=$row;
				}
			}

		}

		else
		{
			$returnArray=mysql_fetch_row($result);
		}
		mysql_free_result($result);
		return $returnArray;
	}

       //funcion para ejecutar cualquier Query, de preferencia Update, Insert, Delete

	function QueryExecute($qry)
	{

		if(!isset($this->database_conexion))
		{
			$this->connect();
		}

		$result = mysql_query($qry, $this->database_conexion) or die("Error: ". mysql_error());
       
		return $result;
		

	}
	
        //funcion extra, para ejecutar numero de rows
	function NumRows($qry)
	{

		if(!isset($this->database_conexion))
		{
			$this->connect();
		}

		$result = mysql_query($qry, $this->database_conexion) or die("Error: ". mysql_error());

		$Total = mysql_num_rows($result);
		return $Total;

	}
}
----------------------------------------------------------

ahora tengo 2 archivos mas..
archivo 2 llamado DAL.php el Cual tengo todos mis querys y hace funcion para mandar mi querys a la base de datos y conectarse con database.php por herencia

Código:
archivo DAL.php

include("database.php");


/**
 * Clase de la capa DAL para ejecutar consultas a la base de datos
 * archivo que incluyo database.php
 * 
**/


class ClaseDall extends DataBaseClass {


	

	/**
	 * Constructor
	 */
	

	function __construct(){

	
	}
	
	/**
	 * Funciones privadas ""
	 */
	//-----------------------------------------------------------

	private function GetSomethinSelect()
	{
		$_sSQL ="SELECT * FROM tabla";
		return $_sSQL;
	}


// Funciones publicas
// Aqui pongo todas mis funciones que requiero conectar con la base de datos

	public function GetSomething($id)
	{
		
		$sSQL.= $this->GetSomethinSelect();
		
		$sSQL.=" WHERE IdField = ''$id " ;
		
               // aqui envio un select por eso ocupo query
		$Array = $this->query($sSQL);
		return $Array;
	}


}
-----------------------------------------------------------------------------------
--------------------------------------------------------------------------------

Archivo 1 BLL.php .. Esta es mi capa logica donde hago todas las operaciones logicas y etc... su funcion es pasarle datos a DAll por herencia y hacer operaciones , aqui es donde se hace, todo el trabajo sucio de IF, whiles, sumas, restas


Código:
include("Dall.php");


class Clasebll extends ClaseDall  {
	

	
	function __construct(){
		
		
	}

	public function GetGiveSomething($id)
	{
		$value= $this->GetSomething($id);
		return $value;
	}

}

y ya en mi interface osea en mi archivo.php, solo mando a llamar lo que obtuve de BLL


<?
include('lib/Bll.php')

$Classeinterface = new Clasebll();

//para obtener datos de BLL solo haces..

$id = 1;

$Arreglo = $Classeinterface ->GetGiveSomething($id)


foreach($Arreglo as $Row)

{

$Row['campo']

}

?>
-------------------------------------------


De esta manera he separado por capas mi desarrollo y ya cada capa es independiente una de la otra, en caso de que yo quiere hacer alguna operación solo voy a mi capa correspondiente y automáticamente los cambios se veran reflejados en todo.

criticas buenas y malas, sugerencias, como mejorar el código, aportes y la verdad trabajar de esta forma se me hace muy comodo ya que no ocupo el llamado MVC, y hago esto para hacer una programación mas accesible y usable ( jeje no solo lo aplico a la web) y he llegado a los mismos resultados con este modelo y es eficiente..

que dicen ustedes venga el debate....
__________________
solo firma
  #2 (permalink)  
Antiguo 15/02/2008, 20:48
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Re: Critica, aportacion, Sobre patron de diseño OOP que medio diseñe

Ummm, interesante, y creo que para empezar...
Deberias trabajar basado el OO, en PHP 5, y no en el 4, pues este aunque aun muchos lo utilizan, muy pronto dejara de tener soporte asi que todas las aplicaciones tendran que basarse en php5 hacia adelante...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:10.