waleedzahid106a/doc-reader

There is no license information available for the latest version (1.0) of this package.

Just a Simple Annotation Parser in PHP

1.0 2017-02-07 14:45 UTC

This package is not auto-updated.

Last update: 2024-11-18 16:17:12 UTC


README

Just a Simple Annotation Parser in PHP

Installation

Just Download this Repository and Place src folder on your server directory.

Examples

Type conversion example

<?php

include_once "src/DocReader/DocReader.php";

class MyClass
{
	/**
	 * @var0 1.5
	 * @var1 1
	 * @var2 "123"
	 * @var3 abc
	 * @var4 ["a", "b"]
	 * @var5 {"x": "y"}
	 * @var6 {"x": {"y": "z"}}
	 * @var7 {"x": {"y": ["z", "p"]}}
	 *
	 * @var8
	 * @var9 null
	 *
	 * @var10 true
	 * @var11 tRuE
	 * @var12 false
	 * @var13 null
	 * 
	 */
	private function MyMethod()
	{
	}
};

$reader = new DocReader\Reader("MyClass", "MyMethod");

var_dump($reader->getParams());

Multi value example

<?php

include_once "src/DocReader/DocReader.php";

class MyClass
{
	/**
	 * @var x
	 * @var2 1024
	 * @param string x
	 * @param integer y
	 * @param array z
	 */
	private function MyMethod()
	{
	}
};

$reader = new DocReader\Reader("MyClass", "MyMethod");

var_dump($reader->getParams());

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

<?php

include_once "src/DocReader/DocReader.php";

class MyClass
{
	/**
	 * @get @post
	 * @ajax
	 * @postParam x @postParam y
	 * @postParam z
	 */
	private function MyMethod()
	{
	}
};

$reader = new DocReader\Reader("MyClass", "MyMethod");

var_dump($reader->getParams());

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.

<?php

include_once "src/DocReader/DocReader.php";

class MyClass
{
	/**
	 * @param string var1
	 * @param integer var2
	 */
	private function MyMethod()
	{
	}
};

$reader = new DocReader\Reader("MyClass", "MyMethod");

var_dump($reader->getVarDeclarations("param"));

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)