laravel / ideas

Issues board used for Laravel internals discussions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[9.x] Rename firstOrNew() to firstOrMake()

caugner opened this issue · comments

Background

There are four classes that have a firstOrNew() method:

Problem

I noticed that the naming of this method is confusing to junior devs, because it is not consistent with ::make() (which exists both on Builder and HasOneOrMany) and ::create() on the model itself. Therefore it is not obvious what ->firstOrNew() really does.

Solution

I propose to rename firstOrNew() to firstOrMake() to be consistent with the corresponding model methods. Since this is a breaking change, the transition could be made smoother by adding firstOrMake() and deprecating firstOrNew() in 9.x, and only dropping firstOrNew() in 10.x.

PS: Maybe there's an import difference between firstOrNew() and make() that justifies the different naming.