Fix lots of scrutinizer warnings, remove Travis
This commit is contained in:
parent
56efd83f2c
commit
13be180582
28
.github/workflows/php.yml
vendored
28
.github/workflows/php.yml
vendored
@ -23,27 +23,16 @@ jobs:
|
|||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
extension-csv: mbstring, dom
|
extension-csv: mbstring, dom
|
||||||
|
|
||||||
- name: Get Composer Cache Directory
|
|
||||||
id: composer-cache
|
|
||||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
|
||||||
|
|
||||||
- name: Validate composer.json and composer.lock
|
- name: Validate composer.json and composer.lock
|
||||||
run: composer validate
|
run: composer validate
|
||||||
|
|
||||||
- name: Cache vendor
|
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: ${{ steps.composer-cache.outputs.dir }}
|
|
||||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
|
||||||
restore-keys: ${{ runner.os }}-composer-
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: composer install --prefer-dist --no-progress --no-suggest
|
run: composer install --prefer-dist --no-progress --no-suggest
|
||||||
|
|
||||||
- name: Run test suite
|
- name: Run test suite
|
||||||
run: composer run-script test
|
run: composer run-script test
|
||||||
|
|
||||||
sonarcloud:
|
scrutinizer-ci:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
steps:
|
steps:
|
||||||
@ -64,3 +53,18 @@ jobs:
|
|||||||
- run: wget https://scrutinizer-ci.com/ocular.phar
|
- run: wget https://scrutinizer-ci.com/ocular.phar
|
||||||
- name: Upload code coverage
|
- name: Upload code coverage
|
||||||
run: php ocular.phar code-coverage:upload --format=php-clover coverage.clover
|
run: php ocular.phar code-coverage:upload --format=php-clover coverage.clover
|
||||||
|
|
||||||
|
documentation:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: github.repository == 'dauxio/daux.io' && github.event_name != 'pull_request' && github.ref == 'refs/heads/master'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: Install dependencies
|
||||||
|
run: composer install --prefer-dist --no-progress --no-suggest
|
||||||
|
- name: Generate documentation
|
||||||
|
run: vendor/bin/daux generate
|
||||||
|
- uses: JamesIves/github-pages-deploy-action@2.0.3
|
||||||
|
env:
|
||||||
|
FOLDER: "static"
|
||||||
|
BRANCH: gh-pages
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
15
.travis.yml
15
.travis.yml
@ -1,15 +0,0 @@
|
|||||||
language: php
|
|
||||||
|
|
||||||
php:
|
|
||||||
- '7.4'
|
|
||||||
- nightly
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
allow_failures:
|
|
||||||
- php: nightly
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- composer install --prefer-dist --no-progress --no-suggest
|
|
||||||
|
|
||||||
script:
|
|
||||||
- vendor/bin/phpunit
|
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[![Latest Version](https://img.shields.io/github/release/dauxio/daux.io.svg?style=flat-square)](https://github.com/dauxio/daux.io/releases)
|
[![Latest Version](https://img.shields.io/github/release/dauxio/daux.io.svg?style=flat-square)](https://github.com/dauxio/daux.io/releases)
|
||||||
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/dauxio/daux.io/blob/master/LICENSE.md)
|
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/dauxio/daux.io/blob/master/LICENSE.md)
|
||||||
[![Build Status](https://img.shields.io/travis/dauxio/daux.io/master.svg?style=flat-square)](https://travis-ci.org/dauxio/daux.io)
|
[![Build Status](https://github.com/dauxio/daux.io/workflows/CI/badge.svg)](https://github.com/dauxio/daux.io/actions)
|
||||||
[![Coverage Status](https://img.shields.io/scrutinizer/coverage/g/dauxio/daux.io.svg?style=flat-square)](https://scrutinizer-ci.com/g/dauxio/daux.io/code-structure)
|
[![Coverage Status](https://img.shields.io/scrutinizer/coverage/g/dauxio/daux.io.svg?style=flat-square)](https://scrutinizer-ci.com/g/dauxio/daux.io/code-structure)
|
||||||
[![Quality Score](https://img.shields.io/scrutinizer/g/dauxio/daux.io.svg?style=flat-square)](https://scrutinizer-ci.com/g/dauxio/daux.io)
|
[![Quality Score](https://img.shields.io/scrutinizer/g/dauxio/daux.io.svg?style=flat-square)](https://scrutinizer-ci.com/g/dauxio/daux.io)
|
||||||
[![Total Downloads](https://img.shields.io/packagist/dt/daux/daux.io.svg?style=flat-square)](https://packagist.org/packages/daux/daux.io)
|
[![Total Downloads](https://img.shields.io/packagist/dt/daux/daux.io.svg?style=flat-square)](https://packagist.org/packages/daux/daux.io)
|
||||||
|
@ -5,10 +5,9 @@ use Todaymade\Daux\Daux;
|
|||||||
|
|
||||||
class Cache
|
class Cache
|
||||||
{
|
{
|
||||||
|
|
||||||
static $printed = false;
|
static $printed = false;
|
||||||
|
|
||||||
public static function getDirectory()
|
public static function getDirectory(): string
|
||||||
{
|
{
|
||||||
$dir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . "dauxio" . DIRECTORY_SEPARATOR;
|
$dir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . "dauxio" . DIRECTORY_SEPARATOR;
|
||||||
|
|
||||||
@ -24,10 +23,10 @@ class Cache
|
|||||||
* Store an item in the cache for a given number of minutes.
|
* Store an item in the cache for a given number of minutes.
|
||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
* @param mixed $value
|
* @param string $value
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function put($key, $value)
|
public static function put(string $key, string $value): void
|
||||||
{
|
{
|
||||||
Cache::ensureCacheDirectoryExists($path = Cache::path($key));
|
Cache::ensureCacheDirectoryExists($path = Cache::path($key));
|
||||||
file_put_contents($path, $value);
|
file_put_contents($path, $value);
|
||||||
@ -39,7 +38,7 @@ class Cache
|
|||||||
* @param string $path
|
* @param string $path
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected static function ensureCacheDirectoryExists($path)
|
protected static function ensureCacheDirectoryExists(string $path): void
|
||||||
{
|
{
|
||||||
$parent = dirname($path);
|
$parent = dirname($path);
|
||||||
|
|
||||||
@ -54,7 +53,7 @@ class Cache
|
|||||||
* @param string $key
|
* @param string $key
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function forget($key)
|
public static function forget(string $key): bool
|
||||||
{
|
{
|
||||||
$path = Cache::path($key);
|
$path = Cache::path($key);
|
||||||
|
|
||||||
@ -68,10 +67,10 @@ class Cache
|
|||||||
/**
|
/**
|
||||||
* Retrieve an item from the cache by key.
|
* Retrieve an item from the cache by key.
|
||||||
*
|
*
|
||||||
* @param string|array $key
|
* @param string $key
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public static function get($key)
|
public static function get(string $key): ?string
|
||||||
{
|
{
|
||||||
$path = Cache::path($key);
|
$path = Cache::path($key);
|
||||||
|
|
||||||
@ -88,18 +87,18 @@ class Cache
|
|||||||
* @param string $key
|
* @param string $key
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
protected static function path($key)
|
protected static function path(string $key): string
|
||||||
{
|
{
|
||||||
$parts = array_slice(str_split($hash = sha1($key), 2), 0, 2);
|
$parts = array_slice(str_split($hash = sha1($key), 2), 0, 2);
|
||||||
return Cache::getDirectory() . '/' . implode('/', $parts) . '/' . $hash;
|
return Cache::getDirectory() . '/' . implode('/', $parts) . '/' . $hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function clear()
|
public static function clear(): void
|
||||||
{
|
{
|
||||||
Cache::rrmdir(Cache::getDirectory());
|
Cache::rrmdir(Cache::getDirectory());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static function rrmdir($dir)
|
protected static function rrmdir(string $dir): void
|
||||||
{
|
{
|
||||||
if (is_dir($dir)) {
|
if (is_dir($dir)) {
|
||||||
$objects = scandir($dir);
|
$objects = scandir($dir);
|
||||||
|
@ -19,6 +19,11 @@ class LinkRenderer implements InlineRendererInterface, ConfigurationAwareInterfa
|
|||||||
*/
|
*/
|
||||||
protected $daux;
|
protected $daux;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \League\CommonMark\Inline\Renderer\LinkRenderer
|
||||||
|
*/
|
||||||
|
protected $parent;
|
||||||
|
|
||||||
public function __construct($daux)
|
public function __construct($daux)
|
||||||
{
|
{
|
||||||
$this->daux = $daux;
|
$this->daux = $daux;
|
||||||
@ -158,7 +163,6 @@ class LinkRenderer implements InlineRendererInterface, ConfigurationAwareInterfa
|
|||||||
*/
|
*/
|
||||||
public function setConfiguration(ConfigurationInterface $configuration)
|
public function setConfiguration(ConfigurationInterface $configuration)
|
||||||
{
|
{
|
||||||
$this->config = $configuration;
|
|
||||||
$this->parent->setConfiguration($configuration);
|
$this->parent->setConfiguration($configuration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ class FencedCodeRenderer extends CodeRenderer
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param AbstractBlock $block
|
* @param AbstractBlock $block
|
||||||
* @param HtmlRendererInterface $htmlRenderer
|
* @param ElementRendererInterface $htmlRenderer
|
||||||
* @param bool $inTightList
|
* @param bool $inTightList
|
||||||
*
|
*
|
||||||
* @return HtmlElement|string
|
* @return HtmlElement|string
|
||||||
@ -59,7 +59,7 @@ class FencedCodeRenderer extends CodeRenderer
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$language = Xml::escape($infoWords[0], true);
|
$language = Xml::escape($infoWords[0]);
|
||||||
|
|
||||||
if (array_key_exists($language, $this->known_conversions)) {
|
if (array_key_exists($language, $this->known_conversions)) {
|
||||||
$language = $this->known_conversions[$language];
|
$language = $this->known_conversions[$language];
|
||||||
|
@ -14,6 +14,11 @@ class ImageRenderer implements InlineRendererInterface, ConfigurationAwareInterf
|
|||||||
*/
|
*/
|
||||||
protected $config;
|
protected $config;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \League\CommonMark\Inline\Renderer\LinkRenderer
|
||||||
|
*/
|
||||||
|
protected $parent;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
$this->parent = new \League\CommonMark\Inline\Renderer\ImageRenderer();
|
$this->parent = new \League\CommonMark\Inline\Renderer\ImageRenderer();
|
||||||
}
|
}
|
||||||
@ -47,7 +52,6 @@ class ImageRenderer implements InlineRendererInterface, ConfigurationAwareInterf
|
|||||||
*/
|
*/
|
||||||
public function setConfiguration(ConfigurationInterface $configuration)
|
public function setConfiguration(ConfigurationInterface $configuration)
|
||||||
{
|
{
|
||||||
$this->config = $configuration;
|
|
||||||
$this->parent->setConfiguration($configuration);
|
$this->parent->setConfiguration($configuration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ class IndentedCodeRenderer extends CodeRenderer
|
|||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @param AbstractBlock $block
|
* @param AbstractBlock $block
|
||||||
* @param HtmlRendererInterface $htmlRenderer
|
* @param ElementRendererInterface $htmlRenderer
|
||||||
* @param bool $inTightList
|
* @param bool $inTightList
|
||||||
*
|
*
|
||||||
* @return HtmlElement
|
* @return HtmlElement
|
||||||
|
@ -7,6 +7,11 @@ class ContentPage extends \Todaymade\Daux\Format\Base\ContentPage
|
|||||||
private $language;
|
private $language;
|
||||||
private $homepage;
|
private $homepage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Template
|
||||||
|
*/
|
||||||
|
public $templateRenderer;
|
||||||
|
|
||||||
private function isHomepage()
|
private function isHomepage()
|
||||||
{
|
{
|
||||||
// If the current page isn't the index, no chance it is the landing page
|
// If the current page isn't the index, no chance it is the landing page
|
||||||
|
@ -10,13 +10,18 @@ use League\CommonMark\Util\Xml;
|
|||||||
|
|
||||||
class FencedCodeRenderer implements BlockRendererInterface
|
class FencedCodeRenderer implements BlockRendererInterface
|
||||||
{
|
{
|
||||||
function __construct() {
|
/**
|
||||||
|
* @var Highlighter
|
||||||
|
*/
|
||||||
|
private $hl;
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
$this->hl = new Highlighter();
|
$this->hl = new Highlighter();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param AbstractBlock $block
|
* @param AbstractBlock $block
|
||||||
* @param HtmlRendererInterface $htmlRenderer
|
* @param ElementRendererInterface $htmlRenderer
|
||||||
* @param bool $inTightList
|
* @param bool $inTightList
|
||||||
*
|
*
|
||||||
* @return HtmlElement|string
|
* @return HtmlElement|string
|
||||||
@ -43,7 +48,7 @@ class FencedCodeRenderer implements BlockRendererInterface
|
|||||||
$highlighted = $this->hl->highlight($language, $content);
|
$highlighted = $this->hl->highlight($language, $content);
|
||||||
$content = $highlighted->value;
|
$content = $highlighted->value;
|
||||||
$attrs['class'] .= 'hljs ' . $highlighted->language;
|
$attrs['class'] .= 'hljs ' . $highlighted->language;
|
||||||
} catch (Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$attrs['class'] .= 'language-' . $language;
|
$attrs['class'] .= 'language-' . $language;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -65,6 +70,6 @@ class FencedCodeRenderer implements BlockRendererInterface
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Xml::escape($infoWords[0], true);
|
return Xml::escape($infoWords[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,11 @@ use Todaymade\Daux\Config;
|
|||||||
|
|
||||||
class Renderer implements BlockRendererInterface
|
class Renderer implements BlockRendererInterface
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var Config
|
||||||
|
*/
|
||||||
|
private $config;
|
||||||
|
|
||||||
public function __construct(Config $config)
|
public function __construct(Config $config)
|
||||||
{
|
{
|
||||||
$this->config = $config;
|
$this->config = $config;
|
||||||
|
@ -21,6 +21,9 @@ class Generator implements \Todaymade\Daux\Format\Base\Generator, LiveGenerator
|
|||||||
/** @var Daux */
|
/** @var Daux */
|
||||||
protected $daux;
|
protected $daux;
|
||||||
|
|
||||||
|
/** @var Template */
|
||||||
|
protected $templateRenderer;
|
||||||
|
|
||||||
protected $indexed_pages = [];
|
protected $indexed_pages = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -7,7 +7,6 @@ class CommonMarkConverter extends \Todaymade\Daux\Format\HTML\ContentTypes\Markd
|
|||||||
{
|
{
|
||||||
protected function getLinkRenderer(Environment $environment)
|
protected function getLinkRenderer(Environment $environment)
|
||||||
{
|
{
|
||||||
var_dump(LinkRenderer::class);
|
|
||||||
return new LinkRenderer($environment->getConfig('daux'));
|
return new LinkRenderer($environment->getConfig('daux'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,9 @@ class Generator implements \Todaymade\Daux\Format\Base\Generator
|
|||||||
/** @var Daux */
|
/** @var Daux */
|
||||||
protected $daux;
|
protected $daux;
|
||||||
|
|
||||||
|
/** @var Template */
|
||||||
|
protected $templateRenderer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Daux $daux
|
* @param Daux $daux
|
||||||
*/
|
*/
|
||||||
@ -52,7 +55,7 @@ class Generator implements \Todaymade\Daux\Format\Base\Generator
|
|||||||
$this->runAction(
|
$this->runAction(
|
||||||
'Cleaning destination folder ...',
|
'Cleaning destination folder ...',
|
||||||
$width,
|
$width,
|
||||||
function() use ($destination, $params) {
|
function() use ($destination) {
|
||||||
$this->ensureEmptyDestination($destination);
|
$this->ensureEmptyDestination($destination);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -43,7 +43,7 @@ class Content extends ContentAbstract
|
|||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getContent()
|
public function getContent(): string
|
||||||
{
|
{
|
||||||
if ($this->attributes === null) {
|
if ($this->attributes === null) {
|
||||||
$this->parseAttributes();
|
$this->parseAttributes();
|
||||||
@ -55,7 +55,7 @@ class Content extends ContentAbstract
|
|||||||
/**
|
/**
|
||||||
* @param string $content
|
* @param string $content
|
||||||
*/
|
*/
|
||||||
public function setContent($content)
|
public function setContent(string $content): void
|
||||||
{
|
{
|
||||||
$this->manuallySetContent = true;
|
$this->manuallySetContent = true;
|
||||||
$this->content = $content;
|
$this->content = $content;
|
||||||
@ -64,7 +64,7 @@ class Content extends ContentAbstract
|
|||||||
/**
|
/**
|
||||||
* @return Content
|
* @return Content
|
||||||
*/
|
*/
|
||||||
public function getPrevious()
|
public function getPrevious(): ?Content
|
||||||
{
|
{
|
||||||
return $this->previous;
|
return $this->previous;
|
||||||
}
|
}
|
||||||
@ -72,7 +72,7 @@ class Content extends ContentAbstract
|
|||||||
/**
|
/**
|
||||||
* @param Content $previous
|
* @param Content $previous
|
||||||
*/
|
*/
|
||||||
public function setPrevious($previous)
|
public function setPrevious(Content $previous)
|
||||||
{
|
{
|
||||||
$this->previous = $previous;
|
$this->previous = $previous;
|
||||||
}
|
}
|
||||||
@ -80,7 +80,7 @@ class Content extends ContentAbstract
|
|||||||
/**
|
/**
|
||||||
* @return Content
|
* @return Content
|
||||||
*/
|
*/
|
||||||
public function getNext()
|
public function getNext(): ?Content
|
||||||
{
|
{
|
||||||
return $this->next;
|
return $this->next;
|
||||||
}
|
}
|
||||||
@ -88,7 +88,7 @@ class Content extends ContentAbstract
|
|||||||
/**
|
/**
|
||||||
* @param Content $next
|
* @param Content $next
|
||||||
*/
|
*/
|
||||||
public function setNext($next)
|
public function setNext(Content $next)
|
||||||
{
|
{
|
||||||
$this->next = $next;
|
$this->next = $next;
|
||||||
}
|
}
|
||||||
@ -102,7 +102,7 @@ class Content extends ContentAbstract
|
|||||||
return $this->name == 'index' || $this->name == '_index';
|
return $this->name == 'index' || $this->name == '_index';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTitle()
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
if ($title = $this->getAttribute('title')) {
|
if ($title = $this->getAttribute('title')) {
|
||||||
return $title;
|
return $title;
|
||||||
|
@ -8,7 +8,7 @@ abstract class ContentAbstract extends Entry
|
|||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getContent()
|
public function getContent(): string
|
||||||
{
|
{
|
||||||
return $this->content;
|
return $this->content;
|
||||||
}
|
}
|
||||||
@ -16,7 +16,7 @@ abstract class ContentAbstract extends Entry
|
|||||||
/**
|
/**
|
||||||
* @param string $content
|
* @param string $content
|
||||||
*/
|
*/
|
||||||
public function setContent($content)
|
public function setContent(string $content): void
|
||||||
{
|
{
|
||||||
$this->content = $content;
|
$this->content = $content;
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
use ArrayIterator;
|
use ArrayIterator;
|
||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
|
use Todaymade\Daux\Config;
|
||||||
|
|
||||||
class Directory extends Entry implements \ArrayAccess, \IteratorAggregate
|
class Directory extends Entry implements \ArrayAccess, \IteratorAggregate
|
||||||
{
|
{
|
||||||
@ -103,20 +104,20 @@ class Directory extends Entry implements \ArrayAccess, \IteratorAggregate
|
|||||||
return $this->children;
|
return $this->children;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addChild(Entry $entry)
|
public function addChild(Entry $entry): void
|
||||||
{
|
{
|
||||||
$this->children[$entry->getUri()] = $entry;
|
$this->children[$entry->getUri()] = $entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function removeChild(Entry $entry)
|
public function removeChild(Entry $entry): void
|
||||||
{
|
{
|
||||||
unset($this->children[$entry->getUri()]);
|
unset($this->children[$entry->getUri()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \Todaymade\Daux\Config
|
* @return Config
|
||||||
*/
|
*/
|
||||||
public function getConfig()
|
public function getConfig(): Config
|
||||||
{
|
{
|
||||||
if (!$this->parent) {
|
if (!$this->parent) {
|
||||||
throw new \RuntimeException('Could not retrieve configuration. Are you sure that your tree has a Root ?');
|
throw new \RuntimeException('Could not retrieve configuration. Are you sure that your tree has a Root ?');
|
||||||
@ -138,7 +139,7 @@ class Directory extends Entry implements \ArrayAccess, \IteratorAggregate
|
|||||||
/**
|
/**
|
||||||
* @return Content|null
|
* @return Content|null
|
||||||
*/
|
*/
|
||||||
public function getIndexPage()
|
public function getIndexPage(): ?Content
|
||||||
{
|
{
|
||||||
$index_key = $this->getConfig()['index_key'];
|
$index_key = $this->getConfig()['index_key'];
|
||||||
|
|
||||||
@ -157,7 +158,7 @@ class Directory extends Entry implements \ArrayAccess, \IteratorAggregate
|
|||||||
* Seek the first available page from descendants
|
* Seek the first available page from descendants
|
||||||
* @return Content|null
|
* @return Content|null
|
||||||
*/
|
*/
|
||||||
public function seekFirstPage()
|
public function seekFirstPage(): ?Content
|
||||||
{
|
{
|
||||||
if ($this instanceof self) {
|
if ($this instanceof self) {
|
||||||
$index_key = $this->getConfig()['index_key'];
|
$index_key = $this->getConfig()['index_key'];
|
||||||
@ -182,7 +183,7 @@ class Directory extends Entry implements \ArrayAccess, \IteratorAggregate
|
|||||||
/**
|
/**
|
||||||
* @return Content|null
|
* @return Content|null
|
||||||
*/
|
*/
|
||||||
public function getFirstPage()
|
public function getFirstPage(): ?Content
|
||||||
{
|
{
|
||||||
if ($this->first_page) {
|
if ($this->first_page) {
|
||||||
return $this->first_page;
|
return $this->first_page;
|
||||||
@ -217,7 +218,7 @@ class Directory extends Entry implements \ArrayAccess, \IteratorAggregate
|
|||||||
/**
|
/**
|
||||||
* @param Content $first_page
|
* @param Content $first_page
|
||||||
*/
|
*/
|
||||||
public function setFirstPage($first_page)
|
public function setFirstPage(Content $first_page)
|
||||||
{
|
{
|
||||||
$this->first_page = $first_page;
|
$this->first_page = $first_page;
|
||||||
}
|
}
|
||||||
@ -228,7 +229,7 @@ class Directory extends Entry implements \ArrayAccess, \IteratorAggregate
|
|||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function hasContent()
|
public function hasContent(): bool
|
||||||
{
|
{
|
||||||
foreach ($this->getEntries() as $node) {
|
foreach ($this->getEntries() as $node) {
|
||||||
if ($node instanceof Content) {
|
if ($node instanceof Content) {
|
||||||
@ -262,7 +263,7 @@ class Directory extends Entry implements \ArrayAccess, \IteratorAggregate
|
|||||||
* @param mixed $offset An offset to check for.
|
* @param mixed $offset An offset to check for.
|
||||||
* @return bool true on success or false on failure.
|
* @return bool true on success or false on failure.
|
||||||
*/
|
*/
|
||||||
public function offsetExists($offset)
|
public function offsetExists($offset): bool
|
||||||
{
|
{
|
||||||
return array_key_exists($offset, $this->children);
|
return array_key_exists($offset, $this->children);
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ abstract class Entry
|
|||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getTitle()
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return $this->title;
|
return $this->title;
|
||||||
}
|
}
|
||||||
@ -89,7 +89,7 @@ abstract class Entry
|
|||||||
/**
|
/**
|
||||||
* @param string $title
|
* @param string $title
|
||||||
*/
|
*/
|
||||||
public function setTitle($title)
|
public function setTitle(string $title)
|
||||||
{
|
{
|
||||||
$this->title = $title;
|
$this->title = $title;
|
||||||
}
|
}
|
||||||
@ -97,7 +97,7 @@ abstract class Entry
|
|||||||
/**
|
/**
|
||||||
* @return Directory
|
* @return Directory
|
||||||
*/
|
*/
|
||||||
public function getParent()
|
public function getParent(): ?Directory
|
||||||
{
|
{
|
||||||
return $this->parent;
|
return $this->parent;
|
||||||
}
|
}
|
||||||
@ -134,7 +134,7 @@ abstract class Entry
|
|||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getPath()
|
public function getPath(): string
|
||||||
{
|
{
|
||||||
return $this->path;
|
return $this->path;
|
||||||
}
|
}
|
||||||
@ -144,7 +144,7 @@ abstract class Entry
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getRelativePath()
|
public function getRelativePath(): string
|
||||||
{
|
{
|
||||||
$root = $this;
|
$root = $this;
|
||||||
while ($root->getParent() != null) {
|
while ($root->getParent() != null) {
|
||||||
@ -157,7 +157,7 @@ abstract class Entry
|
|||||||
/**
|
/**
|
||||||
* @return SplFileInfo
|
* @return SplFileInfo
|
||||||
*/
|
*/
|
||||||
public function getFileinfo()
|
public function getFileinfo(): SplFileInfo
|
||||||
{
|
{
|
||||||
return $this->info;
|
return $this->info;
|
||||||
}
|
}
|
||||||
@ -165,7 +165,7 @@ abstract class Entry
|
|||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getUrl()
|
public function getUrl(): string
|
||||||
{
|
{
|
||||||
$url = '';
|
$url = '';
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ class Root extends Directory
|
|||||||
/**
|
/**
|
||||||
* @return Config
|
* @return Config
|
||||||
*/
|
*/
|
||||||
public function getConfig()
|
public function getConfig(): Config
|
||||||
{
|
{
|
||||||
return $this->config;
|
return $this->config;
|
||||||
}
|
}
|
||||||
@ -32,12 +32,12 @@ class Root extends Directory
|
|||||||
/**
|
/**
|
||||||
* @param Config $config
|
* @param Config $config
|
||||||
*/
|
*/
|
||||||
public function setConfig($config)
|
public function setConfig(Config $config)
|
||||||
{
|
{
|
||||||
$this->config = $config;
|
$this->config = $config;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isHotPath(Entry $node = null) {
|
public function isHotPath(Entry $node = null): bool {
|
||||||
if ($node == null) {
|
if ($node == null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user