NAME

DBIx::QuickORM - Composable ORM builder.

DESCRIPTION

DBIx::QuickORM allows you to define ORMs with reusable and composible parts.

With this ORM builder you can specify:

EARLY DEVELOPMENT NOTICE

It is important to note that if you use DBIx::QuickORM currently you will be an early adopter. The userbase is still small, so a lot has not been battle tested. Also with a small userbase I still feel free to try a few things out and make breaking changes. This will change if enough people indicate active use of this project. Once it has an active userbase it will stabilize and breaking changes will require good reason. Also with active users come bug reports that will help make the project more robust.

NOTES ON AI USE IN THIS PROJECT

HUMAN WRITTEN FROM THE START

This project was initially entirely human authored for ~2 years. Most of the code is still human written.

Recently AI/LLM has been leveraged to find bugs and write some missing documentation.

Some partially implemented features have also been completed with AI/LLM assistance.

AI/LLM IS ALLOWED

I will not police what tools contributors use to write and submit their contributions, this includes AI/LLM. I will however verify quality of any and all submissions.

I expect all PRs, bug reports, and feature requests to be:

DOCUMENTATION

The best place to start is DBIx::QuickORM::Manual::QuickStart, which walks you through connecting to a database and working with rows as objects in just a few lines. Broader documentation - tutorials, guides, recipes, and worked examples - lives in DBIx::QuickORM::Manual, the documentation hub. For a brief index of every feature with links to where each is documented, see DBIx::QuickORM::Manual::Features.

The DBIx::QuickORM module itself exports a DSL (a set of builder functions) for defining ORMs, databases, servers, schemas, tables, columns, and links. The rest of this document is the reference for those DSL functions: what each one does and how they nest. It is intentionally function-focused rather than an end-to-end guide - for that, start with the manual.

ORM BUILDER EXPORTS

You get all these when using DBIx::QuickORM.

Three of these exports (connect, index, and socket) have the same names as Perl built-ins, so importing DBIx::QuickORM shadows those built-ins in the importing package only (it is a lexical-scope import, not a global change). Inside such a package, connect(...), index(...), and socket(...) call the DSL builders below. If you need the Perl built-in in that package, call it explicitly as CORE::connect(...), CORE::index(...), or CORE::socket(...). As a convenience, a call to one of these that has the exact argument shape of the built-in (for example index($string, $substr)) croaks with a reminder to use CORE:: rather than silently misrouting into the builder.

YOUR ORM PACKAGE EXPORTS

RENAMING THE EXPORT

You can rename the orm() function at import time by providing an alternate name.

use My::ORM qw/renamed_orm/;

my $orm = renamed_orm('my_orm');

SOURCE

The source code repository for DBIx::QuickORM can be found at https://https://github.com/exodist/DBIx-QuickORM.

MAINTAINERS

AUTHORS

COPYRIGHT

Copyright Chad Granum exodist7@gmail.com.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See https://dev.perl.org/licenses/