b2pweb/bdf-prime
Bdf Prime ORM
Maintainers
v2.2.3
2025-12-16 13:23 UTC
Requires
- php: ~7.4 | ~8.0
- ext-mbstring: *
- b2pweb/bdf-dsn: ~1.0
- b2pweb/bdf-event-notifier: ~1.0
- b2pweb/bdf-serializer: ~1.0
- b2pweb/bdf-util: ~1.0
- benmorel/weakmap-polyfill: ^0.3.0
- doctrine/dbal: ~3.7
- doctrine/inflector: ~1.0|~2.0
- doctrine/instantiator: ^1.0.3|~2.0
- nette/php-generator: ~3.6|~4.2
- psr/clock: ^1.0
- psr/container: ~1.0|~2.0
- psr/log: ~1.0|~2.0|~3.0
- psr/simple-cache: ^1.0|~2.0|~3.0
- ramsey/uuid: ^4.2
- symfony/filesystem: ~4.3|~5.0|~6.0|~7.0
- symfony/polyfill-php80: ~1.16
Requires (Dev)
- b2pweb/bdf-phpunit: ~1.0
- doctrine/cache: ~2.0
- friendsofphp/php-cs-fixer: ~3.64
- nikic/php-parser: ^4.15 | ~5.0
- phpbench/phpbench: ^1.2
- phpunit/phpunit: ~9.0
- symfony/cache: ~5.0|~6.0|~7.0
- symfony/console: ~4.3|~5.0|~6.0|~7.0
- symfony/http-foundation: ~4.3|~5.0|~6.0|~7.0
- symfony/http-kernel: ~4.3|~5.0|~6.0|~7.0
- symfony/phpunit-bridge: ~4.3|~5.0|~6.0|~7.0
- symfony/validator: ~4.3|~5.0|~6.0|~7.0
- vimeo/psalm: ~5.26 | ~6.0
Suggests
- b2p/bdf-console: required to use prime commands (~1.5)
- b2p/bdf-web: required to use service provider (~1.5)
- nikic/php-parser: required to use closure filters (~4.15)
Provides
None
Conflicts
None
Replaces
None
MIT 3cff8af0ee6a9175e672a4a3489de9f1e7e7a565
- SΓ©bastien Tanneux
This package is auto-updated.
Last update: 2026-06-22 12:40:36 UTC
README
Prime is a Data mapper ORM based on doctrine DBAL. The goal of prime is to lightweight usage of data mapper and doctrine DBAL.
π build
π Scrutinizer Code Quality
π codecov
π Packagist Version
π Total Downloads
π Type Coverage
Getting Started
See Wiki for more information
composer require b2pweb/bdf-prime
<?php use Bdf\Prime\ConnectionManager; use Bdf\Prime\Entity\Model; use Bdf\Prime\Mapper\Mapper; use Bdf\Prime\Mapper\Builder\FieldBuilder; use Bdf\Prime\Mapper\Builder\IndexBuilder; use Bdf\Prime\Query\Expression\Like; use Bdf\Prime\ServiceLocator; // Declare your entity class User extends Model { public $id; public $firstName; public $lastName; public $email; public function __construct(array $data) { $this->import($data); } } // Declare the data mapper for the entity class UserMapper extends Mapper { public function schema(): array { return [ 'connection' => 'myDB', 'table' => 'users', ]; } public function buildFields(FieldBuilder $builder): void { $builder ->bigint('id')->autoincrement() ->string('firstName') ->string('lastName') ->string('email') ; } public function buildIndexes(IndexBuilder $builder): void { $builder->add()->on('name'); } } // Declare your connections $connexions = new ConnectionManager(); $connexions->declareConnection('myDB', 'mysql://myuser:mypassword@localhost'); // Use the service locator to locate your repositories $manager = new ServiceLocator($connexions); Locatorizable::configure($manager); $repository = $manager->repository(User::class); // Get and update an entity $user = User::findById(1); $user->setFirstName('john')->save(); // Use a query builder for searching entities User::where('firstName', 'john')->orWhere('email', (new Like('john%'))->startsWith())->all();
