[comment]: # (This file is part of PcGen, PHP Code Generation support package. Copyright 2020 Kjell-Inge Gustafsson, kigkonsult, All rights reserved, licence GPL 3.0)
PcGen
the PHP Code Generation support package
- 
create PHP class / interface / trait code
opt shipped with file docBlock
with namespace, use, extends, implements 
 with constuctor and factory methods 
 with constants and properties with opt. getter(+iterator) and setter methods
allow insert of (pre-produced, logic) code 
 
- 
create docBlocks
in compliance with [phpdoc]
 
- 
create PHP function/method frame (shell) code
with arguments and closure use variables
 with property(/variable) set code
with method return code
 allow insert of (pre-produced, logic) code 
 
- 
create code for single or chained function/method invoke(s)
 
- 
create define variable property/variable/constant code
with PHP primitive value, array, closure or callback 
 
- 
create code for variable/property value assign from
variable/property value
(scalar) fixedSourceValue
ternary or null coalesce operator expression
other PHP expression
constant
function/method invoke(s)
 
- 
create logic code using
* control structures
* ternary or null coalesce operator expressions
* try/catch-blocks  
 
- 
create code for function/method return of 
variable/property value
(scalar) fixedSourceValue
ternary or null coalesce operator expression
other PHP expression
constant  
* function/method invoke(s)
 
More info in the PcGen [Summary].
--- 
Misc
The target PHP version code is, default, the current PHP version but configurable.
Using a PHP reserved name as _name_ (ex FQCN/className) will thow an InvalidArgumentException. 
You may need to readjust result output code style and indents.
Tests
Tests are executed in `DISPLAY` mode, to alter, update _PHP_ const in top of `phpunit.xml`.  
Asserted PHP 7+ compability using [PHPCompatibility].
Support
For support use [github.com PcGen]. Non-emergence support issues are, unless sponsored, fixed in due time.
Sponsorship
Donation using <a href="https://paypal.me/kigkonsult?locale.x=en_US" rel="nofollow">paypal.me/kigkonsult</a> are appreciated. 
For invoice, <a href="mailto:[email protected]">please e-mail</a>.
INSTALL
composer require kigkonsult/pcgen:dev-master
Composer, in your composer.json:
{
    "require": {
        "kigkonsult/pcgen": "dev-master"
    }
}
Otherwise , download and acquire..
namespace Kigkonsult\PcGen;
...
include 'pathToSource/Kigkonsult/PcGen/autoload.php';
License
This project is licensed under the GPLv3 License
[Composer]:https://getcomposer.org/
[github.com PcGen]:https://github.com/iCalcreator/PcGen
[phpdoc]:https://phpdoc.org
[Summary]:docs/Summary.md
[PHPCompatibility]:https://github.com/PHPCompatibility/PHPCompatibility