Foros del Web » Programando para Internet » PHP »

optimizacion de las funciones y el manejo de archivos php

Estas en el tema de optimizacion de las funciones y el manejo de archivos php en el foro de PHP en Foros del Web. Hola amigos vengo con una consulta. estoy comenzando en php y todavía no llego a eso de estructurar mis archivos php como programación orientada a ...
  #1 (permalink)  
Antiguo 22/02/2014, 02:35
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Información optimizacion de las funciones y el manejo de archivos php

Hola amigos vengo con una consulta.

estoy comenzando en php y todavía no llego a eso de estructurar mis archivos php como programación orientada a objetos.

pero estoy tratando de organizarlos de la siguiente manera.

en ves de tener un archivo para cada funcion diferente, me preguntaba si en lugar de eso se puede hacer un solo archivo llamado funciones.php en el cual incluir todos las funciones... esto para evitar tener archivos regados y el nucleo logico asignarlo a un solo archivo...
esto esta bien o cual seria la mejor practica para realisar este tipo de trabajos... cual son sus opiniones y si tienen ejemplo de como lo hacen mejor...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #2 (permalink)  
Antiguo 22/02/2014, 08:58
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: optimizacion de las funciones y el manejo de archivos php

Si realmente te interesa programar orientado a objetos, entonces lee sobre patrones de diseño; muchos programadores prefieren MVC.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 22/02/2014, 09:13
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: optimizacion de las funciones y el manejo de archivos php

hacer un archivo por función es una tontería.

estas bien en lo que piensas hacer.
es mas cómodo trabajar con un archivo que contenga toda la biblioteca de funciones
  #4 (permalink)  
Antiguo 22/02/2014, 10:55
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: optimizacion de las funciones y el manejo de archivos php

yo entiendo el MVC que es en tres capas...

pero me lia mucho con los al momento de hacer la parte de controlador ...

por que hacer funciones y llamarla es facil, el problema o lo complicada es controlarlas y saber como implementar cada una sin que el script se me vuelva un espagueti....
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #5 (permalink)  
Antiguo 22/02/2014, 10:56
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: optimizacion de las funciones y el manejo de archivos php

cuando tenga mi archivo funciones.php completado entonces se los mostrare para ver que opinas y si tienen alguna ideas lo subiré como aporte y alternativa a MVC...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #6 (permalink)  
Antiguo 22/02/2014, 11:45
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: optimizacion de las funciones y el manejo de archivos php

Pon aquí algún código espaguetti que mencionas y quizás te aportemos buenas prácticas que sintetizen tus controladores.
Este paradigma fue precisamente ideado con la premisa de separar correctamente las diferentes lógicas asociadas a cada componente. Si tus controladores acaban en plato de espaguettis seguramente algo estés haciendo mal.
Un buen diseño de OOP generalmente no pasa de máximo 2-3 líneas por método.
  #7 (permalink)  
Antiguo 22/02/2014, 13:30
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: optimizacion de las funciones y el manejo de archivos php

Cita:
Iniciado por lolainas Ver Mensaje
un buen diseño de oop generalmente no pasa de máximo 2-3 líneas por método.
jajajajajajaja en que mundo?
  #8 (permalink)  
Antiguo 22/02/2014, 14:46
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: optimizacion de las funciones y el manejo de archivos php

Perdonen señores enlinea777 tiene razón he debido equivocarme.
  #9 (permalink)  
Antiguo 22/02/2014, 15:21
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: optimizacion de las funciones y el manejo de archivos php

Un ejemplo muy básico de lo que pretendes hacer sería como esto:

funciones.php
Código PHP:
Ver original
  1. class funciones{
  2.     public function cuadrado($numero){
  3.         return pow($numero, 2);
  4.     }
  5.  
  6.     public function raiz($numero){
  7.         return sqrt($numero);
  8.     }
  9. }

index.php
Código PHP:
Ver original
  1. include_once "funciones.php";
  2. $funciones = new funciones();
  3. $numero = 4;
  4.  
  5. echo 'El cuadrado de ' . $numero . ' es ' . $funciones->cuadrado($numero) . "\n";
  6. echo 'La raíz de ' . $numero . ' es ' . $funciones->raiz($numero);

El ejemplo es muy básico, pero el fin de utilizar clases y sus métodos es el de reutilizarlos y no repetir las misma líneas de código en cada archivo en el que necesitemos echar mano de dichos métodos. Te sugiero leer también sobre el ámbito de las funciones, pues no necesariamente van a ser públicas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 22/02/2014, 15:56
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: optimizacion de las funciones y el manejo de archivos php

bueno yo lo tendría de una forma diferente:

funciones.php

Código PHP:
Ver original
  1. function cuadrado($numero){
  2.         return pow($numero, 2);
  3.     }
  4.  
  5. function raiz($numero){
  6.         return sqrt($numero);
  7.     }

index.php

Código PHP:
Ver original
  1. include(funciones.php);
  2. $numero = 4;
  3.  
  4. echo 'El cuadrado de ' . $numero . ' es ' . cuadrado($numero) . "\n";
  5. echo 'La raíz de ' . $numero . ' es ' . raiz($numero);

este es el método que utilizo yo para llamar funciones ... y meterlas en un solo archivo... comparándolas que me puede decir de ellas dos???
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #11 (permalink)  
Antiguo 22/02/2014, 15:58
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: optimizacion de las funciones y el manejo de archivos php

En esencia, esas funciones hacen lo mismo que los métodos que expuse, pero no es una clase, lo que te mostré sí lo es. En la clase puedes usar un constructor, enviarle el valor desde index.php y solamente llamarías a los métodos.

funcions.php
Código PHP:
Ver original
  1. class funciones{
  2.     public $valor;
  3.  
  4.     public function __construct($numero){
  5.         $this->valor = $numero;
  6.     }
  7.  
  8.     public function cuadrado(){
  9.         return pow($this->valor, 2);
  10.     }
  11.  
  12.     public function raiz(){
  13.         return sqrt($this->valor);
  14.     }
  15. }

index.php

Código PHP:
Ver original
  1. include_once "funciones.php";
  2. $numero = 4;
  3. $funciones = new funciones($numero);
  4.  
  5. echo 'El cuadrado de ' . $numero . ' es ' . $funciones->cuadrado() . "\n";
  6. echo 'La raíz de ' . $numero . ' es ' . $funciones->raiz();
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 22/02/2014 a las 16:04
  #12 (permalink)  
Antiguo 22/02/2014, 16:06
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: optimizacion de las funciones y el manejo de archivos php

arcanisgk122 creo que estás en el camino correcto a lo que quieres, una simple biblioteca de funciones, escribir una clase para eso me parece desvirtuado, una clase se escribe cuando se requiere representar un objeto de la vida real, no sé a que representa en este caso una clase funciones
  #13 (permalink)  
Antiguo 22/02/2014, 16:08
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: optimizacion de las funciones y el manejo de archivos php

Un ejemplo muy fácil donde se requiere representar un objeto de la vida real y por lo tanto es útil escribir código orientado a objetos:

Código PHP:
Ver original
  1. class Database {
  2.     function __construct($user, $password, ...) {...}
  3.     function select() {...}
  4.     function insert() {...}
  5.     ...
  6. }
  #14 (permalink)  
Antiguo 22/02/2014, 16:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: optimizacion de las funciones y el manejo de archivos php

Cita:
Iniciado por lolainas Ver Mensaje
arcanisgk122 creo que estás en el camino correcto a lo que quieres, una simple biblioteca de funciones, escribir una clase para eso me parece desvirtuado, una clase se escribe cuando se requiere representar un objeto de la vida real, no sé a que representa en este caso una clase funciones
Tendrías que ver los últimos hilos que publicó para que entiendas el porqué de su deseo de saber sobre clases.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #15 (permalink)  
Antiguo 22/02/2014, 16:13
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: optimizacion de las funciones y el manejo de archivos php

Ahora que has modificado el ejemplo creo que le será de mayor provecho y se dará cuenta de las ventajas que conlleva.
arcanisgk122 eso se llama encapsulamiento.
  #16 (permalink)  
Antiguo 22/02/2014, 16:39
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: optimizacion de las funciones y el manejo de archivos php

También es posible trabajar con clases sin necesidad de instanciarlas, por ejemplo, cuando no hay necesidad de enviarle valores para procesar. Un pequeño ejemplo para mostrar la fecha de hoy.

funciones.php
Código PHP:
Ver original
  1. class formato{
  2.     public static $meses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];
  3.     public static $dias = ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"];
  4.     public static function laFecha(){
  5.         date_default_timezone_set("America/Lima"); //Establezco la zona horaria
  6.         return self::$dias[date("w")] . ", " . date("d") . " de " . self::$meses[date("n") - 1] . " del " . date("Y");
  7.     }
  8. }

index.php
Código PHP:
Ver original
  1. include_once "funciones.php";
  2. echo "Hoy es " . formato::laFecha();

Esto imprimirá lo siguiente:
Código HTML:
Ver original
  1. Hoy es Sábado, 22 de Febrero del 2014

Una las diferencias que hay con el ejemplo anterior, consiste en que ahora uso self:: en lugar de $this->, además de que las variables y el método son estáticos (en eso radica el cambio) y ya no necesito instanciar al método para utilizarlo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #17 (permalink)  
Antiguo 22/02/2014, 17:08
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: optimizacion de las funciones y el manejo de archivos php

esto es lo que me enrreda:

uso de self::
uso de $this->Conexion, ETC...

cuando veo una clase y veo 3,4,5 de estas -> me va dando dolor de cabesa...
yo me quedo con los if(){}else{}
for(){}, while{}, do{} while, hago cosas simples...

si tengo que manejas base de datos hago 4 funciones:

1 de ejecutar
1 de buscar
1 de arreglar
1 de hacer update o alguna que otra cosa

y a la hora que llamarlas le paso el resultado de la conecion de una variable estilo $DBlink,la sentencia SQL por string dentro de una variable $sql="SELEC * FROM user WHERE username='$suername'"; y listo me ahoro la chorrada de codigo y saltos de linea que hay en una archivo de tipo clase... los ordenos en orden mis funciones en orden de prioridad, con funciones y mensajes bastantes genericos para implementarlos en cualquier proyecto... como les dije cuando tenga mi archivos funciones.php se los dejo de aporte como biblioteca de funciones basicas...
imaginate que cuando tengo que hacer un login por ejemplo hago eso:

login():
<form>
Contenido
<submit>
</form

sabes cuanto me ahorra eso en desarrollo... a que tenga que estar llamando clases y cualquier otra cantidad de archivos que para mi como les decia se me vuelven un espaqueti...

otra cosa yo vendo de programas en pluss c++ y la verdad para mi un objeto era una matriz que se le aplicaba un carácter propio...
como un cubo de rubic...

mis post en este foro son DUDAS o alguna situacion puntual o logica que ya se escape del conocimiento que tengo... pero si bueno les gusta usuar POO orientado a manejo de clases bueno ya es diferente... me quedo con las instrucciones basica creo que cojen menos memoria...

pensandolo bien siento que las personas que dicen que el manejo de clases es POO .. Viene de programar en java...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #18 (permalink)  
Antiguo 22/02/2014, 17:23
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: optimizacion de las funciones y el manejo de archivos php

Si vienes de C++ me extraña que no sepas manejarte entre objetos...

No reinventemos la rueda:
Código PHP:
Ver original
  1. setlocale(LC_ALL, 'esp');
  2. echo strftime('Hoy es %A, %d de %B de %Y');

NOTA: al hacer el funcionamiento de la clase estático solo te valdrá para América/Lima, aunque sea encapsularía la zona... por no hablar del formato
  #19 (permalink)  
Antiguo 22/02/2014, 17:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: optimizacion de las funciones y el manejo de archivos php

Claro, esa forma es la que sugiere el manual y es lo más adecuado, pero lo mío fue solamente un ejemplo para que nuestro amigo arcanisgk122 entienda mejor el manejo de las clases, no para que use exactamente las mismas líneas de código.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #20 (permalink)  
Antiguo 22/02/2014, 18:30
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: optimizacion de las funciones y el manejo de archivos php

Al principio las clases eran enredadas para mi hasta que encontre un tutorial que me enseño correctamente.

yo te recomendaría http://www.phpya.com.ar/ http://www.phpya.com.ar/poo/
  #21 (permalink)  
Antiguo 23/02/2014, 21:28
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: optimizacion de las funciones y el manejo de archivos php

gracias a todos por sus comentarios y sus ideas, como todo en el mundo de la tecnología seguiré estudiando. y tratare de mantenerme actualizado... si tienes alguna ideas pueden seguir comentándolas.
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #22 (permalink)  
Antiguo 23/02/2014, 21:42
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: optimizacion de las funciones y el manejo de archivos php

Tal vez la idea de crear un archivo con funciones comunes sea buena, en todo caso, creo que sería mejor crear "helpers", es decir, un script con todas las funciones relativas a formularios, otro para cadenas, otro para fechas, etc.

Esto te ayuda a tener todo mejor organizado y, ya viéndolo así, también pueden ser clases; aunque la codificación de las mismas puede ser más complicada que simples funciones, podría representar menos tiempo al crear tus otras clases.
__________________
- León, Guanajuato
- GV-Foto
  #23 (permalink)  
Antiguo 23/02/2014, 23:36
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: optimizacion de las funciones y el manejo de archivos php

existe algun pack como jquery que tenga las funciones de php principales, que solo sea de llamarlas, pero no me refiero a un framwork en si ya que este seria mas complejo.?
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #24 (permalink)  
Antiguo 24/02/2014, 00:37
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: optimizacion de las funciones y el manejo de archivos php

Las "funciones principales" de PHP, ya están en PHP y no me imagino cómo sería utilizar una (o más) librería(s) creada(s) por otro(s) usuario(s) para diferentes propósitos y que no necesariamente todas las funciones incluidas sean útiles para ti.
__________________
- León, Guanajuato
- GV-Foto
  #25 (permalink)  
Antiguo 24/02/2014, 07:58
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: optimizacion de las funciones y el manejo de archivos php

Cita:
Iniciado por arcanisgk122 Ver Mensaje
existe algun pack como jquery que tenga las funciones de php principales, que solo sea de llamarlas, pero no me refiero a un framwork en si ya que este seria mas complejo.?
creo que si deben de existir por alli unas cuantas de esas pero llevan el nombre de CLASES
y si ayudan mucho a desarrollar de manera rapida dependiendo de lo que quieras hacer.
por ejemplo para trabajar con imagenes existen muchas que te ahorran el trabajo de escribir todo el codigo, para hacer PDF's existe una llamada fpdf que es muy buena.

php ya por si solo es un lenguaje optimizado solo tienes que aprender a usarlo adecuadamente.

NOTA: jquery es una CLASE escrita en javascript (solo que es un lenguaje facil de aprender).

Saludos

Etiquetas: funciones, manejo
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 13:13.