Skip to content

Commit 9f30d1c

Browse files
committed
Add psalm stubs for new BSON classes
1 parent 1dec3e5 commit 9f30d1c

File tree

4 files changed

+122
-0
lines changed

4 files changed

+122
-0
lines changed

psalm.xml.dist

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,9 @@
1414
<directory name="vendor" />
1515
</ignoreFiles>
1616
</projectFiles>
17+
<stubs>
18+
<file name="stubs/BSON/Document.stub.php"/>
19+
<file name="stubs/BSON/Iterator.stub.php"/>
20+
<file name="stubs/BSON/PackedArray.stub.php"/>
21+
</stubs>
1722
</psalm>

stubs/BSON/Document.stub.php

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
namespace MongoDB\BSON;
4+
5+
/**
6+
* @template TValue
7+
* @template-implements \IteratorAggregate<string, TValue>
8+
*/
9+
final class Document implements \IteratorAggregate, \Serializable
10+
{
11+
private function __construct() {}
12+
13+
final static public function fromBSON(string $bson): Document {}
14+
15+
final static public function fromJSON(string $json): Document {}
16+
17+
/** @param array|object $value */
18+
final static public function fromPHP($value): Document {}
19+
20+
/** @return TValue */
21+
final public function get(string $key) {}
22+
23+
/** @return Iterator<string, TValue> */
24+
final public function getIterator(): Iterator {}
25+
26+
final public function has(string $key): bool {}
27+
28+
/** @return array|object */
29+
final public function toPHP(?array $typeMap = null) {}
30+
31+
final public function toCanonicalExtendedJSON(): string {}
32+
33+
final public function toRelaxedExtendedJSON(): string {}
34+
35+
final public function __toString(): string {}
36+
37+
final public static function __set_state(array $properties): Document {}
38+
39+
final public function serialize(): string {}
40+
41+
/** @param string $serialized */
42+
final public function unserialize($serialized): void {}
43+
44+
final public function __unserialize(array $data): void {}
45+
46+
final public function __serialize(): array {}
47+
}

stubs/BSON/Iterator.stub.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
/**
4+
* @generate-class-entries static
5+
* @generate-function-entries static
6+
*/
7+
8+
namespace MongoDB\BSON;
9+
10+
/**
11+
* @psalm-template TKey of int|string
12+
* @psalm-template TValue
13+
* $psalm-implements \Iterator<TKey, TValue>
14+
*/
15+
final class Iterator implements \Iterator
16+
{
17+
final private function __construct() {}
18+
19+
/** @return TValue */
20+
final public function current() {}
21+
22+
/** @return TKey */
23+
final public function key() {}
24+
25+
final public function next(): void {}
26+
27+
final public function rewind(): void {}
28+
29+
final public function valid(): bool {}
30+
31+
final public function __wakeup(): void {}
32+
}

stubs/BSON/PackedArray.stub.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
namespace MongoDB\BSON;
4+
5+
/**
6+
* @template TValue
7+
* @template-implements \IteratorAggregate<int, TValue>
8+
*/
9+
final class PackedArray implements \IteratorAggregate, \Serializable
10+
{
11+
private function __construct() {}
12+
13+
final static public function fromPHP(array $value): PackedArray {}
14+
15+
/** @return TValue */
16+
final public function get(int $index) {}
17+
18+
/** @return Iterator<int, TValue> */
19+
final public function getIterator(): Iterator {}
20+
21+
final public function has(int $index): bool {}
22+
23+
/** @return array|object */
24+
final public function toPHP(?array $typeMap = null) {}
25+
26+
final public function __toString(): string {}
27+
28+
final public static function __set_state(array $properties): PackedArray {}
29+
30+
final public function serialize(): string {}
31+
32+
/** @param string $serialized */
33+
final public function unserialize($serialized): void {}
34+
35+
final public function __unserialize(array $data): void {}
36+
37+
final public function __serialize(): array {}
38+
}

0 commit comments

Comments
 (0)