• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

daycry / auth / 22527658769

28 Feb 2026 07:41PM UTC coverage: 63.267% (-3.6%) from 66.864%
22527658769

push

github

web-flow
Merge pull request #36 from daycry/development

Implement TOTP 2FA, JWT auth, device session tracking, and docs overhaul

465 of 1168 new or added lines in 52 files covered. (39.81%)

129 existing lines in 46 files now uncovered.

3064 of 4843 relevant lines covered (63.27%)

41.53 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Entities/Cast/SerializeCast.php
1
<?php
2

3
declare(strict_types=1);
4

5
/**
6
 * This file is part of Daycry Auth.
7
 *
8
 * (c) Daycry <daycry9@proton.me>
9
 *
10
 * For the full copyright and license information, please view
11
 * the LICENSE file that was distributed with this source code.
12
 */
13

14
namespace Daycry\Auth\Entities\Cast;
15

16
use CodeIgniter\Entity\Cast\BaseCast;
17

18
/**
19
 * Serialize Cast
20
 *
21
 * Stores values as JSON. Provides backward-compatible reading of
22
 * legacy PHP-serialized data (read-only fallback, never writes serialized).
23
 */
24
final class SerializeCast extends BaseCast
25
{
26
    /**
27
     * @param string $value
28
     */
UNCOV
29
    public static function get($value, array $params = []): ?array
×
30
    {
NEW
31
        if (! $value) {
×
NEW
32
            return null;
×
33
        }
34

35
        // Primary: try JSON (new format)
NEW
36
        $decoded = json_decode($value, true);
×
37

NEW
38
        if (json_last_error() === JSON_ERROR_NONE) {
×
NEW
39
            return $decoded;
×
40
        }
41

42
        // Fallback: legacy PHP-serialized data — allowed_classes=false prevents object injection
NEW
43
        $unserialized = unserialize($value, ['allowed_classes' => false]);
×
44

NEW
45
        return is_array($unserialized) ? $unserialized : null;
×
46
    }
47

48
    /**
49
     * @param bool|int|list<mixed>|string $value
50
     */
UNCOV
51
    public static function set($value, array $params = []): ?string
×
52
    {
NEW
53
        if (! $value) {
×
NEW
54
            return null;
×
55
        }
56

NEW
57
        return json_encode($value, JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);
×
58
    }
59
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc