function let() { $variableCollection = new VariableCollection(); foreach (self::$variablesArray as $variableString) { $variableCollection->addFromStringNotation($variableString); } $this->beConstructedWith(self::CLASS_NAME, self::NAME_SPACE, $variableCollection); }
private function generate($fqcn, $variables) { $className = $this->getClassName($fqcn); $nameSpace = $this->getNameSpace($fqcn); $variableCollection = new VariableCollection(); foreach ($variables as $variableString) { $variableCollection->addFromStringNotation($variableString); } if (count($variableCollection) == 0) { throw new Exception('Missed variable argument'); } $generator = new EntityClassGenerator($className, $nameSpace, $variableCollection); $directory = getcwd() . '/' . $this->getPath($fqcn); if (is_dir($directory) && !is_writable($directory)) { throw new Exception(sprintf('The "%s" directory is not writable', $directory)); } if (!is_dir($directory)) { mkdir($directory, 0777, true); } // TODO: Implement file name customization file_put_contents($directory . '/' . $className . '.php', $generator->generate()); return "Done!"; }