/** * {@inheritdoc} */ public function fileReflection($filename) { $fileMD5 = $this->files->md5($filename = $this->files->normalizePath($filename)); $reflection = new ReflectionFile($this->fetchTokens($filename), (array) $this->memory->loadData($fileMD5, self::MEMORY_LOCATION)); //Let's save to cache $this->memory->saveData($fileMD5, $reflection->exportSchema(), static::MEMORY_LOCATION); return $reflection; }
/** * Internal method to fetch all migration filenames. * * @return array */ private function getFiles() { $filenames = []; foreach ($this->files->getFiles($this->config['directory'], 'php') as $filename) { $reflection = new ReflectionFile($this->tokenizer, $filename); $definition = explode('_', basename($filename)); $filenames[$filename] = ['class' => $reflection->getClasses()[0], 'created' => \DateTime::createFromFormat(self::TIMESTAMP_FORMAT, $definition[0] . '_' . $definition[1]), 'name' => str_replace('.php', '', join('_', array_slice($definition, 3)))]; } return $filenames; }