Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: d91 en 4 Octubre 2016, 17:47 pm



Título: Ayuda con patron singleton en php y array de objetos
Publicado por: d91 en 4 Octubre 2016, 17:47 pm
Hola a todos, estoy tratando de crear un arreglo de objectos a partir de una clase, pero este arreglo debe ser unico, debo agregar y quitar filas, pero no se como instanciar un arreglo unico de dicha clase
apenas e iniciado y ya me frize aqui:
El arreglo debe contener filas de este objeto:
Código
  1. <?php
  2. class DetalleCompra{
  3. private $_idCompra;
  4. private $_idProducto;
  5. private $_costo;
  6. private $_cantidad;
  7. private $_idKardex;
  8. private $_descripcion;
  9.  
  10. public function __construct($idCompra, $idProducto, $costo, $cantidad, $idKardex, $descripcion)
  11. {
  12. this->_idCompra = $idCompra;
  13. this->_idProducto = $idProducto;
  14. this->_costo = $costo;
  15. this->_cantidad = $cantidad;
  16. this->_idKardex = $idKardex;
  17. this->_descripcion = $descripcion;
  18. }
  19.  
  20. public function getIdCompra(){return this->_idCompra;}
  21. public function getIdProducto(){return this->_idProducto;}
  22. public function getCosto(){return this->_costo;}
  23. public function getCantidad(){return this->_cantidad;}
  24. public function getIdKardex(){return this->_idKardex;}
  25. public function getDescripcion(){return this->_descripcion;}
  26. }
  27. ?>
  28.  
y la clase estatica me la imagino algo asi:
Código
  1. <?php
  2. class Canasta
  3. {
  4. private static Canasta $_instance[] = null;
  5.  
  6. public static function Instance()
  7. {
  8. if($_instance == null)
  9. {
  10. _instance = new array(); //aqui deberia de instanciar la clase DetalleCompra
  11. return this->_instance;
  12. }else
  13. {
  14. return this->_instance;
  15. }
  16. }
  17. }
  18. ?>
  19.  
Encontre un ejemplo en java pero como el lenguaje no es igual solo me sirve de guia:
Código
  1. public class DocumentacionEnBlanco extends Documentacion{
  2.    private static DocumentacionEnBlanco _instance = null;
  3.  
  4.    private DocumentacionEnBlanco(){
  5.        documentos = new ArrayList<Documento>();
  6.    }
  7.    public static DocumentacionEnBlanco Instance(){
  8.        if(_instance == null){
  9.            _instance = new DocumentacionEnBlanco();
  10.        }
  11.        return _instance;
  12.    }
  13.    public void incluye(Documento doc){
  14.        documentos.add(doc);
  15.    }
  16.    public void excluye(Documento doc){
  17.        documentos.remove(doc);
  18.    }
  19. }
  20.  


Título: Re: Ayuda con patron singleton en php y array de objetos
Publicado por: d91 en 5 Octubre 2016, 15:28 pm
sigo intentado avanzar pero con var_dump no he visualizado nada aun:
Código
  1. <?php
  2. class Canasta
  3. {
  4. private $detalle;
  5. private static $_instance = null;
  6.  
  7. private function __construct(){
  8. $detalle = array();
  9. }
  10.  
  11. public static function Instance()
  12. {
  13. if(!isset(self::$_instance))
  14. {
  15. self::$_instance = new Canasta();
  16. }
  17.  
  18. return self::$_instance;
  19. }
  20. public function agregar(DetalleCompra $compra){
  21. array_push($detalle, $compra);
  22. }
  23. public function quitar(DetalleCompra $compra){
  24. unset($detalle[$compra]);
  25. }
  26. public function ver(){
  27. foreach ($detalle as $value) {
  28. return $value->getIdCompra();
  29. }
  30. }
  31. }
  32. ?>
  33.