🔥 Low code , Zero Configuration ORM that creates models, config, database and tables on the fly. 🔥
🇮🇳 Made in India 🇮🇳
Complete documentation can be found here
- Automatically creates tables and columns as you go
- No configuration, just fire and forget
- Save loads of time while working on database
- Built upon stable foundation of Doctrine Dbal and extensively tested
- Thanks to loophp Arca comes with Lazy collection and tons of helper collection functions
- Supports lots database platforms , you can see the complete list here
- Supports concurrent queries and connection pooling with swoole and async with amphp. Check out integration docs here
- PHP 8.1 or greater
- PHP PDO or other supported database adapter
- Mysql, MariaDB, Sqlite or any other supported database. check the list here
You can install Arca ORM via Composer. If you don't have composer installed , you can download composer from here
composer require scrawler/arca
<?php
include './vendor/autoload.php'
$connectionParams = array(
'dbname' => 'YOUR_DB_NAME',
'user' => 'YOUR_DB_USER',
'password' => 'YOUR_DB_PASSWORD',
'host' => 'YOUR_DB_HOST',
'driver' => 'pdo_mysql', //You can use other supported driver this is the most basic mysql driver
);
$db = \Scrawler\Arca\Facade\Database::connect($connectionParams);
//If you dont want to use facade , directly build from factory
$factory = \Scrawler\Arca\Factory\DatabaseFactory()
$db = $factory->build($connectionParams)
For complete list of driver check here
// Create new record
// The below code will automatically create user table and store the record
$user = $db->create('user');
$user->name = "Pranja Pandey";
$user->age = 24
$user->gender = "male"
$user->save()
// Get record with id 1
$user = $db->getOne('user',1);
//Get all records
$users = $db->get('user');
// Update a record
$user = $db->getOne('user',1);
$user->name = "Mr Pranjal";
$user->save();
// Delete a record
$user = $db->getOne('user',1);
$user->delete();
For complete CRUD documentaion visit here
// Using where clause
$users = $db->find('user')
->where('name = "Pranjal Pandey"')
->get();
// If where input in unsafe or user defined
$name = "Pranjal"
$users = $db->find('user')
->where('name = ?')
->setParameter(0,$name)
->get();
foreach ($users as $user){
// Some logic here
}
// Get only single record
$users = $db->find('user')
->where('name = "Pranjal Pandey"')
->first();
// Using limit in query
$users = $db->find('user')
->setFirstResult(10)
->setMaxResults(20);
->get()
For complete Query documentaion visit here
If you have reached here consider giving a star to help this project ❤️
Here is list of few things that i would like to add in upcoming release
- Models should be extendible with custom models
- Validations for custom models
- Automatically create migrations when table is updated or created
- Support eager loading for relations
- Better documentaions
Arca ORM is created by Pranjal Pandey and released under the Apache 2.0 License.