예제 #1
0
 public static function transform(array $array, $deep = false)
 {
     $result = array();
     foreach ($array as $key => $value) {
         if (is_object($value)) {
             if (array_key_exists("{$key}_id", $array)) {
                 continue;
             }
             if ($deep || !$value instanceof Entidade) {
                 $result[$key] = ArrayEx::transform(get_object_vars($value));
             } else {
                 $result[$key] = array("Id" => $value->getId());
             }
         } else {
             if (is_array($value)) {
                 $result[$key] = ArrayEx::transform($value, !$deep);
             } else {
                 if (!is_null($value)) {
                     $result[$key] = $value;
                 }
             }
         }
     }
     return $result;
 }
예제 #2
0
 public function toJson()
 {
     $data = ArrayEx::transform(get_object_vars($this));
     return json_encode($data);
 }
예제 #3
0
 public function testToJsonRemovePropriedadeComplexaQuePossuiPropriedadeId()
 {
     $municipio = new MunicipioTestObject();
     $municipio->setId(1);
     $municipio->setNome("Fortaleza");
     $conta = new ContaTestObject();
     $conta->setId(2);
     $conta->setNome("Banco do Brasil");
     $rateio = new RateioTestObject();
     $rateio->setMunicipio($municipio);
     $rateio->setConta($conta);
     $arr = ArrayEx::transform(ObjectParser::toArray($rateio));
     $this->assertEquals(2, count($arr));
     $this->assertEquals(1, $arr["Municipio_id"]);
     $this->assertEquals(2, $arr["Conta_id"]);
 }