Weave Code
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 PDO DataMapper for PHP 8.4+ that maps DB rows to DTOs and back via reflection. Supports auto or explicit mappings, type conversion, and a fluent query builder with dialect-aware UPSERT.

View on GitHub
Deep Wiki
Context7
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.
codeflextech/permission-manager
karnoweb/livewire-datepicker
sayedenam/sayed-dashboard
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver