🚀
ARCA ORM
Complete documentation can be found here
🤔
Why use Arca Orm ?
- 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 using swoole. Check the adapter at https://github.com/scrawler-labs/swoole-postgresql-doctrine
❗
Requirements
- PHP 8.1 or greater
- PHP PDO or other supported database adapter
- Mysql, MariaDB, Sqlite or any other supported database. check the list here
💻
Installation
You can install Arca ORM via Composer. If you don't have composer installed , you can download composer from here
composer require scrawler/arca
🏁
QuickStart
✨
Setup
<?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 = new \Scrawler\Arca\Database($connectionParams);
For complete list of driver check here
✏️
CRUD
// 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->get('user',1);
//Get all records
$users = $db->get('user');
// Update a record
$user = $db->get('user',1);
$user->name = "Mr Pranjal";
$user->save();
// Delete a record
$user = $db->get('user',1);
$user->delete();
🔎
Finding data with query
// Using where clause
$users = $db->find('user')
->where('name = "Pranjal Pandey"')
->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 documentation visit the wiki
👏
Supporters
If you have reached here consider giving a star to help this project
✅
Roadmap
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
👍
Similar projects and inspiration
📄
License
Arca ORM is created by Pranjal Pandey and released under the Apache 2.0 License.