[SOLUCIONADO] Preguntas - varias PHP

Iniciado por quen, Octubre 29, 2012, 09:04:12 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 29, 2012, 09:04:12 PM Ultima modificación: Marzo 27, 2014, 05:43:12 PM por Expermicid
Bueno no sabia como poner de titulo, ya que no se trata de un solo tema.

estuve viendo el proyecto I-blog CMS en POO asi por arriba, esta muy bueno.

Sin embargo veo que hay cosas que todavia me cuestan entender.

Y por otro lado vi codigo extra q podes ahorrar, por ejemplo en un archivo vi que verificas si el metodo de envio es == POST, eso aunque lo saques va a seguir andando bien ya que despues de esa verificacion.. haces otra verificacion que es isset($_POST['enviado']), por lo cual lo anterior lo veo nulo.

Yo empece aprender hace un tiempo Smarty, que es muy parecido al sistema de plantillas que utilizaste en el proyecto.

Me parece bueno smarty, dentro de todo me deja separar el codigo php y html y me facilita la busqueda de algun codigo dentro del proyecto. Que opinas sobre este sistema?

Por otro lado... lo que no entiendo en php es para que usar X cosa, por ejemplo una de ellas... es la funcion reservada __construct , no le veo lo bueno de usarlo.


Por otro lado queria preguntar....

Estoy en duda sobre utilizar un codigo que genere. El tema es el siguiente:

Tengo muchos archivos q generan consultas a la DB (insert, delete, update etc), y estuve pensando que en ves de hacer la consulta en el mismo archivo. Generar otro archivo el cual contenga una clase que genere esas consultas. Represento en codigo:


class.procesardb.php
Código: php

class procesardb{

private $tabla;
private $keys;
private $valores;
private $mostrar;
private $sql;
private $columna;
private $id;
private $where;

// AGREGA DATOS
public function add($tabla,$keys,$valores)
{

mysql_query("insert into $tabla ( $keys ) values($valores) ") or die (mysql_error());

}
}



Solo te muestro el insert into para asi no alargar el post con un choclo de codigo xD. Y el archivo q consulta a la DB seria asi:

class.registro.php
Código: php

// recolecto los datos y los almaceno
$nombre = $_POST['nombre'];
$user = $_POST['usuario'];
$pass = $_POST['password'];
$sexo = $_POST['sexo'];
$email = $_POST['email'];

// inserto el usuario a la DB
$tabla = "usuarios";
$keys = "nombre,usuario,pass,sexo,email,fecha";
$valor = "'$nombre','$user','$pass','$sexo','$email',NOW()";

$procesardb = new procesardb();

$procesardb -> add($tabla,$keys,$valor);


Esto obviamente funciona correcto y perfecto. El problema no es ese. Mi problema es saber si utilizar esto me generara mejor resultado o no conviene. A la hora de consultar conviene usar el codigo que mostre anteriormente o conviene mejor usar mysql_query directamente y hacer la consulta comun?

Saludos y gracias.

si el tema de la verificación es que realmente no me puse a revisar ese tipo de cosas, es que estaba probando cual tenía más consumo y probablemente así lo dejé xD

smarty me parece una porquería en relación al consumo de recursos y su problema con el caché, pero eso no importa, cada uno utiliza lo que mejor le parece.

sobre el __construct es muy sencillo, cuando creas una clase automáticamente llama esa función por lo que puedes pasar valores para guardar al poner el new

por ejemplo

Código: php
$alex = new nombreclase($valores);


lo que hago ahí es mandarle al construct el valor de $valores, también puedes pasar referencia por ejemplo

te evitas entonces una linea que llame a una función para pasar la variable $valores (siempre que vallas con principios de encapsulamiento, de lo contrario directamente guardas el valor en la variable)

esos métodos son mágicos y solo hay que usarlos cuando realmente te parece correcto.

sobre una clase para gestionar la db, no tiene mucho sentido porque estas haciendo una función que llama a la función de sql.

por otra parte si lo quieres usar como clase, puedes usar mysqli, que prácticamente es una clase.

intenta evitar creación de clases, funciones, variables de más, al igual que verificaciones de más, no hagas lo que hice yo de los dos if xD

me alegra que lo hallas publicado así se puede debatir públicamente, con esto propongo que todos publiquen sus dudas, es bueno preguntar, ya me verán a mi preguntando cosas de php jejeje

saludos! Alexander1712

con el tema de smarty, cual te parece q es el mejor sistema de plantillas?. Yo aprendi smarty porq es el mas conocido entre plantillas (creo), sinceramente no me puse a ver las contras, ya que muchos proyectos lo usan...

Sobre el __construct,  entendi lo que hace y etc, pero no le veo mucha utilidad a la hora de usarlo, si bien te podes ahorrar una linea ($alex -> funcion($valores) ), pienso que por ahi esa linea hace que el codigo sea mejor visto y mas entendido no?

Por otro lado, como verificas si estoy consumiendo muchos recursos? y como me doy cuenta si realmente el codigo que genere es mas rapido al codigo anterior (suponiendo que alla un anterior...).

Entonces voy a usar mysql_query directamente sin clase, y me queda pendiente aprender mysqli, que aunque es mas rapido, no hay taaanta diferencia con respecto a mysql, vi estadisticas que el mas lento es PO.

Saludos!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
con el tema de smarty, cual te parece q es el mejor sistema de plantillas?. Yo aprendi smarty porq es el mas conocido entre plantillas (creo), sinceramente no me puse a ver las contras, ya que muchos proyectos lo usan...

Sobre el __construct,  entendi lo que hace y etc, pero no le veo mucha utilidad a la hora de usarlo, si bien te podes ahorrar una linea ($alex -> funcion($valores) ), pienso que por ahi esa linea hace que el codigo sea mejor visto y mas entendido no?

Por otro lado, como verificas si estoy consumiendo muchos recursos? y como me doy cuenta si realmente el codigo que genere es mas rapido al codigo anterior (suponiendo que alla un anterior...).

Entonces voy a usar mysql_query directamente sin clase, y me queda pendiente aprender mysqli, que aunque es mas rapido, no hay taaanta diferencia con respecto a mysql, vi estadisticas que el mas lento es PO.

Saludos!

yo usé smarty y lo cambié por RainTPL (el que uso en mi script, y me rindió bastante bien)

__construct es bien visto, pero más bien es bastante útil, cuando empiezas a usar bastante poo, te das cuenta de que es útil, puedes pasarle variables a la clase o setear configuraciones si usas la misma clase para más de una instancia, también puedes pasar otra instancia a la instancia que estás creando.

lo podrías hacer en otra función pero no tiene sentido gastar lineas de code por eso cuando lo puedes hacer con el construct, de todos modos quizá otras personas más experimentadas o que sepan más, te podrán dar otro punto de vista (por eso quería que lo publiques)

la verificación la puedes hacer con algunas funciones que calculen el consumo del script y le haces cambios para ver que funciona mejor.

Código: php
 vi estadisticas que el mas lento es PO.


no entendí bien eso pero si te refieres a que es más lento POO que estructurada, si, eso es verdad, consume más memoria y es más lento, pero un código en poo es mucho más ordenado y fácil de manipular.

saludos!

Quise poner PDO, me falto la D  jaja.

No recuerdo donde lei, pero vi que en consumo iva en este orden: MySQLi, MySQL, PDO.

Sin embargo, recomiendan utilizar mysqli en los casos q quieras interactuar con mysql, y  PDO para utilizar otras DB como SQLite y etc.

Con respecto a __construct por ahora no pude incluirlo en ningun proyecto, sin embargo uso mucho las clases(class.registro.php, class.login.php, class.comentarios.php, etc.)

Mi idea es armar tipo un framework mio, el cual esas clases las pueda usar en cualquier proyecto web q quiera hacer, esta a un 80% las clases, me falta retocarlas y mejorarlas un poco, pero funcionan de 10. Que pensas sobre esto??? esta bien este tipo de "framework"?

Saludos!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Quise poner PDO, me falto la D  jaja.

No recuerdo donde lei, pero vi que en consumo iva en este orden: MySQLi, MySQL, PDO.

Sin embargo, recomiendan utilizar mysqli en los casos q quieras interactuar con mysql, y  PDO para utilizar otras DB como SQLite y etc.

Con respecto a __construct por ahora no pude incluirlo en ningun proyecto, sin embargo uso mucho las clases(class.registro.php, class.login.php, class.comentarios.php, etc.)

Mi idea es armar tipo un framework mio, el cual esas clases las pueda usar en cualquier proyecto web q quiera hacer, esta a un 80% las clases, me falta retocarlas y mejorarlas un poco, pero funcionan de 10. Que pensas sobre esto??? esta bien este tipo de "framework"?

Saludos!

La verdad de PDO no puedo opinar, no me corresponde al no tener experiencia en ello.

Lo que si, es que también tengo entendido lo de usar PDO en sqlite y demaces y Mysqli en mysql

Bueno, si no sabes donde usar algo, entonces es mejor no usarlo, eso es preferible antes que ponerlo en un lugar donde realmente no tenga sentido.

sobre tu framework, mira, yo probé algunos frameworks y en realidad no me convencieron en lo personal, conozco grandes proyectos que usan frameworks, pero me parece un derroche de recursos innecesarios, yo decidí hacerme un miniframework con las cosas que yo uso habitualmente para no tener que programar todo desde 0, no al nivel de clases de registro enteras, pero si a nivel gestión de db, plantillas y etc. todo programado ya, para no hacerlo de nuevo.

teniendo en cuenta la definición de framework o marco de trabajo, no es una mala idea hacerte una base y usarla, no hace falta tantas formalidades y demás.

recalco que es solo mi opinión, lo más probable es que pueda estar equivocado, u otras personas opinen diferente.

me gustaría oír más opiniones.

saludos!

En realidad, programar con POO es "un derroche de memoria", recordar que cada instancia de un objeto contiene los metodos y atributos que contiene la clase. Y cuando programas en POO uno tiende a hacer metodos para TODO.

Ahora, la ventaja sobre POO son muchas. El codigo es mas ordenado, permite el entendimiento mucha mas rapido, puedes representar facilmente un sistema hecho en POO, y algo muy importante. Si trabajas en grupo lo mejor es que utilizes POO, codigo mas ordenado, puedes representar graficamente el funcionamiento del sistema mas facil y muchisimas ventajas.

Puedes crear un sistema modular facilmente, si el proyecto esta bien elaborado sera muy facil arreglar o editar funcionalidades y agregar mas funcionalidades.
No me imagino un proyecto en un solo archivo jejeje utilizando programacion estructurada, aunque te aseguro que ese proyecto en un solo archivo sera mucho mas rapido que cualquier otro. Y luego cuando alguien se integre al grupo, no me imagino como le haria.

En lo personal, si la aplicacion se ejecutara del lado del servidor lo mejor es crear un proyecto bien elaborado y perder un poco de rendimiento.

Sobre lo de framework, pasa lo mismo. Yo utilizo en mis proyectos aunque sean pequenios, utilizo un Framework. Y se me facilita trabajar con mas personas ya que puedo dividir el proyecto en modulos. Otra cosa, eso de la formalidades se llama Convenciones y la verdad la veo muy bien, obliga al programador a tomar un estilo especifico, y si te unes a un proyectos y utilizan un framework que conoces, sabras que no te encontraras con nada raro. Incluso utilizar Convenciones es mucho mejor porque se sigue un estandar y por lo tanto en el caso del Framework eso equivale a mas rendimiento.

Se han fijado como uno trabaja con el JDK/SDK de Android, iOS, blackberry, Window Phone, muchos otros proyectos. Que es lo que parece???

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En realidad, programar con POO es "un derroche de memoria", recordar que cada instancia de un objeto contiene los metodos y atributos que contiene la clase. Y cuando programas en POO uno tiende a hacer metodos para TODO.

Ahora, la ventaja sobre POO son muchas. El codigo es mas ordenado, permite el entendimiento mucha mas rapido, puedes representar facilmente un sistema hecho en POO, y algo muy importante. Si trabajas en grupo lo mejor es que utilizes POO, codigo mas ordenado, puedes representar graficamente el funcionamiento del sistema mas facil y muchisimas ventajas.

Puedes crear un sistema modular facilmente, si el proyecto esta bien elaborado sera muy facil arreglar o editar funcionalidades y agregar mas funcionalidades.
No me imagino un proyecto en un solo archivo jejeje utilizando programacion estructurada, aunque te aseguro que ese proyecto en un solo archivo sera mucho mas rapido que cualquier otro. Y luego cuando alguien se integre al grupo, no me imagino como le haria.

En lo personal, si la aplicacion se ejecutara del lado del servidor lo mejor es crear un proyecto bien elaborado y perder un poco de rendimiento.

Sobre lo de framework, pasa lo mismo. Yo utilizo en mis proyectos aunque sean pequenios, utilizo un Framework. Y se me facilita trabajar con mas personas ya que puedo dividir el proyecto en modulos. Otra cosa, eso de la formalidades se llama Convenciones y la verdad la veo muy bien, obliga al programador a tomar un estilo especifico, y si te unes a un proyectos y utilizan un framework que conoces, sabras que no te encontraras con nada raro. Incluso utilizar Convenciones es mucho mejor porque se sigue un estandar y por lo tanto en el caso del Framework eso equivale a mas rendimiento.

Se han fijado como uno trabaja con el JDK/SDK de Android, iOS, blackberry, Window Phone, muchos otros proyectos. Que es lo que parece???

Saludos.

es realmente un gusto ver respuestas tuyas, hacen ver mejor la sección, y siempre está bueno ver los comentarios de gente con más experiencia y que tiene mucho conocimiento.

CitarSobre lo de framework, pasa lo mismo. Yo utilizo en mis proyectos aunque sean pequenios, utilizo un Framework. Y se me facilita trabajar con mas personas ya que puedo dividir el proyecto en modulos. Otra cosa, eso de la formalidades se llama Convenciones y la verdad la veo muy bien, obliga al programador a tomar un estilo especifico, y si te unes a un proyectos y utilizan un framework que conoces, sabras que no te encontraras con nada raro. Incluso utilizar Convenciones es mucho mejor porque se sigue un estandar y por lo tanto en el caso del Framework eso equivale a mas rendimiento.

coincido en todo menos en lo del framework, como decía, me parece un derroche de recursos excesivos un framework, si bien es cierto lo que dices y dije yo de que usar poo consume más, una cosa es ese consumo y otra un framework que ocupa espacio innecesariamente.

sobre las formalidades, si está bien cuando trabajas en un proyecto opensource, pero si te dedicas un proyecto para ti mismo, aveces es mejor usar cosas que uno entiende completamente y realizó uno mismo que un framework que realmente tiende a que los users nuevos simplemente usen las cosas de un modo porque funcionan.

yo creo que si uno tiene bien en claro como manejar su código un framework es innecesario, porque uno mismo crea su estilo de programación, de todos modos insisto en que cada uno tiene su enfoque.

Saludos!