stopsopa/annotations

功能齐全的注释解析器,具有灵活的缓存系统

dev-master 2023-09-02 00:13 UTC

This package is auto-updated.

Last update: 2024-08-31 00:49:11 UTC


README

创建于2014年 - 现在已经相当老旧,不再维护。

哎呀,我那时候年轻。别评判我 ;P

stopsopa/annotations

独立的、轻量级的PHP注释解析器,内置基于文件系统、Memcached和Apc(已弃用技术)的缓存系统

  • 文件系统
  • Memcached
  • Apc (已弃用技术)

安装

通过packagist.org(https://packagist.org.cn/packages/stopsopa/annotations)的composer库可用

{
    "require" : {
        "stopsopa/annotations": "dev-master"
    }
}

使用

use Stopsopa\Annotations\AnnotationParser;
use Stopsopa\Annotations\Example\TestClass; 

// creating main object of parser
$parser = new AnnotationParser(); 
print_r($parser->getAnnotations(new TestClass()));

缓存

文件系统缓存

use Stopsopa\Annotations\AnnotationParser;
use Stopsopa\Annotations\Cache\AnnotationFileCache;
use Stopsopa\Annotations\Example\TestClass; 

// creating main object of parser
$parser = new AnnotationParser(); 

$cache = new AnnotationFileCache(dirname(__FILE__).'/cachedir');
//    $cache->clear();  // you can clear all cache 
$parser->setCache($cache);

print_r($parser->getAnnotations(new TestClass()));

Apc缓存

use Stopsopa\Annotations\AnnotationParser;
use Stopsopa\Annotations\Cache\AnnotationApcCache;
use Stopsopa\Annotations\Example\TestClass; 

// creating main object of parser
$parser = new AnnotationParser(); 

$salt = 'kdjdjdjk'; // project salt
$key  = 'stopsopaannotationcache';
$apccache = md5($salt).'-'.$key;
/* @var $data Test */
$cache = apc_fetch($apccache) ?: new AnnotationApcCache($apccache); 
//    $cache->clear(); // you can clear all cache 
$parser->setCache($cache);

print_r($parser->getAnnotations(new TestClass()));

Memcached缓存

use Stopsopa\Annotations\AnnotationParser;
use Stopsopa\Annotations\Cache\MemcacheService;
use Stopsopa\Annotations\Cache\AnnotationMemcachedCache;
use Stopsopa\Annotations\Example\TestClass; 

// creating main object of parser
$parser = new AnnotationParser(); 

$salt = 'kdjdjdjk'; // project salt
$key  = 'stopsopaannotationcache';
$mkey = md5($salt).'-'.$key;
MemcacheService::addServer('localhost', 11211); 

$cache = MemcacheService::getInstance()->get($mkey);

if (!$cache) 
    MemcacheService::getInstance()->set($mkey, $cache = new AnnotationMemcachedCache($mkey));    

//    $cache->clear(); // you can clear all cache 
$parser->setCache($cache);

print_r($parser->getAnnotations(new TestClass()));

许可协议

MIT许可协议(MIT)版权所有(c)2014 Szymon Działowski。在此特此授予任何人免费获得本软件及其相关文档文件(以下简称“软件”)的副本的权利,以不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许向获得软件的人提供软件副本,前提是必须遵守以下条件:上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。本软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,还是包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类责任是基于合同、侵权或其他法律行为,无论此类责任是否因软件或软件的使用或其他方式产生、存在或与之相关。