Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Rowcast Laravel Package

ascetic-soft/rowcast

Lightweight DataMapper over PDO for PHP 8.4+. Maps database rows to DTOs and back using reflection, with auto or explicit mapping, type conversion, and a fluent query builder featuring dialect-aware UPSERT.

View on GitHub
Deep Wiki
Context7
2.0.17

Added

  • QueryBuilder\Expression\Expression — embed SQL expressions in UPDATE set() and INSERT values(). Use Expression::raw('balance - :amount') for arithmetic, function calls, or column references.
  • Tests for Expression support in V2QueryBuilderTest.
1.0.1

Added

  • ConnectionInterface — abstract contract for database connections, enabling custom implementations and easier testing.
  • Connection::getDriverName() — returns the PDO driver name without accessing PDO directly.
  • Persistence\ValueConverterInterface — extensible contract for converting PHP values to DB format (the write-side counterpart of TypeCasterInterface).
  • Persistence\ValueConverterRegistry — chain-of-responsibility registry for value converters.
  • Persistence\BoolValueConverter — converts bool to int (0/1).
  • Persistence\EnumValueConverter — converts BackedEnum to its backing value.
  • Persistence\DateTimeValueConverter — converts DateTimeInterface to a formatted string (customizable format).
  • Persistence\DtoExtractor — extracts column/value pairs from DTO objects via Reflection.
  • QueryBuilder\Compiler\SqlCompilerInterface — contract for SQL generation strategies.
  • QueryBuilder\Compiler\SelectCompiler — generates SELECT SQL.
  • QueryBuilder\Compiler\InsertCompiler — generates INSERT SQL.
  • QueryBuilder\Compiler\UpdateCompiler — generates UPDATE SQL.
  • QueryBuilder\Compiler\DeleteCompiler — generates DELETE SQL.

Changed

  • DataMapper now depends on ConnectionInterface instead of the concrete Connection class.
  • DataMapper now delegates DTO extraction to DtoExtractor and value conversion to ValueConverterInterface.
  • DataMapper constructor accepts optional DtoExtractor and ValueConverterInterface parameters.
  • QueryBuilder now depends on ConnectionInterface instead of the concrete Connection class.
  • QueryBuilder::getSQL() delegates to dedicated compiler classes instead of private methods.

Removed

  • DataMapper::extractData() — replaced by Persistence\DtoExtractor::extract().
  • DataMapper::convertValueForDb() — replaced by Persistence\ValueConverterRegistry.
  • QueryBuilder::getSelectSQL(), getInsertSQL(), getUpdateSQL(), getDeleteSQL() — replaced by compiler classes.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log
hsluv/hsluv
seampact/codegen
seampact/hooks
seampact/ir
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table