Example #1
0
 /**
  * Carrega os valores de  uma relação N_2_N entre 2 tabelas onde uma classe
  * asssociativa faz associação dos itens. Para carregar um atributo multivalorado
  * é preciso que ele seja uma propriedade
  *
  * A classe associativa "default" é a junção do nome das duas tabelas da
  * relação.
  * Ex.:
  * class Item {}
  * class Pedido {}
  *
  * Um item pode estar em vários Pedidos, e um pedido pode ter vários itens,
  * portanto é necessário uma classe associativa entre elas, sendo assim o
  * nome default dessa classe é ItemPedido
  *
  * class ItemPedido{}
  *
  * $pedido = new Pedido(1);
  * $pedido->getDao()->load_N_2_N_Propertie("item");
  * var_dump($pedido->getItem());
  *
  *
  * @param string $object objeto que será usado
  * @param string $propertieName nome da propriedade do tipo array() que será carrregada
  * @param string $associativeClassName  nome da classe associativa
  */
 public function load_N_2_N_Propertie($object, $propertieName, $associativeClassName = "", $order = "", $limit = "", $loadInternalObjectAtributes = true)
 {
     $prop = $this->ref->getProperty($propertieName);
     //pega a propriedade especificada
     //$met = $this->ref->getMethod(MethodSintaxe::buildSetterName($propertieName)); // pega o setter da propriedade
     //define o nome da classe associativa se default
     if (self::isEmpty($associativeClassName)) {
         $associativeClassName = ucfirst($propertieName) . $this->ref->getName();
     }
     $c = new CRUD($associativeClassName);
     $atr1 = strtolower(substr($this->ref->getName(), 0, 1)) . substr($this->ref->getName(), 1);
     $array = $c->loadLightArray($atr1 . "=" . $object->getId(), $order, $limit, false, $loadInternalObjectAtributes);
     $arrayValoresCertos = array();
     foreach ($array as $a) {
         $strEval = '$arrayValoresCertos[] = $a->get' . ucfirst($propertieName) . '();';
         eval($strEval);
     }
     $strEval = '$object->' . $propertieName . '=$arrayValoresCertos;';
     eval($strEval);
 }
Example #2
0
    /**
     * Retorna um node XML do objeto, as tags HTML dos conteudos dos obetos são
     * codigicados por htmlentities()
     *
     * @param string $whereCondition condição de carregamento
     * @param string $order ordem dos registros
     * @param string $limit limite de registros
     * @param boolean $lightMode se serão carregados os objetos dentro dos objetos
     * @param boolean $addXmlRootTags
     * @return string node xml dos registros
     */
    public static function tSamus_Controllerml($classOrObject, $whereCondition = "", $order = "", $limit = "", $lightMode = false, $addXmlRootTags = false)
    {
        $crud = new CRUD($classOrObject);
        $obj = self::getInstance($classNameOrObject);
        $crud->loadLightArray($whereCondition, $order, $limit, false, !$lightMode, true);
        $str = CRUD::$xmlStr;
        if ($addXmlRootTags) {
            $str = '<?xml version="1.0" encoding="ISO-8859-1"?>
<root>' . $str . "</root>";
        }
        CRUD::$xmlStr = "";
        return $str;
    }