Articles of oop

Pasando un objeto por referencia const?

En C ++, cuando desea que una función pueda leer desde un objeto, pero no modificarlo, pasa una referencia const a la función. ¿Cuál es la forma equivalente de hacer esto en php? Sé que los objetos en php5 se pasan por referencia de manera predeterminada, pero para que sea legible, creo que continuaré usando […]

Explicación de estructuras reutilizables en OO PHP

¿Puede alguien explicar las “estructuras reutilizables” para mí? Estaba trabajando en hacer algunos objetos db en php, pero me dijeron que estaba usando demasiado procesamiento de la computadora porque hice cosas complicadas con los objetos a continuación: Mis objetos DB: $db = new Database; $db->db_connect(); $post_content = new DbSelect; $post_content->select(‘id’, ‘title’, ‘firstName’, ‘created’, ‘catName’, ‘tagName’); […]

Clase no encontrada PHP OOP

No puedo hacer que esto funcione. getPar(“price”); ?> Y este es el archivo inc / classes / queries.class.php. query(” $type * FROM $table WHERE $par LIKE “); while ($row = $result->fetch_assoc()) { return ” $row[$par] “; } } } ?> Devuelve “Consultas de clase” no encontradas “. ¿Qué pasa con eso? EDITAR: Error fatal: no […]

Determinar scope de llamada en PHP

¿Hay alguna forma de determinar el scope en el que se llama a una función desde el interior de la función? (O método; usaré la función para significar en el rest de la publicación). Lo que no quiero es tener que pasar constantes __FILE__ o __CLASS__ en la función. Esta información está disponible en rastros […]

Mantenimiento de variantes de una aplicación

Tenemos un producto que está siendo ligeramente personalizado para cada cliente. La personalización exacta es impredecible: suponemos que cualquier punto del código puede necesitar cambios. Sin embargo, queremos mantener una base de código, ya que el 90% del código será idéntico, por lo que no es necesario fusionar cada actualización o característica nueva para cada […]

La mejor práctica para variables globales en un objeto – php

Tengo una pregunta sobre las mejores prácticas para PHP OOP, que relaciona el uso de variables globales en métodos. Sé que lo que estoy haciendo es incorrecto, pero no estoy seguro de qué otra cosa se debe hacer. Estamos utilizando esta clase de base de datos: https://github.com/joshcam/PHP-MySQLi-Database-Class/blob/master/MysqliDb.php Creamos el objeto en un archivo config.php que […]

Cuándo usar PHP stdClass

El siguiente código proviene de la biblioteca recaptcha de Google. En lugar de usar stdClass, usaron una clase separada. Entiendo por qué esto sería útil si fueran propiedades de configuración previa (ya sea para un valor determinado o incluso NULO), pero no veo por qué lo hicieron en este caso. ¿Hay algún valor para hacerlo […]

¿La clase base no tiene permiso para acceder a un miembro privado?

Podría haber jurado que en OOP estándar, puede acceder a los miembros privados de la clase concreta desde un método en la clase base. ¿PHP simplemente implementa esto de manera diferente, o estoy haciendo algo mal, o mi comprensión fue completamente incorrecta? name; } } class Concrete extends Base { private $name; public function __construct($name) […]

¿Es la deserialización realmente insegura para todos los sistemas?

De acuerdo con la documentación , no es seguro utilizar unserialize con una entrada que no es de confianza. Como prueba, escribí: <?php global $secret; $secret = 'SuperSecret'; class Thing { public static function __wakeup() { var_dump($GLOBALS); } public function __unserialize() { return 'okay'; } } if (isset($_GET['s'])) { echo 'serializing='; echo serialize(new Thing() ); […]

¿Cómo almacenar datos basados ​​en objetos en una base de datos para que siga siendo consultable?

Estoy construyendo un framework PHP desde cero (desafortunadamente no tengo otra opción en este asunto). Se requiere que el marco se base en gran medida en datos orientados a objetos y, por lo tanto, debe tener la capacidad de almacenar grandes cantidades de datos orientados a objetos de manera eficiente. Estoy luchando con la segunda […]