shindakioku/overload

Package for overload in php

Installs: 7

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/shindakioku/overload

1.0.0 2017-07-03 10:18 UTC

This package is auto-updated.

Last update: 2025-10-29 01:51:18 UTC


README

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

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

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

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

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'