<?php namespace Metadata; /** * Base class for class metadata. * * This class is intended to be extended to add your own application specific * properties, and flags. * * @author Johannes M. Schmitt <schmittjoh@gmail.com> */ class ClassMetadata implements \Serializable { public $name; public $reflection; public $methodMetadata = array(); public $propertyMetadata = array(); public $fileResources = array(); public $createdAt; public function __construct($name) { $this->name = $name; $this->reflection = new \ReflectionClass($name); $this->createdAt = time(); } public function addMethodMetadata(MethodMetadata $metadata) { $this->methodMetadata[$metadata->name] = $metadata; } public function addPropertyMetadata(PropertyMetadata $metadata) { $this->propertyMetadata[$metadata->name] = $metadata; } public function isFresh($timestamp = null) { if (null === $timestamp) { $timestamp = $this->createdAt; } foreach ($this->fileResources as $filepath) { if (!file_exists($filepath)) { return false; } if ($timestamp < filemtime($filepath)) { return false; } } return true; } public function serialize() { return serialize(array( $this->name, $this->methodMetadata, $this->propertyMetadata, $this->fileResources, $this->createdAt, )); } public function unserialize($str) { list( $this->name, $this->methodMetadata, $this->propertyMetadata, $this->fileResources, $this->createdAt ) = unserialize($str); $this->reflection = new \ReflectionClass($this->name); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Cache | Folder | 0755 |
|
|
Driver | Folder | 0755 |
|
|
AdvancedMetadataFactoryInterface.php | File | 464 B | 0644 |
|
ClassHierarchyMetadata.php | File | 791 B | 0644 |
|
ClassMetadata.php | File | 1.86 KB | 0644 |
|
MergeableClassMetadata.php | File | 837 B | 0644 |
|
MergeableInterface.php | File | 200 B | 0644 |
|
MetadataFactory.php | File | 5.71 KB | 0644 |
|
MetadataFactoryInterface.php | File | 723 B | 0644 |
|
MethodMetadata.php | File | 1.12 KB | 0644 |
|
NullMetadata.php | File | 198 B | 0644 |
|
PropertyMetadata.php | File | 1.28 KB | 0644 |
|
Version.php | File | 83 B | 0644 |
|