-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMap.php
60 lines (47 loc) · 1.27 KB
/
Map.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
declare(strict_types=1);
/*
* This file is part of the QuidPHP package <https://quidphp.com>
* Author: Pierre-Philippe Emond <emondpph@gmail.com>
* License: https://github.com/quidphp/orm/blob/master/LICENSE
*/
namespace Quid\Orm;
use Quid\Base;
use Quid\Main;
// map
// root class for a collection of cells, cols or rows
abstract class Map extends Main\MapObj
{
// trait
use Main\Map\_readOnly;
use Main\Map\_sort;
// config
protected static array $config = [];
// construct
// construit un nouvel objet cells
final public function __construct(...$values)
{
$this->add(...$values);
}
// toString
// retourne les noms de cellules séparés par des virgules
final public function __toString():string
{
return implode(',',$this->keys());
}
// onPrepareReturns
// prépare le retour pour indexes, gets, slice et slice index
// les lignes sont toujours retournés dans un nouvel objet cells
final protected function onPrepareReturns(array $array):self
{
$array = Base\Arr::clean($array);
return new static(...array_values($array));
}
// cast
// retourne la valeur cast
final public function _cast():array
{
return $this->keys();
}
}
?>