Repository Pattern — a practical guide to repository pattern PHP with clear examples you can reuse in real projects.
OOP Tutorial Series (55/65). Prefer one article? Read the complete OOP tutorial.
Short description
Repositories make services database-agnostic and easier to fake in tests.
Repository interface
interface PostRepository {
public function find(int $id): ?Post;
public function save(Post $post): void;
}
class MysqlPostRepository implements PostRepository {
public function find(int $id): ?Post { /* query */ return null; }
public function save(Post $post): void { /* insert/update */ }
}