> For the complete documentation index, see [llms.txt](https://anton-d-perera.gitbook.io/php-attributes-reader/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anton-d-perera.gitbook.io/php-attributes-reader/reading-attributes/quick-start.md).

# Quick Start

Below are some sample codes with simplest usages:<br>

PHP Class with Class, Method and Property Attributes

```php
<?php

declare(strict_types=1);

#[TestAttribute1('testValue1')]
class Abc
{
    #[TestAttribute2('testValue2')]
    public ?string $test_property_1 = null;

    public ?string $test_property_2 = null;

    #[TestAttribute3('testValue3')]
    public function testMethod1()
    {
        // rest of the codes
    }

    public function testMethod2()
    {
        // rest of the codes
    }

    // rest of the codes
}
```

Reading those Attributes in **Abc** class

```php
<?php

declare(strict_types=1);

$class = Abc::class;

$attributes_reader = new \AntonDPerera\PHPAttributesReader\AttributesReader($class);

// Class attributes
echo $attributes_reader->hasClassAttributes(); // returns true
var_dump($attributes_reader->getClassAttributes()); // returns list of Class attributes


// Method attributes
echo $attributes_reader->hasMethodAttributes(); // returns true
echo $attributes_reader->hasMethodAttributes('testMethod2'); // returns false
echo $attributes_reader->hasMethodAttributes('testMethod1'); // returns true
var_dump($attributes_reader->getMethodAttributes('testMethod1')); // returns list of attributes for the given method.


// Property attributes
echo $attributes_reader->hasPropertyAttributes(); // returns true
echo $attributes_reader->hasPropertyAttributes('test_property_2'); // returns false
echo $attributes_reader->hasPropertyAttributes('test_property_1'); // returns true
var_dump($attributes_reader->getPropertyAttributes('test_property_1')); // returns list of attributes for the given property.
```
