Files
test/system/src/Grav/Framework/Contracts/Relationships/RelationshipsInterface.php
T
2026-01-16 16:29:06 +01:00

54 lines
1.2 KiB
PHP

<?php declare(strict_types=1);
namespace Grav\Framework\Contracts\Relationships;
use ArrayAccess;
use Countable;
use Iterator;
use JsonSerializable;
/**
* Interface RelationshipsInterface
*
* @template T of \Grav\Framework\Contracts\Object\IdentifierInterface
* @template P of \Grav\Framework\Contracts\Object\IdentifierInterface
* @extends ArrayAccess<string,RelationshipInterface<T,P>>
* @extends Iterator<string,RelationshipInterface<T,P>>
*/
interface RelationshipsInterface extends Countable, ArrayAccess, Iterator, JsonSerializable
{
/**
* @return bool
* @phpstan-pure
*/
public function isModified(): bool;
/**
* @return array
*/
public function getModified(): array;
/**
* @return int
* @phpstan-pure
*/
public function count(): int;
/**
* @param string $offset
* @return RelationshipInterface<T,P>|null
*/
public function offsetGet($offset): ?RelationshipInterface;
/**
* @return RelationshipInterface<T,P>|null
*/
public function current(): ?RelationshipInterface;
/**
* @return string
* @phpstan-pure
*/
public function key(): string;
}