public function put($file, $content) { $dir_name = dirname($file); if ($dir_name != "." && !is_dir($this->ze->build_dir . '/' . $dir_name)) { mkdir($this->ze->build_dir . '/' . $dir_name, 0755, true); } FS::put($this->ze->build_dir . '/' . $file, $content); }
public function process(Project $project) { if ($project->classes) { if (!file_exists("{$this->dir}/classes")) { if (!mkdir("{$this->dir}/classes", 0755, true)) { throw new \RuntimeException("Could not create directory {$this->dir}/classes for mdocs"); } } foreach ($project->classes as $class) { $doc = []; $doc["header"] = Flags::decode($class->flags & Flags::CLASS_TYPES) . " " . $class->name; $doc[] = str_pad("", strlen($doc["header"]), "="); $doc[] = ""; if ($class->parent) { $doc[] = "Parent: [" . $class->parent->name . "](#xxx)"; } if ($class->interfaces) { $doc[] = "Interfaces: " . implode(", ", array_keys($class->interfaces)); } if ($class->traits) { $doc[] = "Traits: " . implode(", ", array_keys($class->traits)); } $doc[] = $class->description; if ($class->constants) { $doc[] = ""; $doc[] = "## Constants"; foreach ($class->constants as $constant) { $doc[] = "**{$constant->short}** `{$constant->value}`"; } } if ($class->properties) { $doc[] = ""; $doc[] = "## Properties"; foreach ($class->properties as $property) { $doc[] = "**{$property->name}** `{$property->value}`"; } } if ($class->methods) { $doc[] = ""; $doc[] = "## Methods"; foreach ($class->methods as $method) { $doc[] = $method->dump() . " {$method->description}"; } } FS::put("{$this->dir}/classes/" . str_replace('\\', '-', $class->name) . '.md', implode("\n", $doc)); } } }