1. Go to this page and download the library: Download mbunge/php-attributes 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/ */
mbunge / php-attributes example snippets
use Mbunge\PhpAttributes\PhpAttributesFactory;
// instantiate via factory
$handler = (new PhpAttributesFactory())->createResolver();
// instantiate direct
$handler = new Mbunge\PhpAttributes\AttributeResolver();
/** @var \Mbunge\PhpAttributes\Resolver\ResolvedAttributeDto[] $result */
// via string
$result = $handler->resolve('\MyProject\MyClassWithAttributes');
// or via class name
$result = $handler->resolve(\MyProject\MyClassWithAttributes::class);
use Mbunge\PhpAttributes\Resolver\ChainedAttributeResolver;
$resolvers = [
new CustomAttributeResolver(),
new AnotherAttributeResolver(),
// ...
];
$resolver = new ChainedAttributeResolver($resolvers);
// receive results from CustomerAttributeResolver and AnotherAttributeResolver
$results = $resolver->resolve('MyProject\AnyClass');
use Mbunge\PhpAttributes\Resolver\FilterClassAttributeResolverDecorator;
// instantiate base handler
$handler = new Mbunge\PhpAttributes\AttributeResolver();
// instantiate filter decorator with filter given as callable
$decoratedResolver = new FilterClassAttributeResolverDecorator(
$handler,
fn(string $className) => str_starts_with($className, 'MyProject')
);
// Attribute resolves only if filter condition matches
$result = $decoratedResolver
->resolve(\MyProject\MyClassWithAttributes::class);
use Mbunge\PhpAttributes\AttributeHandler;
use Mbunge\PhpAttributes\PhpAttributesFactory;
/** @var ClassLoader $loader */
$loader = Handler(
(new PhpAttributesFactory())->createResolver(),
new NullAttributePresenter()
);
$handler->handle('MyProject\MyClass');
use Composer\Autoload\ClassLoader;
use Mbunge\PhpAttributes\AttributeHandler;
use Mbunge\PhpAttributes\LoaderHandler;
use Mbunge\PhpAttributes\PhpAttributesFactory;
/** @var ClassLoader $loader */
$loader = ew NullAttributePresenter()
);
$handler = new LoaderHandler($attributeHandler);
return $handler->handle($loader);
// optionally avoid unregister of previous autoloader
// it is recommanded to keep only one autoloader, since previous autoloader will be unreachable
return $handler->handle($loader, false);
bash
$ composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.