Abstract Class yii\apidoc\components\BaseController
Inheritance | yii\apidoc\components\BaseController » yii\console\Controller |
---|---|
Subclasses | yii\apidoc\commands\ApiController, yii\apidoc\commands\GuideController |
Available since extension's version | 2.0 |
Source Code | https://github.com/yiisoft/yii2-apidoc/blob/master/components/BaseController.php |
Command to render API Documentation files
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$exclude | string|array | Files to exclude. | yii\apidoc\components\BaseController |
$pageTitle | string | Page title | yii\apidoc\components\BaseController |
$template | string | Template to use for rendering | yii\apidoc\components\BaseController |
Public Methods
Method | Description | Defined By |
---|---|---|
options() | yii\apidoc\components\BaseController |
Protected Methods
Method | Description | Defined By |
---|---|---|
findFiles() | Finds files | yii\apidoc\components\BaseController |
findRenderer() | yii\apidoc\components\BaseController | |
loadContext() | Loads context from cache | yii\apidoc\components\BaseController |
normalizeTargetDir() | Checks that target directory is valid. Asks questions in tricky cases. | yii\apidoc\components\BaseController |
searchFiles() | Finds files to process | yii\apidoc\components\BaseController |
storeContext() | Writes context into cache file | yii\apidoc\components\BaseController |
updateContext() | yii\apidoc\components\BaseController |
Property Details
Method Details
Finds files
protected abstract array findFiles ( $dir, $except = [] ) | ||
$dir | string |
Directory to search files in. |
$except | array |
List of names to exclude from search. |
return | array |
Files found. |
---|
abstract protected function findFiles($dir, $except = []);
protected abstract yii\apidoc\renderers\BaseRenderer findRenderer ( $template ) | ||
$template | string |
abstract protected function findRenderer($template);
Loads context from cache
protected yii\apidoc\models\Context loadContext ( $location ) | ||
$location | string |
protected function loadContext($location)
{
$context = new Context();
$cacheFile = $location . '/cache/apidoc.data';
$this->stdout('Loading apidoc data from cache... ');
if (file_exists($cacheFile)) {
$context = unserialize(file_get_contents($cacheFile));
$this->stdout('done.' . PHP_EOL, Console::FG_GREEN);
} else {
$this->stdout('no data available.' . PHP_EOL, Console::FG_YELLOW);
}
return $context;
}
Checks that target directory is valid. Asks questions in tricky cases.
protected boolean|string normalizeTargetDir ( $target ) | ||
$target | string |
protected function normalizeTargetDir($target)
{
$target = rtrim(Yii::getAlias($target), '\\/');
if (file_exists($target)) {
if (is_dir($target) && !$this->confirm('TargetDirectory already exists. Overwrite?', true)) {
$this->stderr('User aborted.' . PHP_EOL);
return false;
}
if (is_file($target)) {
$this->stderr("Error: Target directory \"$target\" is a file!" . PHP_EOL);
return false;
}
} else {
mkdir($target, 0777, true);
}
return $target;
}
public void options ( $actionID ) | ||
$actionID |
public function options($actionID)
{
return array_merge(parent::options($actionID), ['template', 'exclude', 'pageTitle']);
}
Finds files to process
protected array|boolean searchFiles ( $sourceDirs ) | ||
$sourceDirs | array | |
return | array|boolean |
List of files to process or false on failure |
---|
protected function searchFiles($sourceDirs)
{
$this->stdout('Searching files to process... ');
$files = [];
if (is_array($this->exclude)) {
$exclude = $this->exclude;
} elseif (is_string($this->exclude)) {
$exclude = explode(',', $this->exclude);
} else {
$exclude = [];
}
foreach ($sourceDirs as $source) {
foreach ($this->findFiles($source, $exclude) as $fileName) {
$files[$fileName] = $fileName;
}
}
$this->stdout('done.' . PHP_EOL, Console::FG_GREEN);
if (empty($files)) {
$this->stderr('Error: No files found to process.' . PHP_EOL);
return false;
}
return $files;
}
Writes context into cache file
protected void storeContext ( $context, $location ) | ||
$context | yii\apidoc\models\Context | |
$location | string |
protected function storeContext($context, $location)
{
$cacheFile = $location . '/cache/apidoc.data';
if (!is_dir($dir = dirname($cacheFile))) {
mkdir($dir, 0777, true);
}
file_put_contents($cacheFile, serialize($context));
}
protected void updateContext ( $context ) | ||
$context | yii\apidoc\models\Context |
protected function updateContext($context)
{
$this->stdout('Updating cross references and backlinks... ');
$context->updateReferences();
$this->stdout('done.' . PHP_EOL, Console::FG_GREEN);
}