Skip to content

Commit

Permalink
Added support for converting arrays that contain other data than just…
Browse files Browse the repository at this point in the history
… entities.
  • Loading branch information
GregaMohorko committed Jan 26, 2018
1 parent 16ca418 commit 33c176d
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 9 deletions.
2 changes: 1 addition & 1 deletion src/BlueDB.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
*
* Bootstrap file for BlueDB library.
*
* Version 1.2.0.1
* Version 1.2.1.0
*
* @project BlueDB
* @author Grega Mohorko <[email protected]>
Expand Down
33 changes: 25 additions & 8 deletions src/Entity/FieldEntity.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@

namespace BlueDB\Entity;

use Exception;
use ReflectionClass;
use BlueDB\Configuration\BlueDBProperties;
use BlueDB\DataAccess\MySQL;
use BlueDB\DataAccess\Criteria\Criteria;
use BlueDB\DataAccess\Criteria\Expression;
use BlueDB\DataAccess\JoinType;
use BlueDB\DataAccess\MySQL;
use BlueDB\DataAccess\Session;
use BlueDB\Entity\FieldTypeEnum;
use BlueDB\Entity\PropertyTypeEnum;
use BlueDB\Utility\StringUtility;
use Exception;
use ReflectionClass;

abstract class FieldEntity extends DatabaseTable implements IFieldEntity
{
Expand Down Expand Up @@ -105,10 +105,19 @@ public function toArray($fieldsToIgnore=null,$includeHiddenFields=false)
public static function toArrayList($entities,$fieldsToIgnore=null,$includeHiddenFields=false)
{
$session=[];

foreach($entities as $entity){
/* @var $entity FieldEntity */
$elements[]=$entity->toArrayInternal($fieldsToIgnore,$includeHiddenFields, $session);
return self::toArrayListInternal($entities, $fieldsToIgnore, $includeHiddenFields,$session);
}

private static function toArrayListInternal($entities,$fieldsToIgnore,$includeHiddenFields,&$session)
{
$elements=[];
foreach($entities as $entityKey => $entity){
if(is_array($entity)){
$elements[$entityKey]=self::toArrayListInternal($entity, $fieldsToIgnore, $includeHiddenFields, $session);
}else{
/* @var $entity FieldEntity */
$elements[$entityKey]=$entity->toArrayInternal($fieldsToIgnore,$includeHiddenFields, $session);
}
}

return $elements;
Expand Down Expand Up @@ -183,7 +192,15 @@ private static function fromArrayList($array,&$session)
$list=[];

foreach($array as $arrayKey => $element){
$list[$arrayKey]=self::fromArraySingle($element,$session);
if(self::isEntityArray($element)){
$result=self::fromArraySingle($element,$session);
}else if(is_array($element)){
$result=self::fromArrayList($element, $session);
}else{
$result=$element;
}

$list[$arrayKey]=$result;
}

return $list;
Expand Down

0 comments on commit 33c176d

Please sign in to comment.