Coder Social home page Coder Social logo

annotations's Introduction

Mozart - Annotations Library

-. Development Version

dev-master: Master: Build Status

Usage The Annotations

<?php

use Mozart\Library\Annotations as Mozart;

/**
 * @Mozart\Access(" ")      // do something with @Access annotation
 * @Mozart\Inject(" ")      // do something with @Inject annotation
 * @Mozart\Lazy(" ")        // do something with @Lazy annotation
 * @Mozart\Returned(" ")    // do something with @Returned annotation
 * @Mozart\Rewind(" ")      // do something with @Rewind annotation
 * @Mozart\Scope(" ")       // do something with @Scope annotation
 * @Mozart\Validate(" ")    // do something with @Validate annotation
 * @Mozart\ValueObject(" ") // do something with @ValueObject annotation
 */
class Kernel
{
    /**
     * @Mozart\Inject()     // if some other class as { Service Class }
     * @var Service
     */
    protected $class;


    public function run($service)
    {
        return $this->class->set($service)->get();
    }
}

/**
 * The Service Class
 */
class Service
{
    protected $service;

    public function set($service)
    {
        $this->service = $service;

        return $this;   
    }

    public function get()
    {
        return $this->service;
    }
}
<?php

/**
 * @Mozart\Route(type = "View", name = "Route name for view template", params = {
 *      "view": "view",
 * })
 */
class ObjectRoute
{
    /**
     * @Mozart\Definition(name = "Mapper", definition = "Inject other class on this property")
     */
    private $mapper;

    /**
     * @Mozart\Schema(uri = "/", parameters = {
     *      "controller": "viewcontroller",
     * })
     */
    public function getViewController()
    {
        $options = array(
            'className' => 'DemoClass',
            'useClass' => 'Mozart\\Library\\Event\\DispatcherAware',
            'author'=> 'Faizal Pribadi',
            'annotation' => '@Route(type = "Template", name = "Template class", params = {
                "template": "template",
            })',
        );

        return <<<EOF
use Mozart\Library\Event\DispatcherAware;

/**
 * {$options['annotation']}
 * @author {$options['author']}
 */
class {$options['className']}
{

}
EOF;

    }
}

/**
 * Dumper Annotation
 */
$reader = new AnnotationReader();
$routeClass = new \ReflectionClass('ObjectRoute');
$methodClass = new \ReflectionMethod('ObjectRoute', 'getViewController');
$propertyClass = new \ReflectionProperty('ObjectRoute', 'mapper');
var_dump($reader->getClassAnnotations($routeClass));
var_dump($reader->getMethodAnnotations($methodClass));
var_dump($reader->getPropertyAnnotations($propertyClass));

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.