Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[10.x] Add APA style title helper #49572

Merged
merged 10 commits into from
Jan 7, 2024

Conversation

hotmeteor
Copy link
Contributor

@hotmeteor hotmeteor commented Jan 4, 2024

This PR provides support for APA style title casing through the Str::apa($string) or str($string)->apa() helpers.

Style as defined here: https://apastyle.apa.org/style-grammar-guidelines/capitalization/title-case

@hotmeteor hotmeteor changed the title Add APA style title helper [10.x] Add APA style title helper Jan 4, 2024
@antonkomarev
Copy link
Contributor

antonkomarev commented Jan 4, 2024

Isn't it "Title Case" and not APA? I mean APA — American Psychological Association. They are using Title Case, that's all. It's pretty common case, and it should not relate to them.

@jbrooksuk
Copy link
Member

@hotmeteor can you please revert the unrelated styling changes made in src/Illuminate/Support/Str.php.

@driesvints driesvints marked this pull request as draft January 4, 2024 07:51
@hotmeteor
Copy link
Contributor Author

@antonkomarev Laravel already has both a title and headline casing method. This particular method aligns with the APA-defined way of capitalizing specific words in specific positions as a way of titling referenced works.

I'm open to renaming the method, but it's more than just title casing.

@jbrooksuk Done

@driesvints driesvints marked this pull request as ready for review January 4, 2024 13:35
@timacdonald
Copy link
Member

I know APA often change their styling rules. What happens when they change their title casing rules?

For example, the heading rules changed from version 6 to version 7 where previously not all titles where "Title Case", but some where "Sentence case".

@timacdonald
Copy link
Member

An opinionated Str::taylorCase 😎

@hotmeteor
Copy link
Contributor Author

@timacdonald Ya I legit don’t care what it’s called, I just used those rules. The point being it’s a nicer way to style titles, especially when referring to works or headlines.

Totally open to suggestions 😃

@taylorotwell taylorotwell merged commit 99ef361 into laravel:10.x Jan 7, 2024
23 of 24 checks passed
@hotmeteor
Copy link
Contributor Author

Awesome, thanks @taylorotwell.

Could moving towards this as the "new" titleCase be something for 11.x instead?

@taylorotwell
Copy link
Member

taylorotwell commented Jan 9, 2024

@hotmeteor Possibly? I think one improvement to this entire use case could also be the addition of configurable "acronyms". Rails allows this, so that you can do Str::title('your CSV'); and have it be accurately titled.

@shaedrich
Copy link

shaedrich commented Jan 9, 2024

Isn't it "Title Case" and not APA? I mean APA — American Psychological Association. They are using Title Case, that's all. It's pretty common case, and it should not relate to them.

@antonkomarev Laravel already has both a title and headline casing method. This particular method aligns with the APA-defined way of capitalizing specific words in specific positions as a way of titling referenced works.

Even if the result is different, they both result in a title case, one way or the other. One user might prefer the one style, another the other—however, mixing these two (and naming one generic and one specific!) could be quite confusing (especially since the Str helper is already bloated).

I'm open to renaming the method, but it's more than just title casing.

Speaking of being bloated, maybe the Str helper is not the right place, because it is quite generic and should be its own helper (WritingStyle?) instead (not to quote Taylor but "maybe make it a package as its use case is quite specific" then) 🤔

the heading rules changed from version 6 to version 7 where previously not all titles where "Title Case", but some where "Sentence case".

Does that mean, there would need to be a versioning like with the ramsey/uuid package? For example, (new ApaStyle(version: 7))->apply($text) (implements WritingStyle interface)

Could moving towards this as the "new" titleCase be something for 11.x instead?

@hotmeteor Possibly? I think one improvement to this entire use case could also be the addition of configurable "acronyms". Rails allows this, so that you can do Str::title('your CSV'); and have it be accurately titled.

Another possibility than the one mentioned above would be to combine different styling options into their respective methods like this: Str::title($title, style: WritingStyle::APA)

As for the rules, this could even made entirely configurable by adding a new configuration file (config/writing_style.php, similar to larastan) with rules like either

return [
    'rules' => [
        \Apa\TitleCase::class,
        \\ \Apa\SentenceCase::class,
        \\ \ChicagoStyle\SerialComma::class,
    ],
];

or

return [
    'title_case' => Env::get('WRITING_STYLE_TITLE_CASE', WritingStyle::APA->value), // 'apa'
    'serial_comma' => Env::get('WRITING_STYLE_SERIAL_COMMA', false),
];

Optionally, overwrites could be passed to Str::style($text, [ 'serial_comma' => true ]) (or WritingStyle::apply())

@hotmeteor
Copy link
Contributor Author

hotmeteor commented Jan 9, 2024 via email

@hotmeteor hotmeteor deleted the apa-style-title-helper branch January 10, 2024 13:47
@sakcaysoftware
Copy link

It's only works for English. I wonder if we can make it according to the application language? @hotmeteor @taylorotwell

@simonhamp
Copy link
Contributor

Just came to say I think this is a great addition! Thanks for putting in the work @hotmeteor

@hotmeteor
Copy link
Contributor Author

@simonhamp ❤️

@sakcaysoftware I had the same thought.

I think I might pull this all together into one package:

  • different styles
  • support different languages

But I have no idea if and how the different styles apply to different languages, will need contributions.

@sakcaysoftware
Copy link

sakcaysoftware commented Jan 11, 2024

@hotmeteor It's great idea. I can help for Turkish language. I think "title style" is enough for different styles you said. It is gone a be very usefull for Blog posts coming from users because not everyone pays attention to that. Basicaly, every words must be start with camelcase except conjunctions. So we should only put language spesific conjunctions array.

@sakcaysoftware
Copy link

@hotmeteor By conjunctions I mean you defined it as $minorWords in your code

@hotmeteor
Copy link
Contributor Author

@sakcaysoftware

Here's a start of a package... I haven't even run the code 😅 But it should be enough to get it going:

https://github.com/hotmeteor/titles

@hotmeteor
Copy link
Contributor Author

@shaedrich You may be interested in shaping this as well

@sakcaysoftware
Copy link

@hotmeteor you're verrry fast 🚀

@shaedrich
Copy link

shaedrich commented Jan 11, 2024

It's only works for English. I wonder if we can make it according to the application language? @hotmeteor @taylorotwell

I think I might pull this all together into one package:

  • different styles
  • support different languages

But I have no idea if and how the different styles apply to different languages, will need contributions.

This circles back to the config/ file idea from my earlier post

As for the rules, this could even made entirely configurable by adding a new configuration file (config/writing_style.php, similar to larastan) with rules like either

return [
    'rules' => [
        \Apa\TitleCase::class,
        \\ \Apa\SentenceCase::class,
        \\ \ChicagoStyle\SerialComma::class,
    ],
];

or

return [
    'title_case' => Env::get('WRITING_STYLE_TITLE_CASE', WritingStyle::APA->value), // 'apa'
    'serial_comma' => Env::get('WRITING_STYLE_SERIAL_COMMA', false),
];

Optionally, overwrites could be passed to Str::style($text, [ 'serial_comma' => true ]) (or WritingStyle::apply())

However, since talking about i18n/l10n, the better place might be the lang/ directory 🤔

EDIT: Turns out, that's exactly what you did - great 👍🏻

I think I might pull this all together into one package

Here's a start of a package... I haven't even run the code 😅 But it should be enough to get it going:

https://github.com/hotmeteor/titles

@shaedrich You may be interested in shaping this as well

Awesome! I'll definitely check it out later today!

@cmgmyr
Copy link
Contributor

cmgmyr commented Jan 11, 2024

@hotmeteor I built a title formatter a while ago at https://github.com/cmgmyr/title-formatter, which is similar to APA, but besides capitalization, it also considers removing additional spaces and a few other special conditions. Feel free to grab any ideas from it!

@hotmeteor
Copy link
Contributor Author

Legend, thanks @cmgmyr!

@shaedrich
Copy link

An opinionated Str::taylorCase 😎

Sounds custom-taylored to me

renovate bot referenced this pull request in RadioRoster/backend Feb 10, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [laravel/framework](https://laravel.com)
([source](https://togithub.com/laravel/framework)) | `10.33.0` ->
`10.43.0` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/laravel%2fframework/10.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/laravel%2fframework/10.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/laravel%2fframework/10.33.0/10.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/laravel%2fframework/10.33.0/10.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>laravel/framework (laravel/framework)</summary>

###
[`v10.43.0`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10430---2024-01-30)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.42.0...v10.43.0)

- \[10.x] Add storage:unlink command by
[@&#8203;salkovmx](https://togithub.com/salkovmx) in
[https://github.com/laravel/framework/pull/49795](https://togithub.com/laravel/framework/pull/49795)
- \[10.x] Unify `\Illuminate\Log\LogManager` method definition comments
with `\Psr\Logger\Interface` by
[@&#8203;eusonlito](https://togithub.com/eusonlito) in
[https://github.com/laravel/framework/pull/49805](https://togithub.com/laravel/framework/pull/49805)
- \[10.x] class-name string argument for global scopes by
[@&#8203;emargareten](https://togithub.com/emargareten) in
[https://github.com/laravel/framework/pull/49802](https://togithub.com/laravel/framework/pull/49802)
- \[10.x] Add `hasIndex()` and minor Schema enhancements by
[@&#8203;hafezdivandari](https://togithub.com/hafezdivandari) in
[https://github.com/laravel/framework/pull/49796](https://togithub.com/laravel/framework/pull/49796)
- \[10.x] Do not touch `BelongsToMany` relation when using
`withoutTouching` by
[@&#8203;mateusjunges](https://togithub.com/mateusjunges) in
[https://github.com/laravel/framework/pull/49798](https://togithub.com/laravel/framework/pull/49798)
- \[10.x] Check properties on mailables are initialized before sharing
with the view by [@&#8203;j3j5](https://togithub.com/j3j5) in
[https://github.com/laravel/framework/pull/49813](https://togithub.com/laravel/framework/pull/49813)
- \[10.x] Remove duplicate actions/checkout from queue workflow by
[@&#8203;Jubeki](https://togithub.com/Jubeki) in
[https://github.com/laravel/framework/pull/49828](https://togithub.com/laravel/framework/pull/49828)
- \[10.x] Add `insertOrIgnoreUsing` for Eloquent by
[@&#8203;trovster](https://togithub.com/trovster) in
[https://github.com/laravel/framework/pull/49827](https://togithub.com/laravel/framework/pull/49827)
- \[10.x] Make `hasIndex()` Order-sensitive by
[@&#8203;hafezdivandari](https://togithub.com/hafezdivandari) in
[https://github.com/laravel/framework/pull/49840](https://togithub.com/laravel/framework/pull/49840)
- \[10.x] Release action by
[@&#8203;driesvints](https://togithub.com/driesvints) in
[https://github.com/laravel/framework/pull/49838](https://togithub.com/laravel/framework/pull/49838)
- \[10.x] Add MariaDb1060Platform by
[@&#8203;driesvints](https://togithub.com/driesvints) in
[https://github.com/laravel/framework/pull/49848](https://togithub.com/laravel/framework/pull/49848)
- \[10.x] Unified Pivot and Model Doc Block `$guarded` by
[@&#8203;eusonlito](https://togithub.com/eusonlito) in
[https://github.com/laravel/framework/pull/49851](https://togithub.com/laravel/framework/pull/49851)
- \[10.x] Introducing `beforeStartingTransaction` callback and use it in
`LazilyRefreshDatabase` by
[@&#8203;pascalbaljet](https://togithub.com/pascalbaljet) in
[https://github.com/laravel/framework/pull/49853](https://togithub.com/laravel/framework/pull/49853)
- \[10.x] fix password max validation message by
[@&#8203;MrPunyapal](https://togithub.com/MrPunyapal) in
[https://github.com/laravel/framework/pull/49861](https://togithub.com/laravel/framework/pull/49861)
- \[10.x] Fix validation message used for max file size by
[@&#8203;mateusjunges](https://togithub.com/mateusjunges) in
[https://github.com/laravel/framework/pull/49879](https://togithub.com/laravel/framework/pull/49879)
- Update README.md by
[@&#8203;foremtehan](https://togithub.com/foremtehan) in
[https://github.com/laravel/framework/pull/49878](https://togithub.com/laravel/framework/pull/49878)
- \[10.x] Adds
`FormRequest[@&#8203;getRules](https://togithub.com/getRules)()` method
by [@&#8203;cosmastech](https://togithub.com/cosmastech) in
[https://github.com/laravel/framework/pull/49860](https://togithub.com/laravel/framework/pull/49860)
- \[10.x] add addGlobalScopes method by
[@&#8203;emargareten](https://togithub.com/emargareten) in
[https://github.com/laravel/framework/pull/49880](https://togithub.com/laravel/framework/pull/49880)
- \[10.x] Allow brick/math 0.12 by
[@&#8203;LogicSatinn](https://togithub.com/LogicSatinn) in
[https://github.com/laravel/framework/pull/49883](https://togithub.com/laravel/framework/pull/49883)
- \[10.x] Add support for streamed JSON Response by
[@&#8203;pelmered](https://togithub.com/pelmered) in
[https://github.com/laravel/framework/pull/49873](https://togithub.com/laravel/framework/pull/49873)
- \[10.x] Using the native fopen exception in LockableFile.php by
[@&#8203;eusonlito](https://togithub.com/eusonlito) in
[https://github.com/laravel/framework/pull/49895](https://togithub.com/laravel/framework/pull/49895)
- \[10.x] Fix LazilyRefreshDatabase when testing artisan commands by
[@&#8203;iamgergo](https://togithub.com/iamgergo) in
[https://github.com/laravel/framework/pull/49914](https://togithub.com/laravel/framework/pull/49914)
- \[10.x] Fix expressions in with-functions doing aggregates by
[@&#8203;tpetry](https://togithub.com/tpetry) in
[https://github.com/laravel/framework/pull/49912](https://togithub.com/laravel/framework/pull/49912)
- \[10.x] Fix redis tag entries never becoming stale if cache ttl is
past time by [@&#8203;jagers](https://togithub.com/jagers) in
[https://github.com/laravel/framework/pull/49864](https://togithub.com/laravel/framework/pull/49864)
- \[10.x] Fix - The `Translator` may incorrectly report the locale of a
missing translation key by
[@&#8203;VicGUTT](https://togithub.com/VicGUTT) in
[https://github.com/laravel/framework/pull/49900](https://togithub.com/laravel/framework/pull/49900)
- \[10.x] fix Before/After validation rules by
[@&#8203;MrPunyapal](https://togithub.com/MrPunyapal) in
[https://github.com/laravel/framework/pull/49871](https://togithub.com/laravel/framework/pull/49871)

###
[`v10.42.0`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10420---2024-01-23)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.41.0...v10.42.0)

- \[10.x] Switch to hash_equals in `File::hasSameHash()` by
[@&#8203;simonhamp](https://togithub.com/simonhamp) in
[https://github.com/laravel/framework/pull/49721](https://togithub.com/laravel/framework/pull/49721)
- \[10.x] fix Rule::unless for callable $condition by
[@&#8203;dbakan](https://togithub.com/dbakan) in
[https://github.com/laravel/framework/pull/49726](https://togithub.com/laravel/framework/pull/49726)
- \[10.x] Adds JobQueueing event by
[@&#8203;dmason30](https://togithub.com/dmason30) in
[https://github.com/laravel/framework/pull/49722](https://togithub.com/laravel/framework/pull/49722)
- \[10.x] Fix decoding issue in MailLogTransport by
[@&#8203;rojtjo](https://togithub.com/rojtjo) in
[https://github.com/laravel/framework/pull/49727](https://togithub.com/laravel/framework/pull/49727)
- \[10.x] Implement "max" validation rule for passwords by
[@&#8203;angelej](https://togithub.com/angelej) in
[https://github.com/laravel/framework/pull/49739](https://togithub.com/laravel/framework/pull/49739)
- \[10.x] Add multiple channels/routes to AnonymousNotifiable at once by
[@&#8203;iamgergo](https://togithub.com/iamgergo) in
[https://github.com/laravel/framework/pull/49745](https://togithub.com/laravel/framework/pull/49745)
- \[10.x] Sort service providers alphabetically by
[@&#8203;buismaarten](https://togithub.com/buismaarten) in
[https://github.com/laravel/framework/pull/49762](https://togithub.com/laravel/framework/pull/49762)
- \[10.x] Global default options for the http factory by
[@&#8203;timacdonald](https://togithub.com/timacdonald) in
[https://github.com/laravel/framework/pull/49767](https://togithub.com/laravel/framework/pull/49767)
- \[10.x] Only use `Carbon` if accessed from Laravel or also uses
`illuminate/support` by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49772](https://togithub.com/laravel/framework/pull/49772)
- \[10.x] Add `Str::unwrap` by
[@&#8203;stevebauman](https://togithub.com/stevebauman) in
[https://github.com/laravel/framework/pull/49779](https://togithub.com/laravel/framework/pull/49779)
- \[10.x] Allow Uuid and Ulid in Carbon::createFromId() by
[@&#8203;kylekatarnls](https://togithub.com/kylekatarnls) in
[https://github.com/laravel/framework/pull/49783](https://togithub.com/laravel/framework/pull/49783)
- \[10.x] Test Improvements by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49785](https://togithub.com/laravel/framework/pull/49785)

###
[`v10.41.0`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10410---2024-01-16)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.40.0...v10.41.0)

- \[10.x] Add a `threshold` parameter to the `Number::spell` helper by
[@&#8203;caendesilva](https://togithub.com/caendesilva) in
[https://github.com/laravel/framework/pull/49610](https://togithub.com/laravel/framework/pull/49610)
- Revert "\[10.x] Make ComponentAttributeBag Arrayable" by
[@&#8203;luanfreitasdev](https://togithub.com/luanfreitasdev) in
[https://github.com/laravel/framework/pull/49623](https://togithub.com/laravel/framework/pull/49623)
- \[10.x] Fix return value and docblock by
[@&#8203;dwightwatson](https://togithub.com/dwightwatson) in
[https://github.com/laravel/framework/pull/49627](https://togithub.com/laravel/framework/pull/49627)
- \[10.x] Add an option to specify the default path to the models
directory for `php artisan model:prune` by
[@&#8203;dbhynds](https://togithub.com/dbhynds) in
[https://github.com/laravel/framework/pull/49617](https://togithub.com/laravel/framework/pull/49617)
- \[10.x] Allow job chains to be conditionally dispatched by
[@&#8203;fjarrett](https://togithub.com/fjarrett) in
[https://github.com/laravel/framework/pull/49624](https://togithub.com/laravel/framework/pull/49624)
- \[10.x] Add test for existing empty test by
[@&#8203;lioneaglesolutions](https://togithub.com/lioneaglesolutions) in
[https://github.com/laravel/framework/pull/49632](https://togithub.com/laravel/framework/pull/49632)
- \[10.x] Add additional context to Mailable assertion messages by
[@&#8203;lioneaglesolutions](https://togithub.com/lioneaglesolutions) in
[https://github.com/laravel/framework/pull/49631](https://togithub.com/laravel/framework/pull/49631)
- \[10.x] Allow job batches to be conditionally dispatched by
[@&#8203;fjarrett](https://togithub.com/fjarrett) in
[https://github.com/laravel/framework/pull/49639](https://togithub.com/laravel/framework/pull/49639)
- \[10.x] Revert parameter name change by
[@&#8203;timacdonald](https://togithub.com/timacdonald) in
[https://github.com/laravel/framework/pull/49659](https://togithub.com/laravel/framework/pull/49659)
- \[10.x] Printing Name of The Method that Calls
`ensureIntlExtensionIsInstalled` in `Number` class. by
[@&#8203;devajmeireles](https://togithub.com/devajmeireles) in
[https://github.com/laravel/framework/pull/49660](https://togithub.com/laravel/framework/pull/49660)
- \[10.x] Update pagination tailwind.blade.php by
[@&#8203;anasmorahhib](https://togithub.com/anasmorahhib) in
[https://github.com/laravel/framework/pull/49665](https://togithub.com/laravel/framework/pull/49665)
- \[10.x] feat: add base argument to Stringable->toInteger() by
[@&#8203;adamczykpiotr](https://togithub.com/adamczykpiotr) in
[https://github.com/laravel/framework/pull/49670](https://togithub.com/laravel/framework/pull/49670)
- \[10.x]: Remove unused class ShouldBeUnique when make a job by
[@&#8203;Kenini1805](https://togithub.com/Kenini1805) in
[https://github.com/laravel/framework/pull/49669](https://togithub.com/laravel/framework/pull/49669)
- \[10.x] Add tests for Eloquent methods by
[@&#8203;milwad-dev](https://togithub.com/milwad-dev) in
[https://github.com/laravel/framework/pull/49673](https://togithub.com/laravel/framework/pull/49673)
- Implement draft workflow by
[@&#8203;driesvints](https://togithub.com/driesvints) in
[https://github.com/laravel/framework/pull/49683](https://togithub.com/laravel/framework/pull/49683)
- \[10.x] Fixing Types, Word and Returns of `Number`class. by
[@&#8203;devajmeireles](https://togithub.com/devajmeireles) in
[https://github.com/laravel/framework/pull/49681](https://togithub.com/laravel/framework/pull/49681)
- \[10.x] Test Improvements by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49679](https://togithub.com/laravel/framework/pull/49679)
- \[10.x] Officially support floats in trans_choice and
Translator::choice by
[@&#8203;philbates35](https://togithub.com/philbates35) in
[https://github.com/laravel/framework/pull/49693](https://togithub.com/laravel/framework/pull/49693)
- \[10.x] Use static function by
[@&#8203;michaelnabil230](https://togithub.com/michaelnabil230) in
[https://github.com/laravel/framework/pull/49696](https://togithub.com/laravel/framework/pull/49696)
- \[10.x] Revert "\[10.x] Improve numeric comparison for custom casts"
by [@&#8203;driesvints](https://togithub.com/driesvints) in
[https://github.com/laravel/framework/pull/49702](https://togithub.com/laravel/framework/pull/49702)
- \[10.x] Add exit code to queue:clear, and queue:forget commands by
[@&#8203;bytestream](https://togithub.com/bytestream) in
[https://github.com/laravel/framework/pull/49707](https://togithub.com/laravel/framework/pull/49707)
- \[10.x] Allow StreamInterface as raw HTTP Client body by
[@&#8203;janolivermr](https://togithub.com/janolivermr) in
[https://github.com/laravel/framework/pull/49705](https://togithub.com/laravel/framework/pull/49705)

###
[`v10.40.0`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10400---2024-01-09)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.39.0...v10.40.0)

- \[10.x] `Model::preventAccessingMissingAttributes()` raises exception
for enums & primitive castable attributes that were not retrieved by
[@&#8203;cosmastech](https://togithub.com/cosmastech) in
[https://github.com/laravel/framework/pull/49480](https://togithub.com/laravel/framework/pull/49480)
- \[10.x] Include system versioned tables for MariaDB by
[@&#8203;hafezdivandari](https://togithub.com/hafezdivandari) in
[https://github.com/laravel/framework/pull/49509](https://togithub.com/laravel/framework/pull/49509)
- \[10.x] Fixes the `Arr::dot()` method to properly handle indexes array
by [@&#8203;kayw-geek](https://togithub.com/kayw-geek) in
[https://github.com/laravel/framework/pull/49507](https://togithub.com/laravel/framework/pull/49507)
- \[10.x] Expand Gate::allows & Gate::denies signature by
[@&#8203;antonkomarev](https://togithub.com/antonkomarev) in
[https://github.com/laravel/framework/pull/49503](https://togithub.com/laravel/framework/pull/49503)
- \[10.x] Improve numeric comparison for custom casts by
[@&#8203;imahmood](https://togithub.com/imahmood) in
[https://github.com/laravel/framework/pull/49504](https://togithub.com/laravel/framework/pull/49504)
- \[10.x] Add session except method by
[@&#8203;xurshudyan](https://togithub.com/xurshudyan) in
[https://github.com/laravel/framework/pull/49520](https://togithub.com/laravel/framework/pull/49520)
- \[10.x] Add `Number::clamp` by
[@&#8203;jbrooksuk](https://togithub.com/jbrooksuk) in
[https://github.com/laravel/framework/pull/49512](https://togithub.com/laravel/framework/pull/49512)
- \[10.x] Fix Schedule test by
[@&#8203;michaelnabil230](https://togithub.com/michaelnabil230) in
[https://github.com/laravel/framework/pull/49538](https://togithub.com/laravel/framework/pull/49538)
- \[10.x] Use correct format of date by
[@&#8203;buismaarten](https://togithub.com/buismaarten) in
[https://github.com/laravel/framework/pull/49541](https://togithub.com/laravel/framework/pull/49541)
- \[10.x] Clean Arr by
[@&#8203;michaelnabil230](https://togithub.com/michaelnabil230) in
[https://github.com/laravel/framework/pull/49530](https://togithub.com/laravel/framework/pull/49530)
- \[10.x] Make ComponentAttributeBag Arrayable by
[@&#8203;iamgergo](https://togithub.com/iamgergo) in
[https://github.com/laravel/framework/pull/49524](https://togithub.com/laravel/framework/pull/49524)
- \[10.x] Fix whenAggregated when default is not specified by
[@&#8203;lovePizza](https://togithub.com/lovePizza) in
[https://github.com/laravel/framework/pull/49521](https://togithub.com/laravel/framework/pull/49521)
- \[10.x] Update AsArrayObject.php to use ARRAY_AS_PROPS flag by
[@&#8203;pintend](https://togithub.com/pintend) in
[https://github.com/laravel/framework/pull/49534](https://togithub.com/laravel/framework/pull/49534)
- \[10.x] Remove invalid `RedisCluster::client()` call by
[@&#8203;tillkruss](https://togithub.com/tillkruss) in
[https://github.com/laravel/framework/pull/49560](https://togithub.com/laravel/framework/pull/49560)
- \[10.x] Remove unused code from `PhpRedisConnector` by
[@&#8203;tillkruss](https://togithub.com/tillkruss) in
[https://github.com/laravel/framework/pull/49559](https://togithub.com/laravel/framework/pull/49559)
- \[10.x] Flush about command during test runs by
[@&#8203;timacdonald](https://togithub.com/timacdonald) in
[https://github.com/laravel/framework/pull/49557](https://togithub.com/laravel/framework/pull/49557)
- \[10.x] Fix parentOfParameter method by
[@&#8203;iamgergo](https://togithub.com/iamgergo) in
[https://github.com/laravel/framework/pull/49548](https://togithub.com/laravel/framework/pull/49548)
- \[10.x] Make the Schema Builder macroable by
[@&#8203;kevinb1989](https://togithub.com/kevinb1989) in
[https://github.com/laravel/framework/pull/49547](https://togithub.com/laravel/framework/pull/49547)
- \[10.x] Remove unused code from tests by
[@&#8203;imahmood](https://togithub.com/imahmood) in
[https://github.com/laravel/framework/pull/49566](https://togithub.com/laravel/framework/pull/49566)
- \[10.x] Update Query/Builder.php $columns typehint by
[@&#8203;Grldk](https://togithub.com/Grldk) in
[https://github.com/laravel/framework/pull/49563](https://togithub.com/laravel/framework/pull/49563)
- \[10.x] Add assertViewEmpty to TestView by
[@&#8203;dwightwatson](https://togithub.com/dwightwatson) in
[https://github.com/laravel/framework/pull/49558](https://togithub.com/laravel/framework/pull/49558)
- \[10.x] Update tailwind.blade.php for dark mode by
[@&#8203;sabinchacko03](https://togithub.com/sabinchacko03) in
[https://github.com/laravel/framework/pull/49515](https://togithub.com/laravel/framework/pull/49515)
- \[10.x] Fix deprecation with null value in cache FileStore by
[@&#8203;driesvints](https://togithub.com/driesvints) in
[https://github.com/laravel/framework/pull/49578](https://togithub.com/laravel/framework/pull/49578)
- \[10.x] Allow Vite asset path customization by
[@&#8203;timacdonald](https://togithub.com/timacdonald) in
[https://github.com/laravel/framework/pull/49437](https://togithub.com/laravel/framework/pull/49437)
- \[10.x] Type hinting of the second parameter of date- and time-related
`where*()` methods of `Illuminate\Database\Query\Builder` by
[@&#8203;lorenzolosa](https://togithub.com/lorenzolosa) in
[https://github.com/laravel/framework/pull/49599](https://togithub.com/laravel/framework/pull/49599)
- \[10.x] Fix Stringable::convertCase() return type by
[@&#8203;vaites](https://togithub.com/vaites) in
[https://github.com/laravel/framework/pull/49590](https://togithub.com/laravel/framework/pull/49590)
- Allow \Blade::stringable() to be called on native Iterables by
[@&#8203;tsjason](https://togithub.com/tsjason) in
[https://github.com/laravel/framework/pull/49591](https://togithub.com/laravel/framework/pull/49591)
- \[10.x] Refactor time handling using `InteractsWithTime` trait method
by [@&#8203;xurshudyan](https://togithub.com/xurshudyan) in
[https://github.com/laravel/framework/pull/49601](https://togithub.com/laravel/framework/pull/49601)
- \[10.x] Add `assertCount` test helper by
[@&#8203;xurshudyan](https://togithub.com/xurshudyan) in
[https://github.com/laravel/framework/pull/49609](https://togithub.com/laravel/framework/pull/49609)
- \[10.x] Ability to establish connection without using Config
Repository by [@&#8203;deleugpn](https://togithub.com/deleugpn) in
[https://github.com/laravel/framework/pull/49527](https://togithub.com/laravel/framework/pull/49527)
- \[10.x] Add APA style title helper by
[@&#8203;hotmeteor](https://togithub.com/hotmeteor) in
[https://github.com/laravel/framework/pull/49572](https://togithub.com/laravel/framework/pull/49572)
- \[10.x] Fix usage of alternatives in error output by
[@&#8203;Mrjavaci](https://togithub.com/Mrjavaci) in
[https://github.com/laravel/framework/pull/49614](https://togithub.com/laravel/framework/pull/49614)
- \[10.x] Use locks for queue job popping for PlanetScale's
MySQL-compatible Vitess 19 engine by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49561](https://togithub.com/laravel/framework/pull/49561)

###
[`v10.39.0`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10390---2023-12-27)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.38.2...v10.39.0)

- \[9.x] Support for phpredis 6.0.0 by
[@&#8203;MichalHubatka](https://togithub.com/MichalHubatka) in
[https://github.com/laravel/framework/pull/48380](https://togithub.com/laravel/framework/pull/48380)
- \[10.x] Dynamic `maxTries` for queued jobs by
[@&#8203;mechelon](https://togithub.com/mechelon) in
[https://github.com/laravel/framework/pull/49473](https://togithub.com/laravel/framework/pull/49473)
- \[10.x] Avoid TypeError when using json validation rule when PHP < 8.3
by [@&#8203;Xint0](https://togithub.com/Xint0) in
[https://github.com/laravel/framework/pull/49474](https://togithub.com/laravel/framework/pull/49474)
- \[10.x] Fix use statement compilation in Blade templates by
[@&#8203;MrPunyapal](https://togithub.com/MrPunyapal) in
[https://github.com/laravel/framework/pull/49479](https://togithub.com/laravel/framework/pull/49479)
- \[10.x] Allow testing prompts validation by
[@&#8203;cerbero90](https://togithub.com/cerbero90) in
[https://github.com/laravel/framework/pull/49447](https://togithub.com/laravel/framework/pull/49447)
- \[10.x] Add 'Roundrobin' Symfony mailer transport driver by
[@&#8203;me-shaon](https://togithub.com/me-shaon) in
[https://github.com/laravel/framework/pull/49435](https://togithub.com/laravel/framework/pull/49435)

###
[`v10.38.2`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10382---2023-12-22)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.38.1...v10.38.2)

- \[10.x] Add `conflict` for `doctrine/dbal:^4.0` to
`illuminate/database` by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49456](https://togithub.com/laravel/framework/pull/49456)
- \[10.x] Simplify Arr::dot by
[@&#8203;bastien-phi](https://togithub.com/bastien-phi) in
[https://github.com/laravel/framework/pull/49461](https://togithub.com/laravel/framework/pull/49461)
- \[10.x] Illuminate\Filesystem\join_paths(): Argument
[#&#8203;2](https://togithub.com/laravel/framework/issues/2) must be of
type string, null given by
[@&#8203;tylernathanreed](https://togithub.com/tylernathanreed) in
[https://github.com/laravel/framework/pull/49467](https://togithub.com/laravel/framework/pull/49467)
- \[10.x] Allow deprecation logging in tests by
[@&#8203;timacdonald](https://togithub.com/timacdonald) in
[https://github.com/laravel/framework/pull/49457](https://togithub.com/laravel/framework/pull/49457)
- \[10.x] Fix missing Validation rules not working with nested array by
[@&#8203;aabadawy](https://togithub.com/aabadawy) in
[https://github.com/laravel/framework/pull/49449](https://togithub.com/laravel/framework/pull/49449)

###
[`v10.38.1`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10381---2023-12-20)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.38.0...v10.38.1)

- \[10.x] Adds support for parse callbacks from anonymous classes by
[@&#8203;nunomaduro](https://togithub.com/nunomaduro) in
[https://github.com/laravel/framework/pull/49432](https://togithub.com/laravel/framework/pull/49432)
- Revert "\[10.x] Drop the primary key if it exists when adding a new
primary key" by
[@&#8203;taylorotwell](https://togithub.com/taylorotwell) in
[https://github.com/laravel/framework/pull/49448](https://togithub.com/laravel/framework/pull/49448)
- \[10.x] Fix installing DBAL on a fresh app by
[@&#8203;timacdonald](https://togithub.com/timacdonald) in
[https://github.com/laravel/framework/pull/49438](https://togithub.com/laravel/framework/pull/49438)
- \[10.x] Add method to create request by
[@&#8203;dododedodonl](https://togithub.com/dododedodonl) in
[https://github.com/laravel/framework/pull/49446](https://togithub.com/laravel/framework/pull/49446)
- \[10.x] Move `Illuminate\Foundation\Application::joinPaths()` to
`Illuminate\Filesystem\join_paths()` by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49433](https://togithub.com/laravel/framework/pull/49433)

###
[`v10.38.0`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10380---2023-12-19)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.37.3...v10.38.0)

- \[10.x] Add routeRoute method to test request by
[@&#8203;fragkp](https://togithub.com/fragkp) in
[https://github.com/laravel/framework/pull/49366](https://togithub.com/laravel/framework/pull/49366)
- \[10.x] Update import & typo by
[@&#8203;chu121su12](https://togithub.com/chu121su12) in
[https://github.com/laravel/framework/pull/49370](https://togithub.com/laravel/framework/pull/49370)
- \[10.x] Show default `false` values in `db:table` command by
[@&#8203;PerryvanderMeer](https://togithub.com/PerryvanderMeer) in
[https://github.com/laravel/framework/pull/49379](https://togithub.com/laravel/framework/pull/49379)
- \[10.x] Fix primary key creation for MySQL with
`sql_require_primary_key` enabled by
[@&#8203;mtawil](https://togithub.com/mtawil) in
[https://github.com/laravel/framework/pull/49374](https://togithub.com/laravel/framework/pull/49374)
- \[10.x] Add `charset` and `collation` method to `Blueprint` by
[@&#8203;gcazin](https://togithub.com/gcazin) in
[https://github.com/laravel/framework/pull/49396](https://togithub.com/laravel/framework/pull/49396)
- Fixes second run of `about` command on Octane by
[@&#8203;josecl](https://togithub.com/josecl) in
[https://github.com/laravel/framework/pull/49387](https://togithub.com/laravel/framework/pull/49387)
- \[10.x] Fix bug in ArrayLock getCurrentOwner by
[@&#8203;Joostb](https://togithub.com/Joostb) in
[https://github.com/laravel/framework/pull/49393](https://togithub.com/laravel/framework/pull/49393)
- \[10.x] Dynamo Batch Repository - Match Default Horizon Sort by
[@&#8203;evan-burrell](https://togithub.com/evan-burrell) in
[https://github.com/laravel/framework/pull/49391](https://togithub.com/laravel/framework/pull/49391)
- \[10.x] Add Blade `[@session](https://togithub.com/session)` Directive
by [@&#8203;jrd-lewis](https://togithub.com/jrd-lewis) in
[https://github.com/laravel/framework/pull/49339](https://togithub.com/laravel/framework/pull/49339)
- \[10.x] Improve `Arr::dot` performance by
[@&#8203;bastien-phi](https://togithub.com/bastien-phi) in
[https://github.com/laravel/framework/pull/49386](https://togithub.com/laravel/framework/pull/49386)
- \[10.x] Fix assertStatus() parameter order by
[@&#8203;marcovo](https://togithub.com/marcovo) in
[https://github.com/laravel/framework/pull/49404](https://togithub.com/laravel/framework/pull/49404)
- \[10.x] Only set `defaultCasters` if not previously set by
[@&#8203;inxilpro](https://togithub.com/inxilpro) in
[https://github.com/laravel/framework/pull/49402](https://togithub.com/laravel/framework/pull/49402)
- \[10.x] Fixes parameter type in `ManagesFrequencies` by
[@&#8203;Lucas-Schmukas](https://togithub.com/Lucas-Schmukas) in
[https://github.com/laravel/framework/pull/49399](https://togithub.com/laravel/framework/pull/49399)
- \[10.x] Add SQLite support for `whereJsonContains` method by
[@&#8203;danieleambrosino](https://togithub.com/danieleambrosino) in
[https://github.com/laravel/framework/pull/49401](https://togithub.com/laravel/framework/pull/49401)
- \[10x.] Use native json_validate in Validation by
[@&#8203;gtjamesa](https://togithub.com/gtjamesa) in
[https://github.com/laravel/framework/pull/49413](https://togithub.com/laravel/framework/pull/49413)
- \[10.x] Introducing `isEmpty` and `isNotEmpty` to
`ComponentAttributeBag` by
[@&#8203;devajmeireles](https://togithub.com/devajmeireles) in
[https://github.com/laravel/framework/pull/49408](https://togithub.com/laravel/framework/pull/49408)
- \[10.x] Drop the primary key if it exists when adding a new primary
key by [@&#8203;KieranFYI](https://togithub.com/KieranFYI) in
[https://github.com/laravel/framework/pull/49392](https://togithub.com/laravel/framework/pull/49392)
- \[10.x] Improve schema builder `getColumns()` method by
[@&#8203;hafezdivandari](https://togithub.com/hafezdivandari) in
[https://github.com/laravel/framework/pull/49416](https://togithub.com/laravel/framework/pull/49416)
- \[10.x] Add `MailMessage` helpers for plain text email notifications
by [@&#8203;onlime](https://togithub.com/onlime) in
[https://github.com/laravel/framework/pull/49407](https://togithub.com/laravel/framework/pull/49407)
- \[10.x] Test Improvements by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49426](https://togithub.com/laravel/framework/pull/49426)
- \[10.x] Add Conditionable to Pipeline by
[@&#8203;shane-zeng](https://togithub.com/shane-zeng) in
[https://github.com/laravel/framework/pull/49429](https://togithub.com/laravel/framework/pull/49429)

###
[`v10.37.3`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10373---2023-12-13)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.37.2...v10.37.3)

- Flush middleware callbacks by
[@&#8203;taylorotwell](https://togithub.com/taylorotwell) in
laravel/framework@bb49a72

###
[`v10.37.2`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10372---2023-12-13)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.37.1...v10.37.2)

- Ability to test chained job via closure by
[@&#8203;jasonmccreary](https://togithub.com/jasonmccreary) in
[https://github.com/laravel/framework/pull/49337](https://togithub.com/laravel/framework/pull/49337)
- \[10.x] Add `progress` option to `PendingBatch` by
[@&#8203;orkhanahmadov](https://togithub.com/orkhanahmadov) in
[https://github.com/laravel/framework/pull/49273](https://togithub.com/laravel/framework/pull/49273)
- \[10.x] Test Improvements by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49338](https://togithub.com/laravel/framework/pull/49338)
- \[10.x] Avoid using `rescue()` in standalone `illuminate/database`
component. by [@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49355](https://togithub.com/laravel/framework/pull/49355)
- \[10.x] Exclude extension types on PostgreSQL when retrieving types by
[@&#8203;hafezdivandari](https://togithub.com/hafezdivandari) in
[https://github.com/laravel/framework/pull/49358](https://togithub.com/laravel/framework/pull/49358)
- \[10.x] Revert "\[10.x] Disconnecting the database connection after
testing" by [@&#8203;driesvints](https://togithub.com/driesvints) in
[https://github.com/laravel/framework/pull/49361](https://togithub.com/laravel/framework/pull/49361)

###
[`v10.37.1`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10371---2023-12-12)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.37.0...v10.37.1)

- \[10.x] Disconnecting the database connection after testing by
[@&#8203;KentarouTakeda](https://togithub.com/KentarouTakeda) in
[https://github.com/laravel/framework/pull/49327](https://togithub.com/laravel/framework/pull/49327)
- \[10.x] Get user-defined types on PostgreSQL by
[@&#8203;hafezdivandari](https://togithub.com/hafezdivandari) in
[https://github.com/laravel/framework/pull/49303](https://togithub.com/laravel/framework/pull/49303)

###
[`v10.37.0`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10370---2023-12-12)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.36.0...v10.37.0)

- \[10.x] Add `engine` method to `Blueprint` by
[@&#8203;jbrooksuk](https://togithub.com/jbrooksuk) in
[https://github.com/laravel/framework/pull/49250](https://togithub.com/laravel/framework/pull/49250)
- \[10.x] Use translator from validator in `Can` and `Enum` rules by
[@&#8203;fancyweb](https://togithub.com/fancyweb) in
[https://github.com/laravel/framework/pull/49251](https://togithub.com/laravel/framework/pull/49251)
- \[10.x] Get indexes of a table by
[@&#8203;hafezdivandari](https://togithub.com/hafezdivandari) in
[https://github.com/laravel/framework/pull/49204](https://togithub.com/laravel/framework/pull/49204)
- \[10.x] Filesystem : can lock file on append of content by
[@&#8203;StephaneBour](https://togithub.com/StephaneBour) in
[https://github.com/laravel/framework/pull/49262](https://togithub.com/laravel/framework/pull/49262)
- \[10.x] Test Improvements by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49266](https://togithub.com/laravel/framework/pull/49266)
- \[10.x] Fixes generating facades documentation shouldn't be affected
by `php-psr` extension by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49268](https://togithub.com/laravel/framework/pull/49268)
- \[10.x] Fixes `AboutCommand::format()` docblock by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49274](https://togithub.com/laravel/framework/pull/49274)
- \[10.x] `Route::getController()` should return `null` when the
accessing closure based route by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49269](https://togithub.com/laravel/framework/pull/49269)
- \[10.x] Add "noActionOnUpdate" method in
Illuminate/Database/Schema/ForeignKeyDefinition by
[@&#8203;hrsa](https://togithub.com/hrsa) in
[https://github.com/laravel/framework/pull/49297](https://togithub.com/laravel/framework/pull/49297)
- \[10.x] Fixing number helper for floating 0.0 by
[@&#8203;mr-punyapal](https://togithub.com/mr-punyapal) in
[https://github.com/laravel/framework/pull/49277](https://togithub.com/laravel/framework/pull/49277)
- \[10.x] Allow checking if lock succesfully restored by
[@&#8203;Joostb](https://togithub.com/Joostb) in
[https://github.com/laravel/framework/pull/49272](https://togithub.com/laravel/framework/pull/49272)
- \[10.x] Enable DynamoDB as a backend for Job Batches by
[@&#8203;khepin](https://togithub.com/khepin) in
[https://github.com/laravel/framework/pull/49169](https://togithub.com/laravel/framework/pull/49169)
- \[10.x] Removed deprecated and not used argument by
[@&#8203;Muetze42](https://togithub.com/Muetze42) in
[https://github.com/laravel/framework/pull/49304](https://togithub.com/laravel/framework/pull/49304)
- \[10.x] Add Conditionable to Batched and Chained jobs by
[@&#8203;bretto36](https://togithub.com/bretto36) in
[https://github.com/laravel/framework/pull/49310](https://togithub.com/laravel/framework/pull/49310)
- \[10.x] Include partitioned tables on PostgreSQL when retrieving
tables by [@&#8203;hafezdivandari](https://togithub.com/hafezdivandari)
in
[https://github.com/laravel/framework/pull/49326](https://togithub.com/laravel/framework/pull/49326)
- \[10.x] Allow to pass `Arrayable` or `Stringble` in rules `In` and
`NotIn` by
[@&#8203;michaelnabil230](https://togithub.com/michaelnabil230) in
[https://github.com/laravel/framework/pull/49055](https://togithub.com/laravel/framework/pull/49055)
- \[10.x] Display error message if json_encode() fails by
[@&#8203;aimeos](https://togithub.com/aimeos) in
[https://github.com/laravel/framework/pull/48856](https://togithub.com/laravel/framework/pull/48856)
- \[10.x] Allow error list per field by
[@&#8203;timacdonald](https://togithub.com/timacdonald) in
[https://github.com/laravel/framework/pull/49309](https://togithub.com/laravel/framework/pull/49309)
- \[10.x] Get foreign keys of a table by
[@&#8203;hafezdivandari](https://togithub.com/hafezdivandari) in
[https://github.com/laravel/framework/pull/49264](https://togithub.com/laravel/framework/pull/49264)
- \[10.x] PHPStan Improvements by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49343](https://togithub.com/laravel/framework/pull/49343)
- \[10.x] Handle missing translations: more robust handling of callback
return value by [@&#8203;DeanWunder](https://togithub.com/DeanWunder) in
[https://github.com/laravel/framework/pull/49341](https://togithub.com/laravel/framework/pull/49341)

###
[`v10.36.0`](https://togithub.com/laravel/framework/compare/v10.35.0...v10.36.0)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.35.0...v10.36.0)

###
[`v10.35.0`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10350---2023-12-05)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.34.2...v10.35.0)

- \[10.x] Add `Conditionable` trait to `AssertableJson` by
[@&#8203;khalilst](https://togithub.com/khalilst) in
[https://github.com/laravel/framework/pull/49172](https://togithub.com/laravel/framework/pull/49172)
- \[10.x] Add `--with-secret` option to Artisan `down` command. by
[@&#8203;jj15asmr](https://togithub.com/jj15asmr) in
[https://github.com/laravel/framework/pull/49171](https://togithub.com/laravel/framework/pull/49171)
- \[10.x] Add support for `Number::summarize` by
[@&#8203;jcsoriano](https://togithub.com/jcsoriano) in
[https://github.com/laravel/framework/pull/49197](https://togithub.com/laravel/framework/pull/49197)
- \[10.x] Add Blade [@&#8203;use](https://togithub.com/use) directive by
[@&#8203;simonhamp](https://togithub.com/simonhamp) in
[https://github.com/laravel/framework/pull/49179](https://togithub.com/laravel/framework/pull/49179)
- \[10.x] Fixes retrying failed jobs causes PHP memory exhaustion errors
when dealing with thousands of failed jobs by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49186](https://togithub.com/laravel/framework/pull/49186)
- \[10.x] Add "substituteImplicitBindingsUsing" method to router by
[@&#8203;calebporzio](https://togithub.com/calebporzio) in
[https://github.com/laravel/framework/pull/49200](https://togithub.com/laravel/framework/pull/49200)
- \[10.x] Cookies Having Independent Partitioned State (CHIPS) by
[@&#8203;fabricecw](https://togithub.com/fabricecw) in
[https://github.com/laravel/framework/pull/48745](https://togithub.com/laravel/framework/pull/48745)
- \[10.x] Update InteractsWithDictionary.php to use base
InvalidArgumentException by [@&#8203;Grldk](https://togithub.com/Grldk)
in
[https://github.com/laravel/framework/pull/49209](https://togithub.com/laravel/framework/pull/49209)
- \[10.x] Fix docblock for wasRecentlyCreated by
[@&#8203;stancl](https://togithub.com/stancl) in
[https://github.com/laravel/framework/pull/49208](https://togithub.com/laravel/framework/pull/49208)
- \[10.x] Fix loss of attributes after calling child component by
[@&#8203;rojtjo](https://togithub.com/rojtjo) in
[https://github.com/laravel/framework/pull/49216](https://togithub.com/laravel/framework/pull/49216)
- \[10.x] Fix typo in PHPDoc comment by
[@&#8203;caendesilva](https://togithub.com/caendesilva) in
[https://github.com/laravel/framework/pull/49234](https://togithub.com/laravel/framework/pull/49234)
- \[10.x] Determine if the given view exists. by
[@&#8203;hafezdivandari](https://togithub.com/hafezdivandari) in
[https://github.com/laravel/framework/pull/49231](https://togithub.com/laravel/framework/pull/49231)

###
[`v10.34.2`](https://togithub.com/laravel/framework/compare/v10.34.1...v10.34.2)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.34.1...v10.34.2)

###
[`v10.34.1`](https://togithub.com/laravel/framework/compare/v10.34.0...v10.34.1)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.34.0...v10.34.1)

###
[`v10.34.0`](https://togithub.com/laravel/framework/blob/HEAD/CHANGELOG.md#v10340---2023-11-28)

[Compare
Source](https://togithub.com/laravel/framework/compare/v10.33.0...v10.34.0)

- \[10.x] Fix `hex_color` validation rule by
[@&#8203;apih](https://togithub.com/apih) in
[https://github.com/laravel/framework/pull/49070](https://togithub.com/laravel/framework/pull/49070)
- \[10.x] Prevent passing null to base64\_decode in Encrypter by
[@&#8203;robtesch](https://togithub.com/robtesch) in
[https://github.com/laravel/framework/pull/49071](https://togithub.com/laravel/framework/pull/49071)
- \[10.x] Alias Number class by
[@&#8203;ziadoz](https://togithub.com/ziadoz) in
[https://github.com/laravel/framework/pull/49073](https://togithub.com/laravel/framework/pull/49073)
- \[10.x] Added File Validation `extensions` by
[@&#8203;eusonlito](https://togithub.com/eusonlito) in
[https://github.com/laravel/framework/pull/49082](https://togithub.com/laravel/framework/pull/49082)
- \[10.x] Add [@&#8203;throws](https://togithub.com/throws) in
doc-blocks by
[@&#8203;imanghafoori1](https://togithub.com/imanghafoori1) in
[https://github.com/laravel/framework/pull/49091](https://togithub.com/laravel/framework/pull/49091)
- \[10.x] Update docblocks for consistency by
[@&#8203;dwightwatson](https://togithub.com/dwightwatson) in
[https://github.com/laravel/framework/pull/49092](https://togithub.com/laravel/framework/pull/49092)
- \[10.x] Throw exception when trying to initiate `Collection` using
`WeakMap` by [@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49095](https://togithub.com/laravel/framework/pull/49095)
- \[10.x] Only stage committed transactions by
[@&#8203;hansnn](https://togithub.com/hansnn) in
[https://github.com/laravel/framework/pull/49093](https://togithub.com/laravel/framework/pull/49093)
- Better transaction manager object design by
[@&#8203;taylorotwell](https://togithub.com/taylorotwell) in
[https://github.com/laravel/framework/pull/49103](https://togithub.com/laravel/framework/pull/49103)
- \[10.x] use php 8.3 `mb_str_pad()` for `Str::pad*` by
[@&#8203;amacado](https://togithub.com/amacado) in
[https://github.com/laravel/framework/pull/49108](https://togithub.com/laravel/framework/pull/49108)
- \[10.x] Add Conditionable to TestResponse by
[@&#8203;nshiro](https://togithub.com/nshiro) in
[https://github.com/laravel/framework/pull/49112](https://togithub.com/laravel/framework/pull/49112)
- \[10.x] Allow multiple types in Collection's `ensure` method by
[@&#8203;ash-jc-allen](https://togithub.com/ash-jc-allen) in
[https://github.com/laravel/framework/pull/49127](https://togithub.com/laravel/framework/pull/49127)
- \[10.x] Fix middleware "SetCacheHeaders" with download responses by
[@&#8203;clementbirkle](https://togithub.com/clementbirkle) in
[https://github.com/laravel/framework/pull/49138](https://togithub.com/laravel/framework/pull/49138)
- \[10.x]\[Cache] Fix handling of `false` values in apc by
[@&#8203;simivar](https://togithub.com/simivar) in
[https://github.com/laravel/framework/pull/49145](https://togithub.com/laravel/framework/pull/49145)
- \[10.x] Reset numeric rules after each attribute's validation by
[@&#8203;apih](https://togithub.com/apih) in
[https://github.com/laravel/framework/pull/49142](https://togithub.com/laravel/framework/pull/49142)
- \[10.x] Extract dirty getter for `performUpdate` by
[@&#8203;taka-oyama](https://togithub.com/taka-oyama) in
[https://github.com/laravel/framework/pull/49141](https://togithub.com/laravel/framework/pull/49141)
- \[10.x] `ensure`: Resolve `$itemType` outside the closure by
[@&#8203;lucasmichot](https://togithub.com/lucasmichot) in
[https://github.com/laravel/framework/pull/49137](https://togithub.com/laravel/framework/pull/49137)
- Allow "missing" method to be used on route groups by
[@&#8203;redelschaap](https://togithub.com/redelschaap) in
[https://github.com/laravel/framework/pull/49144](https://togithub.com/laravel/framework/pull/49144)
- \[10.x] Get tables and views info by
[@&#8203;hafezdivandari](https://togithub.com/hafezdivandari) in
[https://github.com/laravel/framework/pull/49020](https://togithub.com/laravel/framework/pull/49020)
- \[10.x] Fix `MorphTo::associate()` PHPDoc parameter by
[@&#8203;devfrey](https://togithub.com/devfrey) in
[https://github.com/laravel/framework/pull/49162](https://togithub.com/laravel/framework/pull/49162)
- \[10.x] Make test error messages more multi-byte readable by
[@&#8203;nshiro](https://togithub.com/nshiro) in
[https://github.com/laravel/framework/pull/49160](https://togithub.com/laravel/framework/pull/49160)
- \[10.x] Generate a unique hash for anonymous components by
[@&#8203;billyonecan](https://togithub.com/billyonecan) in
[https://github.com/laravel/framework/pull/49156](https://togithub.com/laravel/framework/pull/49156)
- \[10.x] Improves output when using `php artisan about --json` by
[@&#8203;crynobone](https://togithub.com/crynobone) in
[https://github.com/laravel/framework/pull/49154](https://togithub.com/laravel/framework/pull/49154)
- \[10.x] Make fake instance inherit from `Vite` when using
`withoutVite()` by
[@&#8203;orkhanahmadov](https://togithub.com/orkhanahmadov) in
[https://github.com/laravel/framework/pull/49150](https://togithub.com/laravel/framework/pull/49150)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/RadioRoster/backend).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTUzLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@falconsmilie
Copy link

@hotmeteor Possibly? I think one improvement to this entire use case could also be the addition of configurable "acronyms". Rails allows this, so that you can do Str::title('your CSV'); and have it be accurately titled.

APA helper is a fantastic addition to Laravel <3

The lower casing of acronyms is the only pain point we're experiencing while using it.

@caendesilva
Copy link
Contributor

Love this! I had previously created a superset of the title helper, and this is even better!

@shaedrich
Copy link

@sakcaysoftware

Here's a start of a package... I haven't even run the code 😅 But it should be enough to get it going:

https://github.com/hotmeteor/titles

@shaedrich You may be interested in shaping this as well

Too bad, this never went beyond creation :/

@shaedrich
Copy link

shaedrich commented Jul 21, 2024

Too bad, this never went beyond creation :/

I'm happy to inform you that I talked to @hotmeteor and he informed me that he doesn't think he's pursuing this any further, so I will continue the hotmeteor/titles project under my https://github.com/shaedrich/titles

Thanks, Adam, for bringing this to life! 👍🏻

I'm currently in the process of migrating everything. Contributions are very welcome, especially in the current planning stage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.