Skip to content

Commit 4f588db

Browse files
committed
TEMP: Add stubs for new BSON classes
1 parent c257e30 commit 4f588db

File tree

5 files changed

+114
-0
lines changed

5 files changed

+114
-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/BSON.stub.php"/>
19+
<file name="stubs/BSON/Document.stub.php"/>
20+
<file name="stubs/BSON/PackedArray.stub.php"/>
21+
</stubs>
1722
</psalm>

stubs/BSON/BSON.stub.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace MongoDB\BSON;
4+
5+
interface BSON
6+
{
7+
static public function fromPHP(array $value): BSON {}
8+
9+
public function getIterator(): Iterator {}
10+
11+
public function toPHP(?array $typeMap = null): array|object {}
12+
13+
public function __toString(): string {}
14+
}

stubs/BSON/Document.stub.php

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

stubs/BSON/Iterator.stub.php

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

stubs/BSON/PackedArray.stub.php

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

0 commit comments

Comments
 (0)