nurmuhammet/laravel-helpers

Laravel Helpers that make life a better place to live by saving time, energy & nerves

4.0.0 2023-04-14 10:56 UTC

This package is auto-updated.

Last update: 2024-05-07 08:32:22 UTC


README

This package just contains helpers to make development enjoyable, easy and of course to make life a better place to live

Helper functions

# Generate random hex color 
randomHex(): string
# Example:
randomHex() // #FDA01E 

# Round number
round_up(int|float $number, int $precision = 2): float
# Example:
round_up(2) # 2.0
round_up(2.3) # 2.3
round_up(2.33) # 2.4
round_up(2.335) # 2.4
round_up(2.335, 2) # 2.4
round_up(2.335, 4) # 2.335
round_up(2.335, 3) # 2.34

# Return current route name
currentRoute(): ?string
# Example:
currentRoute() # 'web.users.profile'

# Checks is current route name matches with argument(s)
currentRouteIs(string|array $name): bool
# Example:
currentRouteIs('web.users.profile') # true
currentRouteIs(['web.users.profile'. 'web.users.profile.edit']) # true

# Log all database queries
logDB(): void
# Example:
logDB() # main .log file should log all db queries, run this function inside AppServiceProvider

Helper Macros

# Makes json responses more clean, pragmatic
Response::rest(mixed $data = [], int $status_code = 200, string $message = 'success')
# Example:
response()->rest(Post::all())
response()->rest([], 201)
response()->rest([], 201, 'created resource')

# Makes json paginated responses more clean, pragmatic
Response::rest_paginate(mixed $data, int $status_code = 200, string $message = 'success')
# Example:
response()->rest_paginate(Post::paginate(20))

# Provides ordering by translations for spatie translatable, supported databases: ['postgres']
Moodel::orderByTranslation($field, $order = 'asc', $locale = null): Illuminate\Database\Eloquent\Builder
# Example:
Post::orderByTranslation()->get()

# Get table name statically for model
Model::tableName(): string
# Example
Product::tableName() // 'products'

# Get table coloumns for model, caches the result for 5 minutes by default
Model::getColumns(): array
# Example
Post::getColumns() # ['id', 'name', 'slug', ...]
Post::getColumns(cache: false)
Post::getColumns(cacheSeconds: 60)