Como no es la primera vez que me lo han preguntado, y tampoco es la primera vez que veo esta duda en un foro, les agrego un ejemplo sobre el tema. ;-)
En sí, la única "complejidad técnica", más que nada asociada a la falta de experiencia en cómo trabaja PHP, es que debemos siempre requerir los fuentes de la clase del objeto en cuestión, y particularidad mediante, antes de iniciar la sesión.
No hace falta serializar los objetos, las sentencias de sesión ya se encargan de todo el trabajo, ante dudas de cómo trabaja, siempre el manual oficial.
Saludos!
Como convertirse en un "Desarrollador PHP Senior" y no morir en el intento... escrito por Enrique Place
Herramientas: compartir / comentar / publicar código de ejemplo via web
Para los que estamos regularmente respondiendo dudas de código y dando ejemplos, herramientas como Pastie son muy útiles gracias a lo "independiente" de la plataforma. Bien podemos enviar el enlace al código, o directamente "embeberlo" en un post:
Y lo bueno es que puedes colorear la sintaxis según el lenguaje que sea, respeta la indentación, etc... muy práctico! ;-)
Y lo bueno es que puedes colorear la sintaxis según el lenguaje que sea, respeta la indentación, etc... muy práctico! ;-)
Ejemplo de composición: Factura y detalle de factura
Este es un ejemplo publicado a partir de la duda de un usuario, y como son preguntas que se hacen reiteradamente, les dejo el ejemplo aquí (cualquier duda la discutimos en los comentarios de este post):
La relación debería ser "composición" (no tiene sentido la existencia de "detalle" sin la relación con factura, por lo tanto es una "relación de vida" entre ambas clases) y el diagrama UML sería el siguiente:
y la traducción a código sería:
Factura.php
FacturaDetalle.php
Forma de uso: index.php
Más información sobre el tema de diagramas y traducción de relaciones
Saludos!
La relación debería ser "composición" (no tiene sentido la existencia de "detalle" sin la relación con factura, por lo tanto es una "relación de vida" entre ambas clases) y el diagrama UML sería el siguiente:
y la traducción a código sería:
Factura.php
Código PHP:
require_once 'FacturaDetalle.php';
class Factura
{
private $_colDetalle = array();
public function addDetalle(FacturaDetalle $detalle)
{
$this->_colDetalle[] = $detalle;
}
}
Código PHP:
class FacturaDetalle
{
/** código de la clase **/
}
Código PHP:
require_once 'Factura.php';
require_once 'FacturaDetalle.php';
abstract Index
{
public static function main()
{
$factura = new Factura();
// Agrego 4 detalles a la factura
$factura->addDetalle(new FacturaDetalle());
$factura->addDetalle(new FacturaDetalle());
$factura->addDetalle(new FacturaDetalle());
$factura->addDetalle(new FacturaDetalle());
}
}
Index::main();
Saludos!
Suscribirse a:
Entradas (Atom)
Entradas populares
-
He visto mucha documentación que habla sobre el tema de los métodos "getter / setter", o traducido al castellano los métodos "...
-
Esto es lo que pasa cuando tienes entornos que no son homogéneos y cada aplicación se encuentra ubicada en distintas márgenes de un "rí...
-
Uno de los problemas que me he encontrado con la versión 5 de PHP es la falta de la representación de los "paquetes" desde el prop...
-
Este es un resumen de conclusiones que se vertieron en una discusión sobre el tema en Foros de Web , donde se plantea la duda de si PHP5 ...
-
Este es un ejemplo publicado a partir de la duda de un usuario , y como son preguntas que se hacen reiteradamente, les dejo el ejemplo aquí ...
-
Esta reflexión se la escribo a todos los "Programadores PHP": Al día de hoy la mayoría de los institutos o universidades de muchos...
-
El Patrón " Singleton " sirve para cuando buscamos restringir la creación de instancias de un objeto, obligando que solo se pueda ...
-
Hace un tiempo que vengo recomendando esta presentación como punto de partida para definir un estándar de desarrollo en una empresa. En ambi...
-
Bueno, luego de revisarlo una y otra vez (y otra vez) ya se encuentra terminada la primer versión del libro que junta toda la experiencia ac...
-
Estoy viendo muy seguido en foros que frecuento regularmente a muchos programadores que quieren dar " el gran salto " y evolucion...