Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/shindakioku/overload

Package for overload in php
https://github.com/shindakioku/overload

Last synced: 5 days ago
JSON representation

Package for overload in php

Awesome Lists containing this project

README

        

### Класс который делает немного магии

Класс позволяет Вам использовать перегрузку методов (ad hoc) на 40%.

Почему 40? В пхп не разрешено объявлять методы с одинаковыми именами.

Использование класса:

```php
class Bar {}

class Foo
{
public function withoutArguments(): string
{
return 'string';
}

public function argument1(string $name): string
{
return $name;
}

public function argument2(int $number): int
{
return $number;
}

public function withObject(Bar $bar): Bar
{
return $bar;
}
}

$overload = new Overload\Overload(
new Overload\OverloadClass(Foo::class), 'argument1', 'argument2'
);

$overload->call('shinda'); // argument1
$overload->call(2); // argument2

$bar = (new Overload\Overload(
new Overload\OverloadClass(Foo::class), 'withObject'
))->call(new Bar); // $bar = Bar object;

(new Overload\Overload(
new Overload\OverloadClass(Foo::class), 'withoutArguments'
))->call(); // 'string'
```