PHP code example of yceruto / decorator
1. Go to this page and download the library: Download yceruto/decorator library. Choose the download type require. 2. Extract the ZIP file and open the index.php. 3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
yceruto / decorator example snippets
use Yceruto\Decorator\Attribute\DecoratorMetadata;
use Yceruto\Decorator\CallableDecorator;
use Yceruto\Decorator\DecoratorInterface;
#[\Attribute(\Attribute::TARGET_METHOD)]
class Debug extends DecoratorMetadata
{
}
class DebugDecorator implements DecoratorInterface
{
public function decorate(\Closure $func): \Closure
{
return function (mixed ...$args) use ($func): mixed
{
echo "Do something before\n";
$result = $func(...$args);
echo "Do something after\n";
return $result;
};
}
}
class Greeting
{
#[Debug]
public function sayHello(string $name): void
{
echo "Hello $name!\n";
}
}
$greeting = new Greeting();
$decorator = new CallableDecorator();
$decorator->call($greeting->sayHello(...), 'John');