scrawler / arca
Arca ORM by Scrawler
v2.1.1
2023-09-30 19:42 UTC
Requires
- php: >=8.1.0
- doctrine/dbal: ^3.3
- loophp/collection: ^7.0
- ramsey/uuid: ^4.3
Requires (Dev)
- doctrine/collections: 2.1.2
- loophp/phpunit-iterable-assertions: 1.0.3
- pestphp/pest: ^2.4
- pestphp/pest-plugin-faker: ^2.0
- phpmd/phpmd: 2.14.1
- phpstan/phpstan: 1.10.36
- squizlabs/php_codesniffer: 3.7.2
- dev-main
- v2.1.1
- v2.1.0
- v2.0.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.1
- v1.0.0
- dev-renovate/phpstan-packages
- dev-renovate/squizlabs-php_codesniffer-3.x
- dev-renovate/ramsey-uuid-4.x-lockfile
- dev-renovate/doctrine-dbal-3.x-lockfile
- dev-renovate/doctrine-collections-2.x
- dev-renovate/pestphp-pest-2.x-lockfile
- dev-renovate/doctrine-dbal-4.x
- dev-renovate/codecov-codecov-action-4.x
- dev-renovate/phpmd-phpmd-2.x
- dev-renovate/loophp-phpunit-iterable-assertions-1.x
This package is auto-updated.
Last update: 2024-05-24 16:04:03 UTC
README
🔥 Low code , Zero Configuration ORM that creates models, config, database and tables on the fly. 🔥
🇮🇳 Made in India 🇮🇳
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 with swoole and async with amphp. Check out integration docs here
❗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 ); // For Arca ORM 1.x // $db = new \Scrawler\Arca\Database($connectionParams); // For Arca 2.x and later $db = \Scrawler\Arca\Facade\Database::connect($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();
For complete CRUD documentaion visit here
🔎 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 Query documentaion visit here
👏 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.