Ayuda con patron singleton en php y array de objetos

Iniciado por d91, 4 Octubre 2016, 17:47 PM

0 Miembros y 1 Visitante están viendo este tema.

d91

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 (php) [Seleccionar]

<?php 
 class 
DetalleCompra{
private $_idCompra;
private $_idProducto;
private $_costo;
private $_cantidad;
private $_idKardex;
private $_descripcion;

public function __construct($idCompra$idProducto$costo$cantidad$idKardex$descripcion)
{
this->_idCompra $idCompra;
this->_idProducto $idProducto;
this->_costo $costo;
this->_cantidad $cantidad;
this->_idKardex $idKardex;
this->_descripcion $descripcion;
}

public function getIdCompra(){return this->_idCompra;}
public function getIdProducto(){return this->_idProducto;}
public function getCosto(){return this->_costo;}
public function getCantidad(){return this->_cantidad;}
public function getIdKardex(){return this->_idKardex;}
public function getDescripcion(){return this->_descripcion;}
}
 
?>


y la clase estatica me la imagino algo asi:
Código (php) [Seleccionar]

<?php 
class 
Canasta
{
private static Canasta $_instance[] = null;

public static function Instance()
{
if($_instance == null)
{
_instance = new array(); //aqui deberia de instanciar la clase DetalleCompra
return this->_instance;
}else
{
return this->_instance;
}
}
}
 
?>


Encontre un ejemplo en java pero como el lenguaje no es igual solo me sirve de guia:
Código (java) [Seleccionar]

public class DocumentacionEnBlanco extends Documentacion{
    private static DocumentacionEnBlanco _instance = null;
   
    private DocumentacionEnBlanco(){
        documentos = new ArrayList<Documento>();
    }
    public static DocumentacionEnBlanco Instance(){
        if(_instance == null){
            _instance = new DocumentacionEnBlanco();
        }
        return _instance;
    }
    public void incluye(Documento doc){
        documentos.add(doc);
    }
    public void excluye(Documento doc){
        documentos.remove(doc);
    }
}

d91

sigo intentado avanzar pero con var_dump no he visualizado nada aun:
Código (php) [Seleccionar]

<?php 
class 
Canasta 
{
private $detalle;
private static $_instance null;

private function __construct(){
 $detalle = array();
}

public static function Instance()
{
if(!isset(self::$_instance))
{
self::$_instance = new Canasta();
}

return self::$_instance;
}
public function agregar(DetalleCompra $compra){
array_push($detalle$compra);
}
public function quitar(DetalleCompra $compra){
unset($detalle[$compra]);
}
public function ver(){
foreach ($detalle as $value) {
return $value->getIdCompra();
}
}
}
 
?>