PHP code example of phppkg / annotations

1. Go to this page and download the library: Download phppkg/annotations library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

phppkg / annotations example snippets


composer 


    /**
     * @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()
        {
        }
    }


$annotations = new PhpPkg\Annotations\Annotations();
$result = $annotations->getClassAnnotations('User');

print_r($result);

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);

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

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

    )


    // 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]);
        }
    }


    // PermissionAnnotation.php
    namespace Annotation;

    class PermissionAnnotation extends Annotation
    {
    }



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


    namespace Base\Annotation;
    // RoleAnnotation.php

    class RoleAnnotation extends Annotation
    {
    }