Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/shindakioku/overload
- Owner: shindakioku
- Created: 2017-07-03T09:59:51.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-08-18T10:08:58.000Z (over 7 years ago)
- Last Synced: 2024-04-24T14:18:59.420Z (9 months ago)
- Language: PHP
- Homepage:
- Size: 4.88 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
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'
```