:warning: WARNING This software is abandonware. As the creator and maintainer, I don't even use PHP for years, so, I can't support it anymore. It should work ok for PHP untill version 7, but seems that with 8.1 there are some alerts. Feel free to fork it and keep it going. |
---|
Just another simple ORM for PHP. You can use it, but don't ask why I made it. Right? :-)
Take a look on the Github Wiki for documentation, but let me show the basics here:
<?php
// open the PDO connection and set it
$con = new PDO("sqlite:database.sqlite3");
TORM\Connection::setConnection($con);
TORM\Connection::setDriver("sqlite");
// define your models - an User class will connect to an users table
class User extends TORM\Model {};
class Ticket extends TORM\Model {};
// create some validations
User::validates("name", ["presence" => true]);
User::validates("email", ["presence" => true]);
User::validates("email", ["uniqueness" => true]);
User::validates("id", ["numericality" => true]);
// create some relations
User::hasMany("tickets");
User::hasOne("account");
Ticket::belongsTo("user");
// this will create a new user
$user = new User();
$user->name = "John Doe";
$user->email = "john@doe.com";
$user->level = 1;
$user->save();
// this will find the user using its primary key
$user = User::find(1);
// find some users
$users = User::where(["level" => 1]);
// find some users, using more complex expressions
// the array first element is the query, the rest are values
$users = User::where(["level >= ?", 1]);
// updating users
User::where(["level" => 1])->updateAttributes(["level" => 3]);
// using fluent queries
$users = User::where(["level" => 1])->limit(5)->order("name desc");
// listing the user tickets
foreach($user->tickets as $ticket) {
echo $ticket->description;
}
// show user account info
echo $user->account->number;
?>
First, use composer update
to make sure everything is ok with all the
packages. Then, go to the test
directory and run run
. It will requires the
SQLite driver so make sure it is
available. If not, check the php.ini
dir found with
$ php -r 'phpinfo();' | grep 'php.ini'
Configuration File (php.ini) Path => /etc/php/7.1/cli
Loaded Configuration File => /etc/php/7.1/cli/php.ini
and, if not found there or on the conf.d
on the same location the php.ini
file is, it can be installed, on Ubuntu, using:
$ sudo apt install php-sqlite3
$ sudo apt install php-mbstring php-intl php-yaml