open-southeners/extended-php
Extended PHP helpers for modern apps: adds convenient functions, utilities, and small enhancements that complement core PHP to reduce boilerplate and speed up everyday development. Lightweight, easy to drop into existing projects.
Gets the namespace from class or object.
$class = App\Http\Controllers\MyController::class;
\OpenSoutheners\ExtendedPhp\Classes\class_namespace($class);
// 'App\Http\Controllers'
Similarly than PHP's class_implements but finding a specific interface implemented on the object or class given.
class MyClass implements MyInterface {}
\OpenSoutheners\ExtendedPhp\Classes\class_implement(MyClass::class, MyInterface::class);
// true
Similarly than PHP's class_uses but finding a specific trait used on the object or class given.
class MyClass implements MyInterface {}
\OpenSoutheners\ExtendedPhp\Classes\class_use(MyClass::class, MyTrait::class);
// false
{% hint style="info" %}
This is specially useful to get types using PHP generics types. Otherwise PHP's array callable or call_user_func_array should be used instead.
{% endhint %}
Call to the specified public method from class string or object with optional given arguments array.
class MyClass implements MyInterface
{
public static function myStaticMethod(string $name)
{
return "greetings {$name}!";
}
public function myMethod(string $name)
{
return "hello {$name}!";
}
}
\OpenSoutheners\ExtendedPhp\Classes\call(MyClass::class, 'myStaticMethod', ['user'], true);
// 'greetings user!'
\OpenSoutheners\ExtendedPhp\Classes\call(MyClass::class, 'myMethod', ['world']);
// 'hello world!'
Shortcut for `call` function used for call public static methods only.
class MyClass implements MyInterface
{
public static function myStaticMethod(string $name)
{
return "greetings {$name}!";
}
}
\OpenSoutheners\ExtendedPhp\Classes\call_static(MyClass::class, 'myStaticMethod', ['user']);
// 'greetings user!'
Gets class string from object or class. Similarly to PHP's get_class but this one handles whenever string is sent.
$class = App\Http\Controllers\MyController::class;
$classInstance = new $class;
\OpenSoutheners\ExtendedPhp\Classes\class_from($class);
// 'App\Http\Controllers\MyController'
\OpenSoutheners\ExtendedPhp\Classes\class_from($classInstance);
// 'App\Http\Controllers\MyController'
How can I help you explore Laravel packages today?