PHP code example of mbunge / php-attributes

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