Comunidad PHPeros

Lenguajes => PHP => (POO) Programación Orientada a Objetos => Mensaje iniciado por: Siquillote en 22 de Mayo de 2010, 14:17:45 pm

Título: [AYUDA] ¿Mas abreviado?
Publicado por: Siquillote en 22 de Mayo de 2010, 14:17:45 pm

Hola muy buenas. He decidido lanzarme ya a hacer consultas a la base de datos mediante POO y todo me funciona genial, pero veo que tanto en el
conectar.php y index.php, se consume mucho espacio para sacar 2 tonterias. Por lo que he decidido hacer este tema a ver si me pudieseis ayudar con algun que otro consejo para abreviar el código. Bueno aquí os los dejo :

conectar.php

<?php
class conectar{
var $host;
var $user;
var $pass;
var $conectar;

public function conectamos(){
$coger = new conectar();
$coger -> conectamos();
}}
// Ahora si que conectamos
$coger->host = "";
$coger->user = "";
$coger->pass = "";
$coger->conectar = mysql_connect($coger->host,$coger->user,$coger->pass);
mysql_select_db($coger->user,$coger->conectar);
?>


index.php

<?
include("conectar.php");
class script{
var $query;
var $error;

public function sacar(){
$coger = new script();
$coger->sacar();
}}

$coger->query = mysql_query("SELECT * FROM usuarios");
$coger->error = "No hay resultados";

if(mysql_num_rows($coger->query)==0){
echo $coger->error;

} else {

while($coger->tomar = mysql_fetch_array($coger->query)){
echo $coger->tomar['usuario']." <b>Pass</b>: ".$coger->tomar['pass'];
}
}
?>


¿Algún consejo?.
Título: Re:[AYUDA] ¿Mas abreviado?
Publicado por: naveda en 22 de Mayo de 2010, 14:20:31 pm
Creo, y digo creo porque no me he informado sobre estandares en PHP, que no deberias hacer $objeto->variable y darle valor...

Debes declarar funciones get y set para recibir o modificar valores de las variables en un objeto.

Al menos así es como lo he hecho en C/C++, Java, Delphi y la mayoria de lenguajes con POO
Título: Re:[AYUDA] ¿Mas abreviado?
Publicado por: Siquillote en 22 de Mayo de 2010, 14:23:52 pm
Creo, y digo creo porque no me he informado sobre estandares en PHP, que no deberias hacer $objeto->variable y darle valor...

Debes declarar funciones get y set para recibir o modificar valores de las variables en un objeto.

Al menos así es como lo he hecho en C/C++, Java, Delphi y la mayoria de lenguajes con POO

¿Y por que no? ¿Entonces como hago?. Es que como soy nuevo en esto pues no piloto mucho y no se si se pueden utilizar las "antiguas" variables
como $hola. ¿Se puede?. Perdonar mi ingenuidad :L
Título: Re:[AYUDA] ¿Mas abreviado?
Publicado por: westwest en 22 de Mayo de 2010, 14:27:08 pm
Creo que tienes un cacao mental impresionante :S
Dentro de una clase creas la clase :S

<?php
class conectar{
var $host;
var $user;
var $pass;
private $conectar;

function __construct($host, $user, $pass) {
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
}

public function conectamos(){
$this->conectar = mysql_connect($coger->host,$coger->user,$coger->pass);
mysql_select_db($coger->user,$coger->conectar);
}
}
?>

Ahora tiene un minimo sentido, al menos, y no llamas a la clase dentro de ella misma...

en la otra idem de idem, ni siquiera entiendo lo que hace :S
Título: Re:[AYUDA] ¿Mas abreviado?
Publicado por: SoyJoaquin. en 22 de Mayo de 2010, 14:29:55 pm
Lo que yo haria es no definir tantas variables :S
Lo haría directamente...
y quitarle los saltos de linea...

Si mal no recuerdo... Aquí publicaron un tuto para hacer la carga mas rapida de los archivos php y es remplazando los espacios en blanco por ningun espacio...

Saludos
Título: Re:[AYUDA] ¿Mas abreviado?
Publicado por: Siquillote en 22 de Mayo de 2010, 14:31:19 pm
Creo que tienes un cacao mental impresionante :S
Dentro de una clase creas la clase :S

<?php
class conectar{
var $host;
var $user;
var $pass;
private $conectar;

function __construct($host, $user, $pass) {
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
}

public function conectamos(){
$this->conectar = mysql_connect($coger->host,$coger->user,$coger->pass);
mysql_select_db($coger->user,$coger->conectar);
}
}
?>

Ahora tiene un minimo sentido, al menos, y no llamas a la clase dentro de ella misma...

en la otra idem de idem, ni siquiera entiendo lo que hace :S

Vale, a ver ya lo he entendido, ¿Pero donde declaras los valores de la BD?, es decir, ¿Donde pones los datos?.
Título: Re:[AYUDA] ¿Mas abreviado?
Publicado por: westwest en 22 de Mayo de 2010, 15:28:08 pm
en la funcion __construct, y se me pasó cambiar $coger->loksea por $this->loksea
Título: Re:[AYUDA] ¿Mas abreviado?
Publicado por: Physlet en 22 de Mayo de 2010, 15:35:20 pm
Una cosa, no es mejor colocarle un nombre que inicie con mayúscula en la clase? A mí en teoría de POO me lo comentaron muchas veces xD

Bueno, si no me equivoco, para ponerle valores sería (fuera de la clase):

$obj = new Conectar("aquí el host", "aquí el user", "aquí la pass");