Skip to content

Commit a8515ea

Browse files
committed
Update
1 parent f9b4c10 commit a8515ea

38 files changed

+1169
-702
lines changed

.gitignore

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
11
composer.phar
22
/vendor/
3-
4-
# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
5-
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
6-
# composer.lock
3+
*.bak.php

composer.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "floatphp/classes",
3-
"version" : "1.1.3",
3+
"version" : "1.2.0",
44
"type": "library",
55
"description": "FloatPHP Classes Components",
66
"keywords": ["floatphp","micro-framework","framework","PSR","ORM","jakiboy"],
@@ -15,7 +15,7 @@
1515
],
1616
"require": {
1717
"php": ">=8.2",
18-
"floatphp/interfaces": "^1.1.0"
18+
"floatphp/interfaces": "^1.2.0"
1919
},
2020
"autoload": {
2121
"psr-4" : {

src/Connection/Db.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @author : Jakiboy
44
* @package : FloatPHP
55
* @subpackage : Classes Connection Component
6-
* @version : 1.1.0
6+
* @version : 1.2.x
77
* @copyright : (c) 2018 - 2024 Jihad Sinnaour <mail@jihadsinnaour.com>
88
* @link : https://floatphp.com
99
* @license : MIT

src/Filesystem/Archive.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @author : Jakiboy
44
* @package : FloatPHP
55
* @subpackage : Classes Filesystem Component
6-
* @version : 1.1.0
6+
* @version : 1.2.x
77
* @copyright : (c) 2018 - 2024 Jihad Sinnaour <mail@jihadsinnaour.com>
88
* @link : https://floatphp.com
99
* @license : MIT
@@ -152,7 +152,7 @@ public static function unGzip(string $archive, int $length = 4096, bool $remove
152152
$status = false;
153153
if ( self::isFile($archive) ) {
154154
if ( ($gz = gzopen($archive, 'rb')) ) {
155-
$filename = Stringify::replace('.gz', '', $archive);
155+
$filename = Stringify::remove('.gz', $archive);
156156
$to = fopen($filename, 'wb');
157157
while ( !gzeof($gz) ) {
158158
fwrite($to, gzread($gz, $length));

src/Filesystem/Arrayify.php

+49-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @author : Jakiboy
44
* @package : FloatPHP
55
* @subpackage : Classes Filesystem Component
6-
* @version : 1.1.0
6+
* @version : 1.2.x
77
* @copyright : (c) 2018 - 2024 Jihad Sinnaour <mail@jihadsinnaour.com>
88
* @link : https://floatphp.com
99
* @license : MIT
@@ -148,7 +148,7 @@ public static function pop(array &$array)
148148
* @access public
149149
* @param array $array
150150
* @param array $arrays
151-
* @return mixed
151+
* @return array
152152
*/
153153
public static function diff(array $array, array ...$arrays)
154154
{
@@ -173,13 +173,43 @@ public static function hasKey($key, array $array) : bool
173173
*
174174
* @access public
175175
* @param array $array
176+
* @param mixed $value
177+
* @param bool $search
176178
* @return array
177179
*/
178-
public static function keys(array $array) : array
180+
public static function keys(array $array, $value = null, bool $search = false) : array
179181
{
182+
if ( $search ) {
183+
return array_keys($array, $value, true);
184+
}
180185
return array_keys($array);
181186
}
182-
187+
188+
/**
189+
* Get single array key.
190+
*
191+
* @access public
192+
* @param array $array
193+
* @return mixed
194+
*/
195+
public static function key(array $array)
196+
{
197+
return array_key_first($array);
198+
}
199+
200+
/**
201+
* Fill array keys.
202+
*
203+
* @access public
204+
* @param array $array
205+
* @param mixed $values
206+
* @return array
207+
*/
208+
public static function fillKeys(array $array, $values) : array
209+
{
210+
return array_fill_keys($array, $values);
211+
}
212+
183213
/**
184214
* Get array values.
185215
*
@@ -237,6 +267,20 @@ public static function filter(array $array, $callback = null, int $mode = 0) : a
237267
return array_filter($array);
238268
}
239269

270+
/**
271+
* Format array.
272+
*
273+
* @access public
274+
* @param array $array
275+
* @return array
276+
*/
277+
public static function format(array $array) : array
278+
{
279+
return self::filter(
280+
self::values($array)
281+
);
282+
}
283+
240284
/**
241285
* Format array key case.
242286
*
@@ -254,7 +298,7 @@ public static function formatKeyCase(array $array, int $case = CASE_LOWER) : arr
254298
* Walk recursive array.
255299
*
256300
* @access public
257-
* @param array|object $array
301+
* @param mixed $array
258302
* @param callable $callback
259303
* @param mixed $arg
260304
* @return bool

src/Filesystem/Converter.php

+96-10
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @author : Jakiboy
44
* @package : FloatPHP
55
* @subpackage : Classes Filesystem Component
6-
* @version : 1.1.0
6+
* @version : 1.2.x
77
* @copyright : (c) 2018 - 2024 Jihad Sinnaour <mail@jihadsinnaour.com>
88
* @link : https://floatphp.com
99
* @license : MIT
@@ -15,11 +15,13 @@
1515

1616
namespace FloatPHP\Classes\Filesystem;
1717

18+
use FloatPHP\Classes\Security\Tokenizer;
19+
1820
final class Converter
1921
{
2022
/**
2123
* Convert array to object.
22-
*
24+
*
2325
* @access public
2426
* @param array $array
2527
* @param bool $strict
@@ -41,19 +43,32 @@ public static function toObject(array $array, $strict = false) : object
4143

4244
/**
4345
* Convert object to array.
44-
*
46+
*
4547
* @access public
4648
* @param object $object
4749
* @return array
4850
*/
4951
public static function toArray(object $object) : array
5052
{
5153
return (array)Json::decode(
52-
Json::encode($object),
53-
true
54+
Json::encode($object), true
5455
);
5556
}
56-
57+
58+
/**
59+
* Convert data to key.
60+
*
61+
* @access public
62+
* @param mixed $data
63+
* @return string
64+
*/
65+
public static function toKey($data) : string
66+
{
67+
return Tokenizer::hash(
68+
Stringify::serialize($data)
69+
);
70+
}
71+
5772
/**
5873
* Convert number to float.
5974
*
@@ -64,18 +79,89 @@ public static function toArray(object $object) : array
6479
* @param string $tSep Thousands Separator
6580
* @return float
6681
*/
67-
public static function toFloat($number, int $decimals = 0, string $dSep = '.', string $tSep = ',') : float
82+
public static function toFloat($number, int $decimals = 0, string $dSep = '.', string $tSep = '') : float
6883
{
6984
return (float)number_format($number, $decimals, $dSep, $tSep);
7085
}
71-
86+
7287
/**
7388
* Convert number to money.
7489
*
90+
* @access public
7591
* @inheritdoc
92+
* @return string
93+
*/
94+
public static function toMoney($number, int $decimals = 2, string $dSep = '.', string $tSep = ',') : string
95+
{
96+
return (string)self::toFloat($number, $decimals, $dSep, $tSep);
97+
}
98+
99+
/**
100+
* Convert dynamic value type.
101+
*
102+
* @access public
103+
* @param mixed $value
104+
* @return mixed
105+
* @internal
106+
*/
107+
public static function toType($value)
108+
{
109+
if ( ($match = TypeCheck::isDynamicType('bool', $value)) ) {
110+
return ($match === '1') ? true : false;
111+
}
112+
if ( ($match = TypeCheck::isDynamicType('int', $value)) ) {
113+
return ($match !== 'NaN') ? intval($match) : '';
114+
}
115+
if ( ($match = TypeCheck::isDynamicType('float', $value)) ) {
116+
return ($match !== 'NaN') ? floatval($match) : '';
117+
}
118+
return $value;
119+
}
120+
121+
/**
122+
* Convert dynamic types.
123+
*
124+
* @access public
125+
* @param mixed $values
126+
* @return mixed
127+
* @internal
128+
*/
129+
public static function toTypes($value)
130+
{
131+
if ( TypeCheck::isArray($value) ) {
132+
return Arrayify::map([static::class, 'toTypes'], $value);
133+
}
134+
return Converter::toType($value);
135+
}
136+
137+
/**
138+
* Convert data to text (DB).
139+
*
140+
* @access public
141+
* @param mixed $values
142+
* @return string
143+
* @internal
144+
*/
145+
public static function toText($value) : string
146+
{
147+
$value = Json::format($value, 256);
148+
return (string)Stringify::serialize($value);
149+
}
150+
151+
/**
152+
* Convert data from text (DB).
153+
*
154+
* @access public
155+
* @param string $values
156+
* @return mixed
157+
* @internal
76158
*/
77-
public static function toMoney($number, int $decimals = 2, string $dSep = '.', string $tSep = ' ') : float
159+
public static function fromText(string $value)
78160
{
79-
return self::toFloat($number, $decimals, $dSep, $tSep);
161+
$value = Stringify::unserialize($value);
162+
if ( TypeCheck::isString($value) ) {
163+
$value = Json::decode($value, true);
164+
}
165+
return $value;
80166
}
81167
}

src/Filesystem/Exception.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @author : Jakiboy
44
* @package : FloatPHP
55
* @subpackage : Classes Filesystem Component
6-
* @version : 1.1.0
6+
* @version : 1.2.x
77
* @copyright : (c) 2018 - 2024 Jihad Sinnaour <mail@jihadsinnaour.com>
88
* @link : https://floatphp.com
99
* @license : MIT

0 commit comments

Comments
 (0)