Skip to content

Commit f0172e8

Browse files
authored
Merge pull request #354 from xendk/file-stubs
Add field type stubs for file module
2 parents ef7e62d + 9b744d6 commit f0172e8

File tree

4 files changed

+42
-0
lines changed

4 files changed

+42
-0
lines changed

extension.neon

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ parameters:
4444
- stubs/Drupal/Core/TypedData/TypedData.stub
4545
- stubs/Drupal/Core/TypedData/TypedDataInterface.stub
4646
- stubs/Drupal/Core/TypedData/Plugin/DataType/Map.stub
47+
- stubs/Drupal/file/Plugin/Field/FieldType/FileItem.stub
48+
- stubs/Drupal/file/Plugin/Field/FieldType/FileUriItem.stub
4749
- stubs/Drupal/link/LinkItemInterface.stub
4850
- stubs/Drupal/link/Plugin/Field/FieldType/LinkItem.stub
4951
drupal:
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace Drupal\file\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem;
6+
7+
/**
8+
* @property bool $display
9+
* @property string $description
10+
*/
11+
class FileItem extends EntityReferenceItem {
12+
13+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Drupal\file\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\Plugin\Field\FieldType\UriItem;
6+
7+
/**
8+
* @property string $url
9+
*/
10+
class FileUriItem extends UriItem {
11+
12+
}

tests/src/Type/data/field-types.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
use Drupal\Core\Field\Plugin\Field\FieldType\TimestampItem;
1919
use Drupal\Core\Field\Plugin\Field\FieldType\UriItem;
2020
use Drupal\Core\Field\Plugin\Field\FieldType\UuidItem;
21+
use Drupal\file\Plugin\Field\FieldType\FileItem;
22+
use Drupal\file\Plugin\Field\FieldType\FileUriItem;
2123
use Drupal\link\Plugin\Field\FieldType\LinkItem;
2224
use Drupal\node\Entity\Node;
2325
use function PHPStan\Testing\assertType;
@@ -131,3 +133,16 @@
131133
assert($uuid_field instanceof UuidItem);
132134
assertType(UuidItem::class, $uuid_field);
133135
assertType('string', $uuid_field->value);
136+
137+
// FileItem.
138+
$file_field = $node->get('field_file')->first();
139+
assert($file_field instanceof FileItem);
140+
assertType(FileItem::class, $file_field);
141+
assertType('bool', $file_field->display);
142+
assertType('string', $file_field->description);
143+
144+
// FileUriItem.
145+
$file_uri_field = $node->get('field_file')->first();
146+
assert($file_uri_field instanceof FileUriItem);
147+
assertType(FileUriItem::class, $file_uri_field);
148+
assertType('string', $file_uri_field->url);

0 commit comments

Comments
 (0)