<commit_before>Properties
==========

Properties is automatically creates a setter and getter via annotations.

Example
-------

```PHP
<?php
use Ymmtmsys\Properties\Properties;

class SubClass extends Properties // extend Properties class
{
    /**
     * @reader
     */
    protected $rdonly = 'Read only property';

    /**
     * @accessor
     */
    protected $rdwr = 'Read and wirte property';

    /**
     * @writer
     */
    protected $wronly = 'Write only property';
}

$obj = new SubClass;

// Read
echo $obj->rdonly, "\n"; // => "Read only property"
echo $obj->rdwr,   "\n"; // => "Read and wirte property" 

// Write 
$obj->rdwr   = 'Yup!';
$obj->wronly = 'Yippee!';

// Fatal Error 
$obj->rdonly = 'Oops!';
echo $obj->wronly, "\n";
```

Copyright
---------

Copyright (c) 2012 ymmtmsys. See LICENSE for further details.<commit_msg>added a description.<commit_after>Properties
==========

Properties is automatically creates a setter and getter via annotations.

### Annotations

#### @accessor

The @accessor annotation is able to read and write variable.

#### @reader

The @reader annotation is able to read variable.

#### @writer

The @writer annotation is able to write variable.

Example
-------

```PHP
<?php
use Ymmtmsys\Properties\Properties;

class SubClass extends Properties // extend Properties class
{
    /**
     * @accessor
     */
    protected $rdwr = 'Read and wirte property';

    /**
     * @reader
     */
    protected $rdonly = 'Read only property';

    /**
     * @writer
     */
    protected $wronly = 'Write only property';

    protected $no_annotation = 'no annotation';
}

$obj = new SubClass;

// Read
echo $obj->rdonly, "\n"; // => "Read only property"
echo $obj->rdwr,   "\n"; // => "Read and wirte property" 

// Write 
$obj->wronly = 'Yippee!';
$obj->rdwr   = 'Yup!';

// Error!!
$obj->rdonly = 'Oops!';
echo $obj->wronly, "\n";
$obj->no_annotation = 'php';
echo $obj->no_annotation, "\n";
```

Copyright
---------

Copyright (c) 2012 ymmtmsys. See LICENSE for further details.
{'fraction_non_alphanumeric': 0.17453294001966568, 'fraction_numerical': 0.003933136676499509, 'mean_word_length': 2.861480075901328, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6998828', 'n_tokens_mistral': 682, 'n_tokens_neox': 652, 'n_words': 201}