Download the PHP package jan-swiecki/simple-annotations without Composer
On this page you can find all versions of the php package jan-swiecki/simple-annotations. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jan-swiecki/simple-annotations
More information about jan-swiecki/simple-annotations
Files in jan-swiecki/simple-annotations
Package simple-annotations
Short Description Simple annotation parser
License MIT
Homepage https://github.com/jan-swiecki/php-simple-annotations
Informations about the package simple-annotations
PHP Simple Annotations
Installation
Get composer and learn to use it.
Library is on packagist.
If you refuse to use composer then instead of include_once "vendor/autoload.php"
use include_once "src/DocBlockReader/Reader.php"
.
Test
You need PHPUnit. After you get it run:
> git clone https://github.com/jan-swiecki/php-simple-annotations
> cd php-simple-annotations
> composer install
> phpunit
Introduction
This library gives you the ability to extract and auto-parse DocBlock comment blocks.
Example:
class TestClass {
/**
* @x 1
* @y yes!
*/
private $myVar;
}
$reader = new \DocBlockReader\Reader('TestClass', 'myVar', 'property');
$x = $reader->getParameter("x"); // 1 (with number type)
$y = $reader->getParameter("y"); // "yes!" (with string type)
So as you can see to do this you need to construct Reader
object and target it at something. Then you extract data.
You can point at classes, class methods and class properties.
- Targeting class:
$reader = new \DocBlockReader\Reader(String $className)
-
Targeting method or property:
$reader = new \DocBlockReader\Reader(String $className, String $name [, String $type = 'method'])
This will initialize DocBlock Reader on method
$className::$name
or property$className::$name
.To choose method use only two arguments or provide third argument as
method
string value. To get property value putproperty
string value in third argument.
To extract parsed properties you have two methods:
-
$reader->getParameter(String $key)
Returns DocBlock value of parameter
$key
. E.g.then
will return string
I am a string
(without quotes). -
$reader->getParameters()
returns array of all parameters (see examples below).
API
-
Constructor
$reader = new \DocBlockReader\Reader(String $className [, String $name [, String $type = 'method'] ])
Creates
Reader
pointing at class, class method or class property - based on provided arguments (see Introduction). -
$reader->getParameter(String $key)
Returns value of parameter
$key
extracted from DocBlock. -
$reader->getParameters()
returns array of all parameters (see examples below).
$reader->getVariableDeclarations()
- See last example below.
Examples
Examples based on ReaderTest.php.
Note: DocBlock Reader converts type of values basing on the context (see below).
Type conversion example
will print
array (size=14) 'var0' => float 1.5 'var1' => int 1 'var2' => string '123' (length=3) 'var3' => string 'abc' (length=3) 'var4' => array (size=2) 0 => string 'a' (length=1) 1 => string 'b' (length=1) 'var5' => array (size=1) 'x' => string 'y' (length=1) 'var6' => array (size=1) 'x' => array (size=1) 'y' => string 'z' (length=1) 'var7' => array (size=1) 'x' => array (size=1) 'y' => array (size=2) 0 => string 'z' (length=1) 1 => string 'p' (length=1) 'var8' => boolean true 'var9' => null 'var10' => boolean true 'var11' => boolean true 'var12' => boolean false 'var13' => null
Multi value example
will print
array (size=3) 'var' => string 'x' (length=1) 'var2' => int 1024 'param' => array (size=3) 0 => string 'string x' (length=8) 1 => string 'integer y' (length=9) 2 => string 'array z' (length=7)
Variables on the same line
will print
array (size=4) 'get' => boolean true 'post' => boolean true 'ajax' => boolean true 'postParam' => array (size=3) 0 => string 'x' (length=1) 1 => string 'y' (length=1) 2 => string 'z' (length=1)
Variable declarations functionality example
I found below functionality useful for filtering $_GET
/$_POST
data in CodeIgniter. Hopefully I will soon release my CodeIgniter's modification.
will print
array (size=2) 0 => array (size=2) 'type' => string 'string' (length=6) 'name' => string 'var1' (length=4) 1 => array (size=2) 'type' => string 'integer' (length=7) 'name' => string 'var2' (length=4)