Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
f961ddd
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
4833101
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
73958af
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
9e57d6e
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
6d96103
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
478df1b
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
9f67848
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
77aa9e4
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
2ef9569
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
dc47873
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
de7a346
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
28d3734
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
bb714b0
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
a3c5a55
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
d4fe136
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
7d09d62
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
baf74dc
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
9c72401
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
79f31bf
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
a266411
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
3f3e273
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
0c10cf6
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
aac29ac
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
45e63b1
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
378f750
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
53d1f66
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs May 31, 2025
7181a78
Added missing type hints to Ibexa\Contracts\Core\Repository\Values\Co…
adamwojs Jun 1, 2025
e2480a5
[Tests] Updated Ibexa\Tests\Core\Helper\PreviewLocationProviderTest::…
adamwojs Jun 1, 2025
3a668af
[Tests] Updated Ibexa\Tests\Core\Limitation\BlockingLimitationTypeTes…
adamwojs Jun 1, 2025
5482065
[Tests] Updated Ibexa\Tests\Core\Repository\Service\Mock\UrlAliasTest…
adamwojs Jun 1, 2025
139e1d5
[Tests] Updated Ibexa\Tests\Core\Search\Legacy\Content\{HandlerConten…
adamwojs Jun 2, 2025
a754c7b
[Tests] Dropped the following outdated tests:
adamwojs Jun 2, 2025
e7235b8
[Tests] Removed 'null path' dataset from Ibexa\Tests\Core\Repository\…
adamwojs Jun 2, 2025
d63c82e
[Tests] Updated Ibexa\Tests\Core\Repository\Service\Mock\UrlWildcardT…
adamwojs Jun 2, 2025
99e0ae1
[Tests] Updated Ibexa\Tests\Core\Helper\TranslationHelperTest test
adamwojs Jun 2, 2025
b42e33a
[Tests] Updated Ibexa\Tests\Core\MVC\Symfony\View\Builder\ContentView…
adamwojs Jun 2, 2025
d6174c3
[Tests] Updated Ibexa\Tests\Core\Limitation\LocationLimitationTypeTes…
adamwojs Jun 2, 2025
33d20f9
[Tests] Updated Ibexa\Tests\Core\Limitation\ObjectStateLimitationType…
adamwojs Jun 2, 2025
9771d3d
[Tests] Updated Ibexa\Tests\Core\Limitation\ParentDepthLimitationType…
adamwojs Jun 2, 2025
3be063a
[Tests] Updated Ibexa\Tests\Core\Limitation\SubtreeLimitationTypeTest…
adamwojs Jun 2, 2025
435ed1a
[Tests] Updated Ibexa\Tests\Core\Limitation\ContentTypeLimitationType…
adamwojs Jun 2, 2025
64640ef
[Tests] Updated Ibexa\Tests\Core\Limitation\ParentContentTypeLimitati…
adamwojs Jun 2, 2025
8b2f2c6
[Tests] Updated Ibexa\Tests\Core\Repository\Service\Mock\ContentTest …
adamwojs Jun 2, 2025
7530712
[Tests] Dropped obsolete Ibexa\Tests\Core\Repository\Service\Mock\Co…
adamwojs Jun 2, 2025
7649c35
[Tests] Dropped obsolete Ibexa\Tests\Core\Repository\Service\Mock\Co…
adamwojs Jun 2, 2025
3b865da
[Tests] Updated Ibexa\Tests\Core\Repository\Service\Mock\ContentDomai…
adamwojs Jun 2, 2025
dc305ef
[Tests] Updated Ibexa\Tests\Core\Helper\ContentInfoLocationLoader\Sud…
adamwojs Jun 2, 2025
c03dbf0
[Tests] Adapted integration tests
adamwojs Jun 2, 2025
9adbb5b
[Tests] Updated Ibexa\Tests\Core\MVC\Symfony\Templating\Twig\Extensio…
adamwojs Jun 3, 2025
9ecf22c
[Tests] Fixed Ibexa\Tests\Integration\Core\Repository\SearchServiceTe…
adamwojs Jun 4, 2025
013a4c4
Applied code review suggestions
adamwojs Jun 5, 2025
cbf5724
Fixed isset checks on properties of Persistence Content\Mapper
alongosz Jun 23, 2025
f35a34f
[PHPStan] Added new issue to be fixed by adding type hints to Persist…
alongosz Jun 23, 2025
d7a06dc
Made RelationListIteratorAdapter readonly and fixed CS
alongosz Jun 25, 2025
b2f3192
[PHPDoc] Fixed grammar of ContentCreateStruct
alongosz Jun 25, 2025
c8fe49e
Added missing type hints to \Ibexa\Contracts\Core\Repository\Values\C…
alongosz Jun 25, 2025
63ec9d9
Added missing type hints to \Ibexa\Contracts\Core\Repository\Values\C…
alongosz Jun 25, 2025
4a38aeb
Defined generic type for Contracts LocationList Value
alongosz Jun 25, 2025
5320236
Added missing type hints to \Ibexa\Core\Helper\PreviewLocationProvider
alongosz Jun 25, 2025
4db6e73
Fixed incorrect `@var` usage in \Ibexa\Core\Limitation\UserGroupLimit…
alongosz Jun 25, 2025
9b422a9
Added missing type hints to \Ibexa\Core\Repository\Values\Content\Loc…
alongosz Jun 26, 2025
0fa72ae
Fixed instantiating Location in PreviewLocationProvider after strict …
alongosz Jun 26, 2025
9e853b3
[PHPStan] Removed resolved issues from the baseline
adamwojs Jun 2, 2025
f62a6bb
Aligned strict types of Section `property-read`s with the changes
alongosz Jul 2, 2025
a6c5fca
Defined strict getters for Contracts\...\Section properties
alongosz Jul 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 6 additions & 120 deletions phpstan-baseline.neon
Original file line number Diff line number Diff line change
Expand Up @@ -5928,18 +5928,6 @@ parameters:
count: 1
path: src/contracts/Repository/Iterator/BatchIteratorAdapter/ContentFilteringAdapter.php

-
message: '#^Method Ibexa\\Contracts\\Core\\Repository\\Iterator\\BatchIteratorAdapter\\LocationFilteringAdapter\:\:__construct\(\) has parameter \$languages with no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: src/contracts/Repository/Iterator/BatchIteratorAdapter/LocationFilteringAdapter.php

-
message: '#^Method Ibexa\\Contracts\\Core\\Repository\\Iterator\\BatchIteratorAdapter\\LocationFilteringAdapter\:\:fetch\(\) should return Iterator but returns iterable\<Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\>&Traversable\.$#'
identifier: return.type
count: 1
path: src/contracts/Repository/Iterator/BatchIteratorAdapter/LocationFilteringAdapter.php

-
message: '#^Method Ibexa\\Contracts\\Core\\Repository\\LanguageResolver\:\:getPrioritizedLanguages\(\) has parameter \$forcedLanguages with no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
Expand Down Expand Up @@ -6054,36 +6042,6 @@ parameters:
count: 1
path: src/contracts/Repository/Values/Content/ContentDraftList.php

-
message: '#^Method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\DraftList\\Item\\UnauthorizedContentDraftListItem\:\:__construct\(\) has parameter \$payload with no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: src/contracts/Repository/Values/Content/DraftList/Item/UnauthorizedContentDraftListItem.php

-
message: '#^Method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\DraftList\\Item\\UnauthorizedContentDraftListItem\:\:getPayload\(\) return type has no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: src/contracts/Repository/Values/Content/DraftList/Item/UnauthorizedContentDraftListItem.php

-
message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\DraftList\\Item\\UnauthorizedContentDraftListItem\:\:\$payload type has no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: src/contracts/Repository/Values/Content/DraftList/Item/UnauthorizedContentDraftListItem.php

-
message: '#^Class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location has PHPDoc tag @property\-read for property \$path with no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: src/contracts/Repository/Values/Content/Location.php

-
message: '#^Class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\LocationList implements generic interface IteratorAggregate but does not specify its types\: TKey, TValue$#'
identifier: missingType.generics
count: 1
path: src/contracts/Repository/Values/Content/LocationList.php

-
message: '#^Right side of \|\| is always false\.$#'
identifier: booleanOr.rightAlwaysFalse
Expand Down Expand Up @@ -9102,12 +9060,6 @@ parameters:
count: 1
path: src/lib/Limitation/TargetOnlyLimitationType.php

-
message: '#^PHPDoc tag @var does not specify variable name\.$#'
identifier: varTag.noVariable
count: 1
path: src/lib/Limitation/UserGroupLimitationType.php

-
message: '#^Method Ibexa\\Core\\MVC\\Exception\\NoViewTemplateException\:\:getView\(\) has no return type specified\.$#'
identifier: missingType.return
Expand Down Expand Up @@ -14190,6 +14142,12 @@ parameters:
count: 1
path: src/lib/Persistence/Legacy/Content/Mapper.php

-
message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\CreateStruct\:\:\$isHidden \(bool\) on left side of \?\? is not nullable\.$#'
identifier: nullCoalesce.property
count: 1
path: src/lib/Persistence/Legacy/Content/Mapper.php

-
message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\:\:\$id \(int\) does not accept null\.$#'
identifier: assign.propertyType
Expand Down Expand Up @@ -17982,12 +17940,6 @@ parameters:
count: 1
path: src/lib/Repository/ContentService.php

-
message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentCreateStruct\:\:\$modificationDate \(DateTime\) in isset\(\) is not nullable\.$#'
identifier: isset.property
count: 1
path: src/lib/Repository/ContentService.php

-
message: '#^Property Ibexa\\Core\\Repository\\ContentService\:\:\$repository \(Ibexa\\Core\\Repository\\Repository\) does not accept Ibexa\\Contracts\\Core\\Repository\\Repository\.$#'
identifier: assign.propertyType
Expand Down Expand Up @@ -19566,18 +19518,6 @@ parameters:
count: 1
path: src/lib/Repository/Values/Content/Content.php

-
message: '#^Method Ibexa\\Core\\Repository\\Values\\Content\\Location\:\:getProperties\(\) has parameter \$dynamicProperties with no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: src/lib/Repository/Values/Content/Location.php

-
message: '#^Method Ibexa\\Core\\Repository\\Values\\Content\\Location\:\:getProperties\(\) return type has no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
count: 1
path: src/lib/Repository/Values/Content/Location.php

-
message: '#^Method Ibexa\\Core\\Repository\\Values\\Content\\TrashItem\:\:getProperties\(\) has parameter \$dynamicProperties with no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue
Expand Down Expand Up @@ -20988,12 +20928,6 @@ parameters:
count: 1
path: src/lib/Search/Legacy/Content/Handler.php

-
message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\:\:\$sortClauses \(array\<Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\SortClause\>\) does not accept null\.$#'
identifier: assign.propertyType
count: 1
path: src/lib/Search/Legacy/Content/Handler.php

-
message: '#^Method Ibexa\\Core\\Search\\Legacy\\Content\\Indexer\:\:purge\(\) has no return type specified\.$#'
identifier: missingType.return
Expand Down Expand Up @@ -25398,12 +25332,6 @@ parameters:
count: 1
path: tests/integration/Core/Repository/BaseTestCase.php

-
message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentCreateStruct\:\:\$remoteId \(string\) does not accept string\|null\.$#'
identifier: assign.propertyType
count: 1
path: tests/integration/Core/Repository/BaseTestCase.php

-
message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:\$repository \(Ibexa\\Contracts\\Core\\Repository\\Repository\) does not accept null\.$#'
identifier: assign.propertyType
Expand Down Expand Up @@ -58518,24 +58446,12 @@ parameters:
count: 1
path: tests/lib/Repository/Service/Mock/ContentTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsInvalidArgumentExceptionContentTypeNotSet\(\) has no return type specified\.$#'
identifier: missingType.return
count: 1
path: tests/lib/Repository/Service/Mock/ContentTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsInvalidArgumentExceptionDuplicateRemoteId\(\) has no return type specified\.$#'
identifier: missingType.return
count: 1
path: tests/lib/Repository/Service/Mock/ContentTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsInvalidArgumentExceptionMainLanguageCodeNotSet\(\) has no return type specified\.$#'
identifier: missingType.return
count: 1
path: tests/lib/Repository/Service/Mock/ContentTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsUnauthorizedException\(\) has no return type specified\.$#'
identifier: missingType.return
Expand Down Expand Up @@ -61698,12 +61614,6 @@ parameters:
count: 1
path: tests/lib/Repository/Values/Content/LanguageTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\LanguageTest\:\:testNewClass\(\) has no return type specified\.$#'
identifier: missingType.return
count: 1
path: tests/lib/Repository/Values/Content/LanguageTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\LanguageTest\:\:testReadOnlyProperty\(\) has no return type specified\.$#'
identifier: missingType.return
Expand Down Expand Up @@ -61758,12 +61668,6 @@ parameters:
count: 1
path: tests/lib/Repository/Values/Content/SectionTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\SectionTest\:\:testNewClass\(\) has no return type specified\.$#'
identifier: missingType.return
count: 1
path: tests/lib/Repository/Values/Content/SectionTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\SectionTest\:\:testReadOnlyProperty\(\) has no return type specified\.$#'
identifier: missingType.return
Expand Down Expand Up @@ -61800,12 +61704,6 @@ parameters:
count: 1
path: tests/lib/Repository/Values/Content/TrashItemTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\TrashItemTest\:\:testNewClass\(\) has no return type specified\.$#'
identifier: missingType.return
count: 1
path: tests/lib/Repository/Values/Content/TrashItemTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\TrashItemTest\:\:testReadOnlyProperty\(\) has no return type specified\.$#'
identifier: missingType.return
Expand Down Expand Up @@ -62616,12 +62514,6 @@ parameters:
count: 1
path: tests/lib/Search/Legacy/Content/HandlerContentTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFindWithNullLimit\(\) has no return type specified\.$#'
identifier: missingType.return
count: 1
path: tests/lib/Search/Legacy/Content/HandlerContentTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFindWithOffsetToNonexistent\(\) has no return type specified\.$#'
identifier: missingType.return
Expand Down Expand Up @@ -63138,12 +63030,6 @@ parameters:
count: 1
path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFindWithNullLimit\(\) has no return type specified\.$#'
identifier: missingType.return
count: 1
path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php

-
message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFindWithOffsetToNonexistent\(\) has no return type specified\.$#'
identifier: missingType.return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,20 @@ final class LocationFilteringAdapter implements BatchIteratorAdapter
/** @var string[]|null */
private ?array $languages;

/**
* @param string[]|null $languages
*/
public function __construct(LocationService $locationService, Filter $filter, ?array $languages = null)
{
$this->locationService = $locationService;
$this->filter = $filter;
$this->languages = $languages;
}

/**
* @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException
* @throws \Exception
*/
public function fetch(int $offset, int $limit): Iterator
{
$filter = clone $this->filter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,30 +13,29 @@
use Ibexa\Contracts\Core\Repository\Values\Content\RelationType;
use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo;
use Iterator;
use IteratorIterator;

final class RelationListIteratorAdapter implements BatchIteratorAdapter
final readonly class RelationListIteratorAdapter implements BatchIteratorAdapter
{
public function __construct(
readonly private ContentService $contentService,
readonly private VersionInfo $versionInfo,
readonly private ?RelationType $relationType = null,
private ContentService $contentService,
private VersionInfo $versionInfo,
private ?RelationType $relationType = null,
) {
}

/**
* @phpstan-return \Iterator<int, \Ibexa\Contracts\Core\Repository\Values\Content\RelationList\RelationListItemInterface>
*
* @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException
* @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException
*/
public function fetch(int $offset, int $limit): Iterator
{
$iterator = $this->contentService->loadRelationList(
return $this->contentService->loadRelationList(
$this->versionInfo,
$offset,
$limit,
$this->relationType
)->getIterator();

if ($iterator instanceof Iterator) {
return $iterator;
}

return new IteratorIterator($iterator);
}
}
53 changes: 21 additions & 32 deletions src/contracts/Repository/Values/Content/ContentCreateStruct.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@

namespace Ibexa\Contracts\Core\Repository\Values\Content;

use DateTimeInterface;
use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType;

/**
* This class is used for creating a new content object.
*
Expand All @@ -19,57 +22,43 @@ abstract class ContentCreateStruct extends ContentStruct
* The content type for which the new content is created.
*
* Required.
*
* @var \Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType
*/
public $contentType;
public ContentType $contentType;

/**
* The section the content is assigned to.
* If not set the section of the parent is used or a default section.
* The main language code for the content. This language will also
* be used as an initial language for the first created version.
* It is also used as the default language for added fields.
*
* @var mixed
* Required.
*/
public $sectionId;
public string $mainLanguageCode;

/**
* The owner of the content. If not given the current authenticated user is set as owner.
*
* @var mixed
* The section to which the content is assigned.
* If not set, either the parent section or a default section is used.
*/
public $ownerId;
public ?int $sectionId = null;

/**
* Indicates if the content object is shown in the mainlanguage if its not present in an other requested language.
*
* @var bool
* The owner of the content. If not given, the current authenticated user is set as owner.
*/
public $alwaysAvailable;
public ?int $ownerId = null;

/**
* Remote identifier used as a custom identifier for the object.
*
* Needs to be a unique Content->remoteId string value.
*
* @var string
* Indicates if the content object is shown in the main language if it's not present in another requested language.
*/
public $remoteId;
public ?bool $alwaysAvailable = null;

/**
* the main language code for the content. This language will also
* be used for as initial language for the first created version.
* It is also used as default language for added fields.
*
* Required.
* Remote identifier used as a custom identifier for the object.
*
* @var string
* Needs to be a unique Content->remoteId string value.
*/
public $mainLanguageCode;
public ?string $remoteId = null;

/**
* Modification date. If not given the current timestamp is used.
*
* @var \DateTime
* Modification date. If not given, the current timestamp is used.
*/
public $modificationDate;
public ?DateTimeInterface $modificationDate = null;
}
7 changes: 2 additions & 5 deletions src/contracts/Repository/Values/Content/ContentDraftList.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,12 @@
*/
class ContentDraftList extends ValueObject implements IteratorAggregate
{
/**
* @var int
*/
public $totalCount = 0;
public int $totalCount = 0;

/**
* @var \Ibexa\Contracts\Core\Repository\Values\Content\DraftList\ContentDraftListItemInterface[]
*/
public $items = [];
public array $items = [];

/**
* {@inheritdoc}
Expand Down
Loading
Loading