18 lines
655 B
PHP
18 lines
655 B
PHP
<?php
|
|
namespace ProVM\Common\Define;
|
|
|
|
use ProVM\Common\Factory\Model as ModelFactory;
|
|
|
|
interface Model {
|
|
public function getTable(): string;
|
|
public function setFactory(ModelFactory $factory): Model;
|
|
public function parentOf(string $child_model_class, array $relation_definitions): ?array;
|
|
public function childOf(string $parent_model_class, array $relation_definitions): ?Model;
|
|
public function siblingOf(string $sibling_model_class, string $connecting_table, array $relation_definitions): ?array;
|
|
|
|
public function toArray(): array;
|
|
|
|
public static function add(ModelFactory $factory, $input): ?Model;
|
|
public function edit($input): bool;
|
|
}
|