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

mpyw / laravel-pdo-emulation-control / 13646667069

04 Mar 2025 05:07AM UTC coverage: 0.0% (-100.0%) from 100.0%
13646667069

Pull #8

github

mpyw
WIP
Pull Request #8: chore: 🤖 Bump version

0 of 19 relevant lines covered (0.0%)

0.0 hits per line

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

0.0
/src/EmulationController.php
1
<?php
2

3
namespace Mpyw\LaravelPdoEmulationControl;
4

5
use Mpyw\Unclosure\Value;
6
use PDO;
7

8
class EmulationController
9
{
10
    /**
11
     * @var \Closure[]|\PDO[]
12
     */
13
    protected $pdos;
14

15
    /**
16
     * EmulationController constructor.
17
     *
18
     * @param \Closure|\PDO &...$pdos
19
     */
20
    // @phpstan-ignore-next-line parameterByRef.unusedType
21
    public function __construct(&...$pdos)
22
    {
23
        // @phpstan-ignore arrayFilter.same
24
        $this->pdos = array_filter($pdos);
×
25
    }
26

27
    /**
28
     * @param  callable $callback
29
     * @param  mixed    ...$args
30
     * @return mixed
31
     */
32
    public function emulated(callable $callback, ...$args)
33
    {
34
        return $this->switchingTo(true, $callback, ...$args);
×
35
    }
36

37
    /**
38
     * @param  callable $callback
39
     * @param  mixed    ...$args
40
     * @return mixed
41
     */
42
    public function native(callable $callback, ...$args)
43
    {
44
        return $this->switchingTo(false, $callback, ...$args);
×
45
    }
46

47
    /**
48
     * @param  bool     $bool
49
     * @param  callable $callback
50
     * @param  mixed    ...$args
51
     * @return mixed
52
     */
53
    public function switchingTo(bool $bool, callable $callback, ...$args)
54
    {
55
        // @phpstan-ignore assign.propertyType
56
        return Value::withEffectForEach($this->pdos, function (PDO $pdo) use ($bool) {
×
57
            $original = $pdo->getAttribute(PDO::ATTR_EMULATE_PREPARES);
×
58
            $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, $bool);
×
59

60
            return function (PDO $pdo) use ($original) {
×
61
                $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, $original);
×
62
            };
×
63
        }, $callback, ...$args);
×
64
    }
65
}
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