Data (Repository)¶
The tusk-data component provides database abstraction and repository pattern.
PdoConnection¶
Resilient PDO wrapper with automatic reconnection:
use Tusk\Data\Driver\Pdo\PdoConnection;
$db = new PdoConnection('mysql:host=localhost;dbname=app', 'user', 'pass');
AbstractRepository¶
Base class for clean data access:
use Tusk\Data\Repository\AbstractRepository;
class UserRepository extends AbstractRepository
{
public function findByEmail(string $email): ?array
{
$stmt = $this->connection->prepare('SELECT * FROM users WHERE email = ?');
$stmt->execute([$email]);
return $stmt->fetch(\PDO::FETCH_ASSOC) ?: null;
}
}
Transactions¶
$db->beginTransaction();
try {
// ... operations
$db->commit();
} catch (\Exception $e) {
$db->rollback();
}
Full documentation coming soon.