Conversation
* composer.json — bump to Laravel 13.7 / PHP 8.3 / PHPUnit 11.5.3 / testbench 11.0; widen df-database to ~1.4; pin aws-sdk-php ^3.330; add laravel/helpers ^1.8 polyfills; pull df-core ~1.0.4 directly so consumers get the L13-compatible base. * RedshiftConnection — drop the stale getDoctrineDriver() override (Connection::getDoctrineDriver was removed in L13) and replace the L11 withTablePrefix(new Grammar) calls with the L13-required Grammar(Connection $c) constructor form. Removes the Doctrine\DBAL import. * RedshiftBuilder — drop the legacy hasTable() override. The parent's implementation calls Grammar::compileTableExists($schema, $table) with the L13 two-argument signature and already honours the connection's configured schema and table prefix; the override was passing zero arguments and would fatal at runtime under L13. Stage 1 isolated install passes (composer install --no-dev resolves, class_exists OK across all 25 public classes, helper polyfills register, RedshiftConnection reflectively constructs and binds the Redshift query/schema grammars + processor + builder cleanly). Stage 2 host-app shift-173254 install passes with package:discover green for df-aws.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Wave 4 of the Laravel 11 → 13 upgrade campaign for the DreamFactory platform. Brings
df-awsto Laravel 13.7 / PHP 8.3 / PHPUnit 11.composer.json
php→^8.3laravel/helpers ^1.8(production require — polyfillsarray_get/array_except/camel_caseconsumed throughout the package and its peers)dreamfactory/df-core ~1.0.4(was implicitly transitive through df-database; pin makes the L13-compatible base explicit)dreamfactory/df-databasewidened from~1.4.0to~1.4(continues to pull 1.4.x with the shift/laravel-13 fixes)aws/aws-sdk-phppinned to^3.330(resolves to 3.380.0 today)require-devblock withlaravel/framework ^13.7,phpunit/phpunit ^11.5.3,orchestra/testbench ^11.0,mockery/mockery ^1.6,nunomaduro/collision ^8.6src/Database/RedshiftConnection.phpgetDoctrineDriver()override —Illuminate\Database\Connection::getDoctrineDriver()was removed in Laravel 13 (Doctrine DBAL is no longer a Framework dep). The override and itsDoctrine\DBAL\Driver\PDOPgSql\Driverimport are gone.withTablePrefix(new QueryGrammar)/withTablePrefix(new SchemaGrammar)withnew QueryGrammar($this)/new SchemaGrammar($this)— Laravel 13'sIlluminate\Database\Grammar::__construct(Connection $connection)is mandatory andConnection::withTablePrefix($grammar)was deleted. The new form passes the owning connection so Grammar can read the prefix off$this->connection->getTablePrefix().src/Database/Schema/RedshiftBuilder.phphasTable($table)override. Two reasons: (1) it called$this->grammar->compileTableExists()with zero arguments, which would fatal under L13 —Schema\Grammars\PostgresGrammar::compileTableExistsnow requires($schema, $table). (2) The parent's L13 implementation already does what the override intended (parses schema-and-table, applies the connection's table prefix, calls the grammar with the right arity, returns bool), so the override is redundant. A docblock on the now-empty subclass explains why so it isn't reintroduced.The S3 / SES / SNS / SQS / DynamoDB services are AWS-SDK-driven and framework-independent — no source changes needed there. SES still wraps
Illuminate\Mail\Transport\SesTransport, which exists and works in L13 (Symfony AbstractTransport-based).Verification
Stage 1 — isolated install (containerised, path-repo siblings):
composer validate --strict: clean (one harmless "version field present" warning from the Stage-1 overlay)composer install --no-dev: resolves cleanly; all six df-* siblings symlinked from shift/laravel-13 branches;aws/aws-sdk-php 3.380.0installedclass_exists()array_get,array_except,camel_case) registeredRedshiftConnection:useDefaultQueryGrammar()/useDefaultSchemaGrammar()/useDefaultPostProcessor()all bind the right concrete classes,getSchemaBuilder()returnsRedshiftBuilder,compileTableExists($schema, $table)2-arg signature confirmed,getDoctrineDriver()confirmed removed from class graphStage 2 — host-app shift-173254 worktree:
df-mongo-logs,df-git,df-mcp-server,df-oauth+ their VCS repo entries; commentMongoDB\Laravel\MongoDBServiceProviderinconfig/app.php)composer install --no-dev: resolves cleanly; df-aws 0.20.99 symlinkedphp artisan package:discover --ansi: DONE fordreamfactory/df-awsand all 24 sibling providersRedshiftConnectioninside the host vendor graph)Test plan
Schema::hasTable(),INSERT ... RETURNING(Redshift-specificcompileInsertGetId), andcompileTableExists($schema, $table)to confirm runtime behaviour matches Stage smokephp artisan testonce the remaining Wave 4/5 siblings (df-cassandra, df-firebird, df-azure, df-mqtt, df-rws, etc.) land their L13 PRs