diff --git a/lib/chibi-core b/lib/chibi-core index 971fba5c..9653960e 160000 --- a/lib/chibi-core +++ b/lib/chibi-core @@ -1 +1 @@ -Subproject commit 971fba5cb9398f7521c2d8ae33e6bc6a1dbf3400 +Subproject commit 9653960e235c2c932bce404d3fe8ff4ea3990e08 diff --git a/src/Helpers/TextHelper.php b/src/Helpers/TextHelper.php index 82dddb8f..4612816e 100644 --- a/src/Helpers/TextHelper.php +++ b/src/Helpers/TextHelper.php @@ -20,7 +20,7 @@ class TextHelper //todo: convert to enum and make one method public static function snakeCaseToCamelCase($string, $lower = false) { - $string = preg_split('/_/', $string); + $string = explode('_', $string); $string = array_map('trim', $string); $string = array_map('ucfirst', $string); $string = join('', $string); @@ -31,7 +31,7 @@ class TextHelper public static function kebabCaseToCamelCase($string) { - $string = preg_split('/-/', $string); + $string = explode('-', $string); $string = array_map('trim', $string); $string = array_map('ucfirst', $string); $string = join('', $string); diff --git a/src/Models/AbstractCrudModel.php b/src/Models/AbstractCrudModel.php index 871f684c..b7868070 100644 --- a/src/Models/AbstractCrudModel.php +++ b/src/Models/AbstractCrudModel.php @@ -79,9 +79,22 @@ abstract class AbstractCrudModel implements IModel public static function convertRows(array $rows) { + $keyCache = []; + $entities = []; foreach ($rows as $i => $row) - $rows[$i] = self::convertRow($row); - return $rows; + { + $entity = self::spawn(); + foreach ($row as $key => $val) + { + if (isset($keyCache[$key])) + $key = $keyCache[$key]; + else + $key = $keyCache[$key] = TextHelper::snakeCaseToCamelCase($key, true); + $entity->$key = $val; + } + $entities[$i] = $entity; + } + return $entities; } diff --git a/src/Models/Entities/PostEntity.php b/src/Models/Entities/PostEntity.php index 96f3be42..ce71a854 100644 --- a/src/Models/Entities/PostEntity.php +++ b/src/Models/Entities/PostEntity.php @@ -14,6 +14,9 @@ class PostEntity extends AbstractEntity public $imageHeight; public $uploaderId; public $source; + public $commentCount; + public $favCount; + public $score; public function getUploader() { diff --git a/src/Models/SearchServices/AbstractQueryBuilder.php b/src/Models/SearchServices/AbstractSearchService.php similarity index 100% rename from src/Models/SearchServices/AbstractQueryBuilder.php rename to src/Models/SearchServices/AbstractSearchService.php