Skip to content

Commit c997cea

Browse files
committed
Add stubs for core field types
1 parent dfdefd9 commit c997cea

34 files changed

+549
-0
lines changed

extension.neon

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,37 @@ parameters:
1313
- engine
1414
scanFiles:
1515
- stubs/Twig/functions.stub
16+
stubFiles:
17+
- stubs/Drupal/Component/Plugin/PluginInspectionInterface.stub
18+
- stubs/Drupal/Core/Field/Plugin/Field/FieldItemBase.stub
19+
- stubs/Drupal/Core/Field/Plugin/Field/FieldItemInterface.stub
20+
- stubs/Drupal/Core/Field/Plugin/Field/PreconfiguredFieldUiOptionsInterface.stub
21+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.stub
22+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/ChangedItem.stub
23+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/CreatedItem.stub
24+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/DecimalItem.stub
25+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/EmailItem.stub
26+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.stub
27+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/FloatItem.stub
28+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.stub
29+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/LanguageItem.stub
30+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/MapItem.stub
31+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.stub
32+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/PasswordItem.stub
33+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.stub
34+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/StringItemBase.stub
35+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/StringLongItem.stub
36+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/TimestampItem.stub
37+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.stub
38+
- stubs/Drupal/Core/Field/Plugin/Field/FieldType/UuidItem.stub
39+
- stubs/Drupal/Core/TypedData/ComplexDataInterface.stub
40+
- stubs/Drupal/Core/TypedData/OptionsProviderInterface.stub
41+
- stubs/Drupal/Core/TypedData/TraversableTypedDataInterface.stub
42+
- stubs/Drupal/Core/TypedData/TypedData.stub
43+
- stubs/Drupal/Core/TypedData/TypedDataInterface.stub
44+
- stubs/Drupal/Core/TypedData/Plugin/DataType/Map.stub
45+
- stubs/Drupal/link/LinkItemInterface.stub
46+
- stubs/Drupal/link/Plugin/Field/FieldType/LinkItem.stub
1647
drupal:
1748
drupal_root: '%currentWorkingDirectory%'
1849
entityMapping:

src/Reflection/FieldItemListPropertyReflection.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public function getReadableType(): Type
4343
return new ObjectType('Drupal\Core\Entity\EntityInterface');
4444
}
4545
if ($this->propertyName === 'target_id') {
46+
// @todo needs to be union type.
4647
return new StringType();
4748
}
4849
// @todo this is wrong, integer/bool/decimal/etc all use single value property.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?php
2+
3+
namespace Drupal\Component\Plugin;
4+
5+
interface PluginInspectionInterface {
6+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field;
4+
5+
use Drupal\Core\Entity\EntityInterface;
6+
use Drupal\Core\Form\FormStateInterface;
7+
use Drupal\Core\TypedData\ComplexDataDefinitionInterface;
8+
use Drupal\Core\TypedData\Plugin\DataType\Map;
9+
use Drupal\Core\TypedData\TypedDataInterface;
10+
11+
12+
abstract class FieldItemBase extends Map implements FieldItemInterface {
13+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field;
4+
5+
use Drupal\Core\TypedData\ComplexDataInterface;
6+
7+
interface FieldItemInterface extends ComplexDataInterface {
8+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\FieldItemBase;
6+
use Drupal\Core\TypedData\OptionsProviderInterface;
7+
8+
/**
9+
* @property int $value
10+
*/
11+
class BooleanItem extends FieldItemBase implements OptionsProviderInterface {
12+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
/**
6+
*/
7+
class ChangedItem extends CreatedItem {
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
/**
6+
*/
7+
class CreatedItem extends TimestampItem {
8+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\FieldDefinitionInterface;
6+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
7+
use Drupal\Core\Form\FormStateInterface;
8+
use Drupal\Core\TypedData\DataDefinition;
9+
10+
/**
11+
* @property string $value
12+
*/
13+
class DecimalItem extends NumericItemBase {
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Component\Utility\Random;
6+
use Drupal\Core\Field\FieldDefinitionInterface;
7+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
8+
use Drupal\Core\Field\FieldItemBase;
9+
use Drupal\Core\Render\Element\Email;
10+
use Drupal\Core\TypedData\DataDefinition;
11+
12+
/**
13+
* @property string $value
14+
*/
15+
class EmailItem extends FieldItemBase {
16+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Component\Utility\Html;
6+
use Drupal\Component\Utility\NestedArray;
7+
use Drupal\Core\Entity\ContentEntityStorageInterface;
8+
use Drupal\Core\Entity\EntityInterface;
9+
use Drupal\Core\Entity\EntityTypeInterface;
10+
use Drupal\Core\Entity\FieldableEntityInterface;
11+
use Drupal\Core\Entity\TypedData\EntityDataDefinition;
12+
use Drupal\Core\Field\FieldDefinitionInterface;
13+
use Drupal\Core\Field\FieldException;
14+
use Drupal\Core\Field\FieldItemBase;
15+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
16+
use Drupal\Core\Field\PreconfiguredFieldUiOptionsInterface;
17+
use Drupal\Core\Form\FormStateInterface;
18+
use Drupal\Core\Form\OptGroup;
19+
use Drupal\Core\Render\Element;
20+
use Drupal\Core\Session\AccountInterface;
21+
use Drupal\Core\StringTranslation\TranslatableMarkup;
22+
use Drupal\Core\TypedData\DataReferenceDefinition;
23+
use Drupal\Core\TypedData\DataReferenceTargetDefinition;
24+
use Drupal\Core\TypedData\OptionsProviderInterface;
25+
use Drupal\Core\Validation\Plugin\Validation\Constraint\AllowedValuesConstraint;
26+
27+
/**
28+
* @property string|integer $target_id
29+
* @property \Drupal\Core\Entity\EntityInterface $entity
30+
*/
31+
class EntityReferenceItem extends FieldItemBase implements OptionsProviderInterface, PreconfiguredFieldUiOptionsInterface {
32+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\FieldDefinitionInterface;
6+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
7+
use Drupal\Core\Form\FormStateInterface;
8+
use Drupal\Core\TypedData\DataDefinition;
9+
10+
/**
11+
* @property float $value
12+
*/
13+
class FloatItem extends NumericItemBase {
14+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\FieldDefinitionInterface;
6+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
7+
use Drupal\Core\TypedData\DataDefinition;
8+
9+
/**
10+
* @property int $value
11+
*/
12+
class IntegerItem extends NumericItemBase {
13+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\FieldDefinitionInterface;
6+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
7+
use Drupal\Core\Field\FieldItemBase;
8+
use Drupal\Core\Language\LanguageInterface;
9+
use Drupal\Core\Session\AccountInterface;
10+
use Drupal\Core\TypedData\DataDefinition;
11+
use Drupal\Core\TypedData\DataReferenceDefinition;
12+
use Drupal\Core\TypedData\OptionsProviderInterface;
13+
14+
/**
15+
* @property string $value
16+
* @property \Drupal\Core\Language\LanguageInterface $language
17+
*/
18+
class LanguageItem extends FieldItemBase implements OptionsProviderInterface {
19+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
6+
use Drupal\Core\Field\FieldItemBase;
7+
8+
/**
9+
* @property array<string, mixed> $value
10+
*/
11+
class MapItem extends FieldItemBase {
12+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\FieldItemBase;
6+
use Drupal\Core\Form\FormStateInterface;
7+
8+
abstract class NumericItemBase extends FieldItemBase {
9+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Entity\EntityMalformedException;
6+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
7+
use Drupal\Core\StringTranslation\TranslatableMarkup;
8+
use Drupal\Core\TypedData\DataDefinition;
9+
10+
/**
11+
* @property ?string $existing
12+
* @property bool $pre_hashed
13+
*/
14+
class PasswordItem extends StringItem {
15+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Component\Utility\Random;
6+
use Drupal\Core\Field\FieldDefinitionInterface;
7+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
8+
use Drupal\Core\Form\FormStateInterface;
9+
10+
/**
11+
*/
12+
class StringItem extends StringItemBase {
13+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\FieldItemBase;
6+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
7+
use Drupal\Core\StringTranslation\TranslatableMarkup;
8+
use Drupal\Core\TypedData\DataDefinition;
9+
10+
/**
11+
* @property string $value
12+
*/
13+
abstract class StringItemBase extends FieldItemBase {
14+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Component\Utility\Random;
6+
use Drupal\Core\Field\FieldDefinitionInterface;
7+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
8+
9+
/**
10+
*/
11+
class StringLongItem extends StringItemBase {
12+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\FieldItemBase;
6+
7+
/**
8+
* @property string $value
9+
*/
10+
class TimestampItem extends FieldItemBase {
11+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\FieldDefinitionInterface;
6+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
7+
use Drupal\Core\TypedData\DataDefinition;
8+
9+
/**
10+
*/
11+
class UriItem extends StringItem {
12+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field\Plugin\Field\FieldType;
4+
5+
use Drupal\Core\Field\FieldStorageDefinitionInterface;
6+
use Drupal\Core\Field\FieldDefinitionInterface;
7+
8+
/**
9+
*/
10+
class UuidItem extends StringItem {
11+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?php
2+
3+
namespace Drupal\Core\Field;
4+
5+
interface PreconfiguredFieldUiOptionsInterface {
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?php
2+
3+
namespace Drupal\Core\TypedData;
4+
5+
interface ComplexDataInterface extends TraversableTypedDataInterface {
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?php
2+
3+
namespace Drupal\Core\TypedData;
4+
5+
interface OptionsProviderInterface {
6+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Drupal\Core\TypedData\Plugin\DataType;
4+
5+
use Drupal\Core\TypedData\TypedData;
6+
use Drupal\Core\TypedData\ComplexDataInterface;
7+
8+
/**
9+
* @implements \IteratorAggregate<string, \Drupal\Core\TypedData\TypedDataInterface.>
10+
*/
11+
class Map extends TypedData implements \IteratorAggregate, ComplexDataInterface {
12+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
3+
namespace Drupal\Core\TypedData;
4+
5+
/**
6+
* @extends \Traversable<string, \Drupal\Core\TypedData\TypedDataInterface>
7+
*/
8+
interface TraversableTypedDataInterface extends TypedDataInterface, \Traversable {
9+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespace Drupal\Core\TypedData;
4+
5+
use Drupal\Component\Plugin\PluginInspectionInterface;
6+
use Drupal\Core\DependencyInjection\DependencySerializationTrait;
7+
use Drupal\Core\StringTranslation\StringTranslationTrait;
8+
9+
abstract class TypedData implements TypedDataInterface, PluginInspectionInterface {
10+
}

0 commit comments

Comments
 (0)