Open Source Contributions
All merged pull requests to the Laravel ecosystem
Ignore PHPUnit security advisory GHSA-qrr6-mg7r-m243
Added the PHPUnit security advisory GHSA-qrr6-mg7r-m243 to the ignore list since it only affects test environments and does not impact production code.
Implement CanFlushLocks on FailoverStore
Implemented the CanFlushLocks interface on FailoverStore, enabling lock flushing to work correctly when using the failover cache store.
Cast to string before preg_match in decimal, max_digits, and min_digits rules
Fixed a PHP 8.x deprecation warning by casting values to string before passing them to preg_match in the decimal, max_digits, and min_digits validation rules.
Fix TypeError in digits_between validation rule on non-string values
Fixed a TypeError that occurred when the digits_between validation rule received non-string values such as integers or floats, making it handle mixed types gracefully.
Add enum support to PasswordBrokerManager
Extended PasswordBrokerManager to accept backed enum values when resolving password brokers, providing a consistent API with other manager classes in the framework.
Add enum support to BroadcastManager
Extended BroadcastManager to accept backed enum values for driver and connection resolution, consistent with enum support added to other manager classes.
Support #[Delay] attribute on queued mailables
Added support for the #[Delay] PHP attribute on queued mailables, allowing developers to set a delay declaratively on the mailable class rather than at the dispatch site.
Fix deprecation warning in In and NotIn rules when values contain null
Fixed a PHP 8.1+ deprecation warning triggered when null values were present in the array used by the In and NotIn validation rules.
Add flushState to FormRequest to reset global strict mode between tests
Added a flushState() method to FormRequest to reset the global strict mode flag between test cases, preventing test state from leaking across test runs.
Fix deprecation warning in Contains and DoesntContain rules when values contain null
Fixed a PHP 8.1+ deprecation warning in the Contains and DoesntContain validation rules when the provided array contained null values.
Fix Str::markdown() and Str::inlineMarkdown() crash on null input
Fixed a fatal error in Str::markdown() and Str::inlineMarkdown() when passed a null value, making them return an empty string gracefully instead of crashing.
Fix TypeError in starts_with/ends_with validation rules on non-string values
Fixed a TypeError in the starts_with and ends_with validation rules when the validated value was not a string, ensuring graceful handling of mixed types.
Use #[Delay] attribute in Bus Dispatcher
Updated the Bus Dispatcher to read and apply the #[Delay] attribute from job classes automatically, reducing boilerplate when configuring job delays.
Use #[Delay] attribute in NotificationSender
Updated NotificationSender to respect the #[Delay] attribute on notification classes, enabling declarative delay configuration without dispatch-site changes.
Add --ignore-scripts to yarn in BroadcastingInstallCommand
Added the --ignore-scripts flag to the yarn install call in BroadcastingInstallCommand to prevent potentially unsafe postinstall scripts from running during scaffolding.
Fix static closure binding in remaining manager classes
Fixed an issue where static closures in certain manager classes were bound to an object context, causing unexpected behavior and potential memory leaks in edge cases.
Fix sum() docblock to include key parameter in callback signature
Corrected the PHPDoc for the Collection sum() method's callback signature to include the key parameter, aligning documentation with the actual runtime behavior.
Add assertHasNoAttachments() method to Mailable
Added an assertHasNoAttachments() assertion method to the Mailable testing utilities, complementing the existing assertHasAttachment() method for complete test coverage.
Cache getLockForPopping() result in DatabaseQueue
Optimized the DatabaseQueue by caching the result of getLockForPopping() instead of calling it multiple times per pop operation, reducing redundant database queries.
Add withoutFragment() method to Uri class
Added a withoutFragment() method to the Uri class that returns a new Uri instance with the fragment component stripped, enabling cleaner URL manipulation.
Add isNotEmpty() method to Uri class
Added an isNotEmpty() convenience method to the Uri class as the semantic inverse of isEmpty(), improving readability in conditional checks.
Add missing capitalize parameter to Stringable::initials()
Added the missing $capitalize parameter to Stringable::initials() so it matches the full signature of the underlying Str::initials() method.
Add enum support to LogManager channel and driver methods
Extended LogManager to accept backed enum values when specifying log channels and drivers, providing a consistent interface across the framework.
Add enum support to QueueManager connection methods
Extended QueueManager to accept backed enum values for connection resolution, consistent with the enum support added to other manager classes.
Use constructor promotion and typed properties in cache flush events
Refactored CacheFlushed, CacheFlushing, and CacheFlushFailed events to use constructor promotion and typed properties, aligning them with newer cache lock events for a consistent style.
Rename $key to $offset in ArrayAccess methods to match PHP interface contract
Renamed $key to $offset in ArrayAccess method signatures across AbstractPaginator, AbstractCursorPaginator, and ValidatedInput to match the PHP interface contract, fixing named argument incompatibility.
Simplify preg_replace_array callback by removing unnecessary foreach loop
Simplified the preg_replace_array callback by removing an unnecessary foreach loop, improving code readability while maintaining identical behavior.
Fix flaky test in CacheArrayStore (increment)
Fixed a flaky test by freezing time before the increment operation in testNonExistingKeysCanBeIncremented, eliminating timing-related failures.
Fix flaky test in ArraySessionHandler (garbage collection)
Fixed a flaky test in ArraySessionHandler by freezing time before the write operation in test_it_cleans_up_old_sessions, ensuring consistent garbage collection behavior.
Fix flaky test in ArraySessionHandler (almost expired session)
Fixed a flaky test in ArraySessionHandler by freezing time in test_it_reads_data_from_an_almost_expired_session, preventing inconsistent results.
Fix flaky test in ArraySessionHandler (expired session)
Fixed a flaky test in ArraySessionHandler by freezing time in test_it_reads_data_from_an_expired_session, ensuring deterministic test execution.
Remove unused closure parameters in DatabaseServiceProvider
Removed unused closure parameters in DatabaseServiceProvider, reducing noise and aligning with PHP best practices for cleaner, more maintainable code.
Add missing @throws annotations to Database Connection class
Added missing @throws PHPDoc annotations to methods in the Database Connection class that can throw exceptions, improving IDE support and static analysis accuracy.
Add missing @throws annotations to Encrypter class
Added missing @throws PHPDoc annotations to the Encrypter class methods that can throw DecryptException, improving static analysis and developer tooling support.
Add HandlesFailoverErrors to VoyageAiGateway
Added the HandlesFailoverErrors trait to VoyageAiGateway, enabling automatic failover error handling consistent with other AI provider gateways in the package.
Add HandlesFailoverErrors to CohereGateway and JinaGateway
Added the HandlesFailoverErrors trait to both CohereGateway and JinaGateway, providing consistent failover error handling across all AI provider gateways in the package.
Remove redundant match expressions in ElevenLabsGateway
Removed redundant match expressions in ElevenLabsGateway, simplifying the code and reducing unnecessary branching logic.
Fix HasTools::tools() return type to accept ProviderTool
Fixed the return type annotation on HasTools::tools() to properly accept ProviderTool instances, resolving type errors surfaced by static analysis tools.