Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 902e8e1e56 |
@@ -8,7 +8,8 @@ namespace Vague\Hyy;
|
|||||||
*/
|
*/
|
||||||
class Hyydrator
|
class Hyydrator
|
||||||
{
|
{
|
||||||
const REGEX_FIELD_NAME = '/([^_]+)_(.+)/i';
|
const REGEX_FIELD_NAME = '/([^_]+)%s(.+)/i';
|
||||||
|
const DELIMITER = '_';
|
||||||
const CONFIG_RELATION_TYPE = 'type';
|
const CONFIG_RELATION_TYPE = 'type';
|
||||||
const CONFIG_RELATION_CLASS = 'class';
|
const CONFIG_RELATION_CLASS = 'class';
|
||||||
const TYPE_MULTIPLE = 0;
|
const TYPE_MULTIPLE = 0;
|
||||||
@@ -22,6 +23,20 @@ class Hyydrator
|
|||||||
self::TYPE_SINGLE => 'set%s',
|
self::TYPE_SINGLE => 'set%s',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private $delimiter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hyydrator constructor.
|
||||||
|
* @param string $delimiter
|
||||||
|
*/
|
||||||
|
public function __construct(string $delimiter = self::DELIMITER)
|
||||||
|
{
|
||||||
|
$this->delimiter = $delimiter;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $rawData
|
* @param array $rawData
|
||||||
* @param HydratableInterface $base
|
* @param HydratableInterface $base
|
||||||
@@ -37,7 +52,7 @@ class Hyydrator
|
|||||||
$nativeRow = [];
|
$nativeRow = [];
|
||||||
$relationsRow = [];
|
$relationsRow = [];
|
||||||
foreach ($row as $key => $value) {
|
foreach ($row as $key => $value) {
|
||||||
if (preg_match(self::REGEX_FIELD_NAME, $key, $m)
|
if (preg_match(sprintf(self::REGEX_FIELD_NAME, self::DELIMITER), $key, $m)
|
||||||
&& array_key_exists($m[1], $configuration)
|
&& array_key_exists($m[1], $configuration)
|
||||||
) {
|
) {
|
||||||
$relationsRow[$m[1]][$m[2]] = $value;
|
$relationsRow[$m[1]][$m[2]] = $value;
|
||||||
|
|||||||
Reference in New Issue
Block a user