PHP code example of minime / annotations
1. Go to this page and download the library: Download minime/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/ */
minime / annotations example snippets
$reader = \Minime\Annotations\Reader::createFromDefaults();
use Minime\Annotations\Reader;
use Minime\Annotations\Parser;
use Minime\Annotations\Cache\ArrayCache;
$reader = new Reader(new Parser, new ArrayCache);
use Minime\Annotations\Cache\FileCache;
$reader->setCache(new FileCache('app/storage/path'));
/**
* @name Foo
* @accept ["json", "xml", "csv"]
* @delta .60
* @cache-duration 60
*/
class FooController
{
/**
* @manages Models\Baz
*/
protected $repository;
/**
* @get @post
* @redirect Controllers\BarController@index
*/
public function index(){}
}
$annotations = $reader->getClassAnnotations('FooController');
$annotations->get('name') // > string(3) "Foo"
$annotations->get('accept') // > array(3){ [0] => "json" [1] => "xml" [2] => "csv" }
$annotations->get('delta') // > double(0.60)
$annotations->get('cache-duration') // > int(60)
$annotations->get('undefined') // > null
$annotations = $reader->getPropertyAnnotations('FooController', 'repository');
$annotations->get('manages') // > string(10) "Models\Baz"
$annotations = $reader->getMethodAnnotations('FooController', 'index');
$annotations->get('get') // > bool(true)
$annotations->get('post') // > bool(true)
$annotations->get('auto-redirect') // > string(19) "BarController@index"
/** @name Foo */ function foo(){}
$annotations = $reader->getFunctionAnnotations('foo');
$annotations->get('name') // > string(3) "Foo"
/**
* @response.xml
* @response.xls
* @response.json
* @response.csv
* @method.get
* @method.post
*/
class Foo {}
$annotations = $reader->getClassAnnotations('Foo'); // object<AnnotationsBag>
$AnnotationsBag->useNamespace('response')->toArray();
// > array(3){
// > ["xml"] => (bool) TRUE,
// > ["xls"] => (bool) TRUE,
// > ["json"] => (bool) TRUE,
// > ["csv"] => (bool) TRUE
// > }
$AnnotationsBag->useNamespace('response')->grep('/^x/')->toArray();
// > array(3){
// > ["xml"] => (bool) TRUE,
// > ["xls"] => (bool) TRUE
// > }
foreach($annotations->useNamespace('method') as $annotation => $value)
{
// some behavior
}
$annotations->union($defaultAnnotations);
/**
* Basic docblock showing syntax recognized by the default Minime\Annotations\Parser
*
* @implicit-boolean
* @explicit-boolean true
* @explicit-boolean false
*
* @implicit-string-annotation hello world!
* @explicit-string-annotation "hello world!"
* @string-strong-typed-annotation string 123456
*
* @integer-annotation 15
* @integer-strong-typed-annotation integer 15
*
* @float-annotation 0.15
* @float-strong-typed float 15
*
* @json-annotation { "foo" : ["bar", "baz"] }
* @strong-typed-json-annotation json ["I", "must", "be", "valid", "json"]
*
* @namespaced.annotation hello!
*
* @multiline-json-annotation {
* "foo" : [
* "bar", "baz"
* ]
* }
*
* @multiline-indented-string-annotation
* ------
* < moo >
* ------
* \ ^__^
* \ (oo)\_______
* (__)\ )\/\
* ||----w |
* || ||
*
* @Concrete\Class\Based\Annotation -> { "foo" : ["bar"] }
*/
/**
* @Model\Field\Validation -> {
* "rules" : {
* "
use Minime\Annotations\Reader;
use Minime\Annotations\Parser;
use Minime\Annotations\Cache\FileCache;
$cacheHandler = new FileCache('storage/path');
$reader = new Reader(new Parser, $cacheHandler);
$reader->setCache(new FileCache);
$reader->getClassAnnotations('Full\Qualified\Class');
$reader->getPropertyAnnotations('Full\Qualified\Class', 'propertyName');
$reader->getMethodAnnotations('Full\Qualified\Class', 'methodName');
$reader->getFunctionAnnotations('utils\foo');
$annotations->union($defaultAnnotations);
use Minime\Annotations\Cache\FileCache;
$reader->setCache(new FileCache('app/tmp/storage/path'));
$reader->getCache()->clear();
$reader->getCache()->clear();