lyhty/support

Adds some very convenient helpers to your Laravel project

v2.1.0 2023-03-12 11:28 UTC

This package is auto-updated.

Last update: 2024-04-20 10:26:19 UTC


README

68747470733a2f2f6d617474692e73756f72616e69656d692e636f6d2f73746f726167652f6c796874792d737570706f72742e706e67

Latest Stable Version PHP Laravel Total Downloads License

This package provides some additional, convenient helpers for you to use in your Laravel project.

Installation

Install the package with Composer:

composer require lyhty/support

Features

Helpers

  • class_uses_trait($class, $trait, bool $recursive = true): bool
    • Return boolean value whether the given class uses given trait.
  • array_depth(array $array)
    • Return integer describing the max depth of the given array.
  • class_implements_interface($class, $interface): bool
    • Return boolean value whether the given class implements given interface.
  • class_extends($class, $parent): bool
    • Return boolean value whether the given class extends given parent class.
  • set_type($value, $type)
    • Alias for 'settype' which allows non-variables as arguments.
  • trim_spaces(string $string): string
    • Trim spaces from string.
  • not_null($var): bool
    • !is_null
  • get_bool($value): bool
    • Get boolean value from given value. Accepts string true/false.
  • class_namespace(string $className): string
    • Get namespace of given class.
  • ___(array $keys, array $replace = [], array $numbers = [], string $locale = null, string $glue = ' '): string
    • Translate given messages and glue them together.

Discovery class

This is pretty much copied from Illuminate\Foundation\Events\DiscoverEvents from, just made more generic.

Examples

use Lyhty\Support\Discovery;

$all = Discovery::within('app\Models')->toArray();
// ["App\Models\User", "App\Models\BlogPost", "App\Models\Concerns\Taggable", "App\Models\Contracts\BlogWriter"]

$classes = Discovery::classesWithin('app\Models')->toArray();
// ["App\Models\User", "App\Models\BlogPost"]

$traits = Discovery::traitsWithin('app\Models')->toArray();
// ["App\Models\Concerns\Taggable"]

$interfaces = Discovery::interfacesWithin('app\Models')->toArray();
// ["App\Models\Contracts\BlogWriter"]

$usingClasses = Discovery::usesWithin('app\Models', 'App\Models\Concerns\Taggable')->toArray();
// ["App\Models\BlogPost"]

$implementingClasses = Discovery::implementsWithin('app\Models', 'App\Models\Contracts\BlogWriter')->toArray();
// ["App\Models\User"]

$extendingClasses = Discovery::extendsWithin('app\Models', 'Illuminate\Database\Eloquent\Model')->toArray();
// ["App\Models\User", "App\Models\BlogPost"]

License

Lyhty Support is open-sourced software licensed under the MIT license.