本文整理汇总了PHP中Reflector::getFileName方法的典型用法代码示例。如果您正苦于以下问题:PHP Reflector::getFileName方法的具体用法?PHP Reflector::getFileName怎么用?PHP Reflector::getFileName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Reflector
的用法示例。
在下文中一共展示了Reflector::getFileName方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _make_internal_message
protected function _make_internal_message(\Reflector $reflection) {
$type = false;
$name = false;
$location = false;
if($reflection instanceof \ReflectionFunction) {
$type = 'function';
$name = $reflection->name;
}
elseif($reflection instanceof \ReflectionClass) {
$type = 'class';
$name = $reflection->name;
}
elseif($reflection instanceof \ReflectionMethod) {
$type = 'method';
$name = $reflection->getDeclaringClass()->name . '::' . $reflection->name;
}
$location = $reflection->getFileName() . ':' . $reflection->getStartLine();
Ev\Evaluer::make_internal_from(
Ev\Evaluer::SOURCE_OUTPUT,
sprintf("Source Code for %s '%s' (%s)", $type, $name, $location)
);
}
示例2: getAll
/**
* Returns annotations.
* @param \ReflectionClass|\ReflectionMethod|\ReflectionProperty
* @return array
*/
public static function getAll(\Reflector $r)
{
if ($r instanceof \ReflectionClass) {
$type = $r->getName();
$member = '';
} elseif ($r instanceof \ReflectionMethod) {
$type = $r->getDeclaringClass()->getName();
$member = $r->getName();
} else {
$type = $r->getDeclaringClass()->getName();
$member = '$' . $r->getName();
}
if (!self::$useReflection) { // auto-expire cache
$file = $r instanceof \ReflectionClass ? $r->getFileName() : $r->getDeclaringClass()->getFileName(); // will be used later
if ($file && isset(self::$timestamps[$file]) && self::$timestamps[$file] !== filemtime($file)) {
unset(self::$cache[$type]);
}
unset(self::$timestamps[$file]);
}
if (isset(self::$cache[$type][$member])) { // is value cached?
return self::$cache[$type][$member];
}
if (self::$useReflection === NULL) { // detects whether is reflection available
self::$useReflection = (bool) Nette\Reflection\ClassReflection::from(__CLASS__)->getDocComment();
}
if (self::$useReflection) {
return self::$cache[$type][$member] = self::parseComment($r->getDocComment());
} else {
if (self::$cache === NULL) {
self::$cache = (array) self::getCache()->offsetGet('list');
self::$timestamps = isset(self::$cache['*']) ? self::$cache['*'] : array();
}
if (!isset(self::$cache[$type]) && $file) {
self::$cache['*'][$file] = filemtime($file);
self::parseScript($file);
self::getCache()->save('list', self::$cache);
}
if (isset(self::$cache[$type][$member])) {
return self::$cache[$type][$member];
} else {
return self::$cache[$type][$member] = array();
}
}
}
示例3: format
/**
* Format the code represented by $reflector.
*
* @param \Reflector $reflector
*
* @return string formatted code
*/
public static function format(\Reflector $reflector)
{
if ($fileName = $reflector->getFileName()) {
if (!is_file($fileName)) {
throw new RuntimeException('Source code unavailable.');
}
$file = file_get_contents($fileName);
$lines = preg_split('/\\r?\\n/', $file);
$start = $reflector->getStartLine() - 1;
$end = $reflector->getEndLine() - $start;
$code = array_slice($lines, $start, $end);
// no need to escape this bad boy, since (for now) it's being output raw.
// return OutputFormatter::escape(implode(PHP_EOL, $code));
return implode(PHP_EOL, $code);
} else {
throw new RuntimeException('Source code unavailable.');
}
}
示例4: format
/**
* Format the code represented by $reflector.
*
* @param \Reflector $reflector
*
* @return string formatted code
*/
public static function format(\Reflector $reflector)
{
if ($fileName = $reflector->getFileName()) {
if (!is_file($fileName)) {
throw new RuntimeException('Source code unavailable.');
}
$file = file_get_contents($fileName);
$start = $reflector->getStartLine();
$end = $reflector->getEndLine() - $start;
$colors = new ConsoleColor();
$colors->addTheme('line_number', array('blue'));
$highlighter = new Highlighter($colors);
return $highlighter->getCodeSnippet($file, $start, 0, $end);
// no need to escape this bad boy, since (for now) it's being output raw.
// return OutputFormatter::escape(implode(PHP_EOL, $code));
return implode(PHP_EOL, $code);
} else {
throw new RuntimeException('Source code unavailable.');
}
}
示例5: format
/**
* Format the code represented by $reflector.
*
* @param \Reflector $reflector
* @param null|string $colorMode (default: null)
*
* @return string formatted code
*/
public static function format(\Reflector $reflector, $colorMode = null)
{
$colorMode = $colorMode ?: Configuration::COLOR_MODE_AUTO;
if ($fileName = $reflector->getFileName()) {
if (!is_file($fileName)) {
throw new RuntimeException('Source code unavailable.');
}
$file = file_get_contents($fileName);
$start = $reflector->getStartLine();
$end = $reflector->getEndLine() - $start;
$factory = new ConsoleColorFactory($colorMode);
$colors = $factory->getConsoleColor();
$highlighter = new Highlighter($colors);
return $highlighter->getCodeSnippet($file, $start, 0, $end);
// no need to escape this bad boy, since (for now) it's being output raw.
// return OutputFormatter::escape(implode(PHP_EOL, $code));
return implode(PHP_EOL, $code);
} else {
throw new RuntimeException('Source code unavailable.');
}
}
示例6: getAll
/**
* Returns annotations.
* @param \ReflectionClass|\ReflectionMethod|\ReflectionProperty
* @return array
*/
public static function getAll(\Reflector $r)
{
if ($r instanceof \ReflectionClass) {
$type = $r->getName();
$member = 'class';
} elseif ($r instanceof \ReflectionMethod) {
$type = $r->getDeclaringClass()->getName();
$member = $r->getName();
} else {
$type = $r->getDeclaringClass()->getName();
$member = '$' . $r->getName();
}
if (!self::$useReflection) {
// auto-expire cache
$file = $r instanceof \ReflectionClass ? $r->getFileName() : $r->getDeclaringClass()->getFileName();
// will be used later
if ($file && isset(self::$timestamps[$file]) && self::$timestamps[$file] !== filemtime($file)) {
unset(self::$cache[$type]);
}
unset(self::$timestamps[$file]);
}
if (isset(self::$cache[$type][$member])) {
// is value cached?
return self::$cache[$type][$member];
}
if (self::$useReflection === NULL) {
// detects whether is reflection available
self::$useReflection = (bool) ClassType::from(__CLASS__)->getDocComment();
}
if (self::$useReflection) {
$annotations = self::parseComment($r->getDocComment());
} else {
if (!self::$cacheStorage) {
// trigger_error('Set a cache storage for annotations parser via Nette\Reflection\AnnotationParser::setCacheStorage().', E_USER_WARNING);
self::$cacheStorage = new Nette\Caching\Storages\DevNullStorage();
}
$outerCache = new Nette\Caching\Cache(self::$cacheStorage, 'Nette.Reflection.Annotations');
if (self::$cache === NULL) {
self::$cache = (array) $outerCache->load('list');
self::$timestamps = isset(self::$cache['*']) ? self::$cache['*'] : array();
}
if (!isset(self::$cache[$type]) && $file) {
self::$cache['*'][$file] = filemtime($file);
foreach (self::parsePhp(file_get_contents($file)) as $class => $info) {
foreach ($info as $prop => $comment) {
if ($prop !== 'use') {
self::$cache[$class][$prop] = self::parseComment($comment);
}
}
}
$outerCache->save('list', self::$cache);
}
if (isset(self::$cache[$type][$member])) {
$annotations = self::$cache[$type][$member];
} else {
$annotations = array();
}
}
if ($r instanceof \ReflectionMethod && !$r->isPrivate() && (!$r->isConstructor() || !empty($annotations['inheritdoc'][0]))) {
try {
$inherited = self::getAll(new \ReflectionMethod(get_parent_class($type), $member));
} catch (\ReflectionException $e) {
try {
$inherited = self::getAll($r->getPrototype());
} catch (\ReflectionException $e) {
$inherited = array();
}
}
$annotations += array_intersect_key($inherited, array_flip(self::$inherited));
}
return self::$cache[$type][$member] = $annotations;
}
示例7: reflectFile
protected function reflectFile(Reflector $ref, SimpleXMLElement $element, $omitFileName = false)
{
$file = $element->addChild('file');
if (!$omitFileName) {
$file->fileName = substr($ref->getFileName(), strlen($this->docRoot));
}
$file->startLine = $ref->getStartLine();
$file->endLine = $ref->getEndLine();
}
示例8: isValidTestFile
private function isValidTestFile(\Reflector $reflector, array $testFiles)
{
return in_array($reflector->getFileName(), $testFiles) && isValidTestName($reflector->getShortName());
}
示例9: getAll
static function getAll(\Reflector $r)
{
if ($r instanceof \ReflectionClass) {
$type = $r->getName();
$member = '';
} elseif ($r instanceof \ReflectionMethod) {
$type = $r->getDeclaringClass()->getName();
$member = $r->getName();
} else {
$type = $r->getDeclaringClass()->getName();
$member = '$' . $r->getName();
}
if (!self::$useReflection) {
$file = $r instanceof \ReflectionClass ? $r->getFileName() : $r->getDeclaringClass()->getFileName();
if ($file && isset(self::$timestamps[$file]) && self::$timestamps[$file] !== filemtime($file)) {
unset(self::$cache[$type]);
}
unset(self::$timestamps[$file]);
}
if (isset(self::$cache[$type][$member])) {
return self::$cache[$type][$member];
}
if (self::$useReflection === NULL) {
self::$useReflection = (bool) ClassType::from(__CLASS__)->getDocComment();
}
if (self::$useReflection) {
$annotations = self::parseComment($r->getDocComment());
} else {
if (!self::$cacheStorage) {
self::$cacheStorage = new Nette\Caching\Storages\DevNullStorage();
}
$outerCache = new Nette\Caching\Cache(self::$cacheStorage, 'Nette.Reflection.Annotations');
if (self::$cache === NULL) {
self::$cache = (array) $outerCache->offsetGet('list');
self::$timestamps = isset(self::$cache['*']) ? self::$cache['*'] : array();
}
if (!isset(self::$cache[$type]) && $file) {
self::$cache['*'][$file] = filemtime($file);
self::parseScript($file);
$outerCache->save('list', self::$cache);
}
if (isset(self::$cache[$type][$member])) {
$annotations = self::$cache[$type][$member];
} else {
$annotations = array();
}
}
if ($r instanceof \ReflectionMethod && !$r->isPrivate() && (!$r->isConstructor() || !empty($annotations['inheritdoc'][0]))) {
try {
$inherited = self::getAll(new \ReflectionMethod(get_parent_class($type), $member));
} catch (\ReflectionException $e) {
try {
$inherited = self::getAll($r->getPrototype());
} catch (\ReflectionException $e) {
$inherited = array();
}
}
$annotations += array_intersect_key($inherited, array_flip(self::$inherited));
}
return self::$cache[$type][$member] = $annotations;
}
示例10: getAll
static function getAll(Reflector $r)
{
if ($r instanceof ReflectionClass) {
$type = $r->getName();
$member = '';
} elseif ($r instanceof ReflectionMethod) {
$type = $r->getDeclaringClass()->getName();
$member = $r->getName();
} else {
$type = $r->getDeclaringClass()->getName();
$member = '$' . $r->getName();
}
if (!self::$useReflection) {
$file = $r instanceof ReflectionClass ? $r->getFileName() : $r->getDeclaringClass()->getFileName();
if ($file && isset(self::$timestamps[$file]) && self::$timestamps[$file] !== filemtime($file)) {
unset(self::$cache[$type]);
}
unset(self::$timestamps[$file]);
}
if (isset(self::$cache[$type][$member])) {
return self::$cache[$type][$member];
}
if (self::$useReflection === NULL) {
self::$useReflection = (bool) NClassReflection::from(__CLASS__)->getDocComment();
}
if (self::$useReflection) {
return self::$cache[$type][$member] = self::parseComment($r->getDocComment());
} else {
if (self::$cache === NULL) {
self::$cache = (array) self::getCache()->offsetGet('list');
self::$timestamps = isset(self::$cache['*']) ? self::$cache['*'] : array();
}
if (!isset(self::$cache[$type]) && $file) {
self::$cache['*'][$file] = filemtime($file);
self::parseScript($file);
self::getCache()->save('list', self::$cache);
}
if (isset(self::$cache[$type][$member])) {
return self::$cache[$type][$member];
} else {
return self::$cache[$type][$member] = array();
}
}
}
示例11: annotateLocation
function annotateLocation(\Reflector $refl)
{
return array('file' => $refl->getFileName(), 'line' => $refl->getStartLine());
}
示例12: locateEmptyTestFailureSource
public function locateEmptyTestFailureSource()
{
return FailureSourceLocator::formatFileAndLine($this->reflection->getFileName(), $this->reflection->getStartLine());
}
示例13: getAll
/**
* Returns annotations.
* @param \ReflectionClass|\ReflectionMethod|\ReflectionProperty
* @return array
*/
public static function getAll(\Reflector $r)
{
if ($r instanceof \ReflectionClass) {
$type = $r->getName();
$member = 'class';
$file = $r->getFileName();
} elseif ($r instanceof \ReflectionMethod) {
$type = $r->getDeclaringClass()->getName();
$member = $r->getName();
$file = $r->getFileName();
} elseif ($r instanceof \ReflectionFunction) {
$type = NULL;
$member = $r->getName();
$file = $r->getFileName();
} else {
$type = $r->getDeclaringClass()->getName();
$member = '$' . $r->getName();
$file = $r->getDeclaringClass()->getFileName();
}
if (!self::$useReflection) {
// auto-expire cache
if ($file && isset(self::$timestamps[$file]) && self::$timestamps[$file] !== filemtime($file)) {
unset(self::$cache[$type]);
}
unset(self::$timestamps[$file]);
}
if (isset(self::$cache[$type][$member])) {
// is value cached?
return self::$cache[$type][$member];
}
if (self::$useReflection === NULL) {
// detects whether is reflection available
self::$useReflection = (bool) ClassType::from(__CLASS__)->getDocComment();
}
if (self::$useReflection) {
$annotations = self::parseComment($r->getDocComment());
} else {
$outerCache = self::getCache();
if (self::$cache === NULL) {
self::$cache = (array) $outerCache->load('list');
self::$timestamps = isset(self::$cache['*']) ? self::$cache['*'] : [];
}
if (!isset(self::$cache[$type]) && $file) {
self::$cache['*'][$file] = filemtime($file);
foreach (static::parsePhp(file_get_contents($file)) as $class => $info) {
foreach ($info as $prop => $comment) {
if ($prop !== 'use') {
self::$cache[$class][$prop] = self::parseComment($comment);
}
}
}
$outerCache->save('list', self::$cache);
}
if (isset(self::$cache[$type][$member])) {
$annotations = self::$cache[$type][$member];
} else {
$annotations = [];
}
}
if ($r instanceof \ReflectionMethod && !$r->isPrivate() && (!$r->isConstructor() || !empty($annotations['inheritdoc'][0]))) {
try {
$inherited = self::getAll(new \ReflectionMethod(get_parent_class($type), $member));
} catch (\ReflectionException $e) {
try {
$inherited = self::getAll($r->getPrototype());
} catch (\ReflectionException $e) {
$inherited = [];
}
}
$annotations += array_intersect_key($inherited, array_flip(self::$inherited));
}
return self::$cache[$type][$member] = $annotations;
}