2017 © Pedro Peláez
 

library annotations

Script to scan all classes in Project;

image

rudrax/annotations

Script to scan all classes in Project;

  • Friday, June 26, 2015
  • by lalit.tanwar
  • Repository
  • 2 Watchers
  • 0 Stars
  • 2,349 Installations
  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 10 Forks
  • 0 Open issues
  • 3 Versions
  • 1 % Grown

The README.md

README

Build Status, (*1)

Simple and Lightweight PHP Class & Methods Annotations Reader

Sample class User.php, (*2)

<?php
/**
 * @Defaults(name="user1", lastname = "sample", age='0', address={country=USA, state=NY}, phone="000-00000000")
 * @assertResult(false)
 * @cache(collation = UTF-8)
 */
class User
{
    /**
     * @cache(true)
     * @type(json)
     * @limits(start=10, limit=50)
     */
    function load(){
    }

    /**
     * create a record
     *
     * @Permission(view)
     * @Permission(edit)
     * @Role(administrator)
     */
    public function create()
    {
    }
}

Sample use., (*3)


include 'User.php';
$annotations = new Annotations();
$result = $annotations->getClassAnnotations('User');
print_r($result);

Result:, (*4)

Array
(
    [Defaults] => Array
        (
            [0] => Array
                (
                    [name] => user1
                    [lastname] => sample
                    [age] => 0
                    [address] => Array
                        (
                            [country] => USA
                            [state] => NY
                        )

                    [phone] => 000-00000000
                )

        )

    [assertResult] => Array
        (
            [0] => false
        )

    [cache] => Array
        (
            [0] => Array
                (
                    [collation] => UTF-8
                )

        )

)

$result = $annotations->getMethodAnnotations('User', 'create');
print_r($result);

Result:, (*5)

Array
(
    [Permission] => Array
        (
            [0] => view
            [1] => edit
        )

    [Role] => Array
        (
            [0] => administrator
        )

)

Creating Annotated objects.

You can crate fast annotated objects., (*6)

Sample Annotated Classes., (*7)


<?php
// Annotation.php

abstract class Annotation
{
    protected $data = array();

    public function __construct($args = array())
    {
        $this->data = $args;
    }

    public function set($key, $value)
    {
        $this->data[$key] = $value;
    }

    public function get($key, $default = null)
    {
        if (empty($this->data[$key])) {
            return $default;
        }

        return $this->data[$key];
    }

    public function exists($key)
    {
        return isset($this->data[$key]);
    }
}

<?php
// PermissionAnnotation.php
namespace Annotation;

class PermissionAnnotation extends Annotation
{
}

<?php
namespace Base\Annotation;
// RoleAnnotation.php

class RoleAnnotation extends Annotation
{
}

require_once 'Annotation/Annotation.php';
require_once 'Annotation/PermissionAnnotation.php';
require_once 'Annotation/RoleAnnotation.php';

$annotations->setDefaultAnnotationNamespace('\Annotation\\');
$result = $annotations->getMethodAnnotationsObjects('User', 'create');
print_r($result);

Result:, (*8)

Array
(
    [Permission] => Base\Annotation\PermissionAnnotation Object
        (
            [data:protected] => Array
                (
                    [0] => view
                    [1] => edit
                )

        )

    [Role] => Base\Annotation\RoleAnnotation Object
        (
            [data:protected] => Array
                (
                    [2] => administrator
                )

        )

)

The Versions

26/06 2015

dev-master

9999999-dev

Script to scan all classes in Project;

  Sources   Download

MIT

annotations classes controller

26/06 2015

1.0.1

1.0.1.0

Script to scan all classes in Project;

  Sources   Download

MIT

annotations classes controller

27/03 2015

1.0.0

1.0.0.0

Script to scan all classes in Project;

  Sources   Download

MIT

api smarty controller rudra