with strip_tags remove quitar para funcion etiquetas ejemplo php oop performance procedural

remove - strip_tags php ejemplo



¿Vale la pena usar OOP en PHP? (9)

En mi humilde opinión, los desarrolladores de PHP no deberían tratar de ir en una sola dirección. (Procesal frente a objeto) En algunos casos, todo lo que necesita son algunas funciones globales, otras veces es más beneficioso utilizar objetos. No intente forzar todo de una manera u otra, sea flexible y use lo que funcione mejor para cada situación.

Hay muchos debates sobre si la programación orientada a objetos es buena o no. Pero, el uso de OOP en PHP es más lento. ¿Sería un buen intercambio utilizar programación de procedimientos y una velocidad más rápida y OOP con una velocidad más lenta (ya que las clases deben iniciarse cada vez que se carga una página y los sitios web grandes comienzan a ser más lentos).

Más importante aún, sería bueno envolver cosas dentro de una clase y usar funciones estáticas o sería mejor tener muchas funciones mentirosas con un prefijo ex: wp_function ().


Estoy totalmente en desacuerdo con la respuesta de Chacha102.

Una respuesta adecuada a esta pregunta llenaría varios libros, no importa una publicación de 20 líneas aquí.

Ambos enfoques tienen sus beneficios y desventajas. Recomendaría a cualquiera que quiera considerarse un buen programador para tener una experiencia significativa en programación procesal, no procesal y orientada a objetos. Además de experiencia con diferentes metodologías como SCRUM, cascada y RAD.

Con respecto a la idoneidad de los PHP para la codificación OO frente a la de los procedimientos, ciertamente las raíces del lenguaje se encuentran en este último (pero tenga en cuenta que tanto Java como ASP son híbridos en lugar de lenguajes OO verdaderos).

Por lo general, tiendo a escribir código de procedimiento cuando necesito producir algo que sea muy simple o que deba tener su comportamiento para ser definido y predecible. Sin embargo, al escribir código complejo en el que el comportamiento varía mucho en el tiempo de ejecución, creo que OO es mucho más eficiente en términos de tiempo de desarrollo, a pesar de que el diseño se basa en un conjunto finito de casos de uso.

Para argumentar que siempre debe escribir código de procedimiento porque se ejecutará más rápido que el código OO:

1) no es necesariamente cierto 2) ignora por completo el costo relativo del tiempo del desarrollador frente a los costos de hardware

¿Sería bueno envolver cosas dentro de una clase y usar funciones estáticas?

Dado que los espacios de nombres ahora están disponibles en PHP, esta es una manera realmente complicada de evitar las colisiones de espacios de nombres y no es algo que yo recomendaría.

DO.


Los mismos argumentos sobre el rendimiento se hicieron sobre Objective C y C ++ en el pasado. Y la respuesta a ese problema fue aprovechar la memoria disponible y la capacidad de procesamiento que cada vez es más grande, mejor y más rápida.

Sí, OO requiere más recursos para ejecutarse. Pero los beneficios de usar OO superan el costo del hardware $$ (que probablemente sea insignificante) de soportar aplicaciones OO.

Sin embargo, es bueno preocuparse por el rendimiento del software. Sin embargo, mirar bajo el capó del procedimiento contra Oo como un lugar para comenzar es un poco equivocado. Para empezar, debe centrarse en escribir código eficiente, ya sea de procedimiento u OO (y ambos son relevantes).

Tenga en cuenta que a pesar de que PHP puede no ser la plataforma más rápida que existe (Java, por ejemplo, se aprovecha), PHP se utiliza para alimentar algunos de los sitios web con mayor tráfico de Internet: Facebook.

Si tiene alguna otra duda sobre PHP y OO, solo mire a Zend y Magento (basado en Zend). Magento es una plataforma MUY intensiva en recursos, el uso de memoria puede ser de más de 36 MB por instancia. Sin embargo, la plataforma en sí es capaz de manejar millones de visitas. Esto se debe a que un entorno de servidor correctamente configurado con una buena porción de recursos de hardware hace que todos los beneficios de usar OO superen con creces el costo del servidor en sí. Pero en un mundo de computadoras agrupadas, NO usar la capacidad de procesamiento y la memoria (responsable) disponibles para usted es IMHO, la locura clínica.



Realmente no hay una respuesta perfecta, ya que depende de tantas variables desconocidas, y entonces no tiene que ser todo o nada.

Por ejemplo, si divide su aplicación en el modelo MVC, puede hacer que su Modelo sea OO pero mantener el Controlador de manera más simplista.

Podría usar las clases como un medio para simplemente agrupar funciones estáticas comunes, o podría llevarlo mucho más lejos en el patrón de registro activo.

Si está creando un pequeño formulario web de una sola página que dispara un POST en un correo electrónico, realmente no necesita OO, es posible que no incluya una clase de correo existente para aprovechar.

Nadie puede darte consejos adecuados sin entender el proyecto que estás asumiendo.

Dicho esto, si su única preocupación es la velocidad, OO será un poco más lento. Y hay muchas cosas astutas que puedes hacer incluso en PHP de procedimientos para imitar algunas de las ganancias de OO. Pero a menos que esté asumiendo un gran proyecto, la sobrecarga agregada nunca será mucho. Y para cuando tenga un gran proyecto, las ventajas de OO podrían superar los inconvenientes de su sobrecarga.


Sí, a medida que su aplicación crezca ... (y lo hará) le ahorrará muchas horas de frustración. Y repitiéndose (copiando el código de pegado por todas partes) .. :)


Sí, casi siempre es una buena idea usar OOP. Esto se debe a que la POO es un estilo de codificación, y los estilos de codificación en su mayor parte se pueden transferir fácilmente a otros idiomas.

Las personas no usan estilos de codificación porque usan un determinado lenguaje. Las personas usan estilos de codificación porque el estilo de codificación ofrece buenos métodos para hacer las cosas que creen que son deseables. Por lo tanto, siempre que los elementos básicos estén presentes (herencia, propiedades de clase, etc.), siempre será viable escribir en ese estilo de codificación.

No, usar funciones de procedimiento para acceder a ellas probablemente no sea una buena idea. Esto se debe a que, probablemente, tendrá que hacer algo como esto para mantener el estado.

function myFunc() { global $class; $class->doMethod(); } function myFunc2() { global $class; $class->doMethod2(); }

Esta es una mala idea ya que crea una tonelada de estado global.


Si la razón por la que te preocupa usar OO con PHP es la velocidad, no temas: PHP es un lenguaje lento para todos. Si está haciendo algo que es lo suficientemente intensivo en el procesador para la pérdida de velocidad por el uso de objetos importantes, no debería usar PHP en absoluto.

Con respecto a las funciones estáticas, esta es una elección de diseño, pero me equivoco al evitar clases compuestas completamente de funciones estáticas. Realmente no hay ninguna ventaja sobre los prefijos, y usar una construcción simplemente porque no es una buena idea.


Yo mismo sentía curiosidad por esto. Desafortunadamente, después de cambiar mi código de procedimiento a oop, ejecuté algunos puntos de referencia y no de antemano.

Aquí está el código de referencia.

class game{ function maxp($val){ return max(0,pow($val,0.5)); } } $game = new game; for($i=0;$i<100000;$i++){ $game->maxp(100); //game::maxp(100); }

Los resultados de la POO oscilaron entre 0,13 y 0,2 segundos;

Los resultados del procedimiento oscilaron entre 0,08 y 0,1 segundos.

Los resultados se mantuvieron consistentes durante un buen tiempo.

Te animo a que hagas tus propias pruebas.

php 5.4.3