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

Rowcast is a lightweight PDO DataMapper for PHP 8.4+. It maps DB rows to DTOs via reflection with auto/explicit mapping and type conversion, plus a fluent query builder with 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.
aashan/pimcore-mcp-bundle
solution-forest/ai-kit-core
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin