laravel-mysql-spatial
laravel-mysql-spatial copied to clipboard
Use Eloquent builder methods instead of scopes
This PR moves the whole scopes to a dedicated builder (which already exists).
This approach presented introduced in the "Dedicated query builders for Eloquent models" blogpost.
@grimzy What do you think about this approach? Do you notice any drawbacks?
Personally, in my own company, we're using only dedicated model builders and there's a lot of benefit from it. I thought it could be great to have real IDE autocomplete for spatial methods:
namespace App\Builders;
use Grimzy\LaravelMysqlSpatial\Eloquent\Builder as SpatialBuilder;
use Grimzy\LaravelMysqlSpatial\Types\Point;
class UserBuilder extends SpatialBuilder
{
public function inRange(Point $point, int $radius)
{
$this->distanceSphereValue('location', $point)->having('distance', '<', $radius);
return $this;
}
}
@grimzy WDYT?