From 1634e987996ce9be576f6bbc64ef9fc70af51d25 Mon Sep 17 00:00:00 2001 From: Timothy J Warren Date: Wed, 6 Dec 2017 14:40:13 -0500 Subject: [PATCH] Miscellaneous code style changes --- .../Sniffs/Files/ByteOrderMarkSniff.php | 2 +- .../Sniffs/Strings/DoubleQuoteUsageSniff.php | 7 +- composer.json | 109 +++++++++--------- index.php | 12 +- src/AnimeClient.php | 53 +++++---- src/Controller.php | 44 +++++-- src/Controller/Manga.php | 2 - 7 files changed, 129 insertions(+), 100 deletions(-) diff --git a/build/CodeIgniter/Sniffs/Files/ByteOrderMarkSniff.php b/build/CodeIgniter/Sniffs/Files/ByteOrderMarkSniff.php index edd534e5..064c4251 100755 --- a/build/CodeIgniter/Sniffs/Files/ByteOrderMarkSniff.php +++ b/build/CodeIgniter/Sniffs/Files/ByteOrderMarkSniff.php @@ -90,7 +90,7 @@ class ByteOrderMarkSniff implements Sniff $fileStartHex = bin2hex(substr($fileStartString, 0, $bomByteLength)); if ($fileStartHex === $expectedBomHex) { $error = "File contains a $bomName byte order mark (BOM)."; - $phpcsFile->addError($error, $stackPtr); + $phpcsFile->addError($error, $stackPtr, 123); break; } } diff --git a/build/CodeIgniter/Sniffs/Strings/DoubleQuoteUsageSniff.php b/build/CodeIgniter/Sniffs/Strings/DoubleQuoteUsageSniff.php index 2c54d71d..419d3b14 100755 --- a/build/CodeIgniter/Sniffs/Strings/DoubleQuoteUsageSniff.php +++ b/build/CodeIgniter/Sniffs/Strings/DoubleQuoteUsageSniff.php @@ -17,6 +17,7 @@ namespace CodeIgniter\Sniffs\Strings; use PHP_CodeSniffer\Sniffs\Sniff; use PHP_CodeSniffer\Files\File; +use Exception; /** * CodeIgniter_Sniffs_Strings_DoubleQuoteUsageSniff. @@ -104,19 +105,19 @@ class VariableUsageSniff implements Sniff $this->_parseVariable($strTokens, $strPtr); } catch (Exception $err) { $error = 'There is no variable, object nor array between curly braces. Please use the escape char for $ or {.'; - $phpcsFile->addError($error, $stackPtr); + $phpcsFile->addError($error, $stackPtr, 234); } $variableFound = TRUE; if ('}' !== $strTokens[$strPtr]) { $error = 'There is no matching closing curly brace.'; - $phpcsFile->addError($error, $stackPtr); + $phpcsFile->addError($error, $stackPtr, 345); } // don't move forward, since it will be done in the main loop // $strPtr++; } else if (T_VARIABLE === $strToken[0]) { $variableFound = TRUE; $error = "Variable {$strToken[1]} in double-quoted strings should be enclosed with curly braces. Please consider {{$strToken[1]}}"; - $phpcsFile->addError($error, $stackPtr); + $phpcsFile->addError($error, $stackPtr, 456); } } $strPtr++; diff --git a/composer.json b/composer.json index d8f10637..1bebffb8 100644 --- a/composer.json +++ b/composer.json @@ -1,58 +1,57 @@ { - "name": "aviat/hummingbird-anime-client", - "description": "A self-hosted anime/manga client for Kitsu.", - "license":"MIT", - "autoload": { - "files": [ - "src/AnimeClient.php" - ], - "psr-4": { - "Aviat\\AnimeClient\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "Aviat\\AnimeClient\\Tests\\": "tests/", - "CodeIgniter\\": "build/CodeIgniter/" - } - }, - "require": { - "aura/html": "^2.0", - "aura/router": "^3.0", - "aura/session": "^2.0", - "aviat/banker": "^1.0.0", - "aviat/ion": "^2.2.0", - "monolog/monolog": "^1.0", - "psr/http-message": "~1.0", - "psr/log": "~1.0", - "yosymfony/toml": "^1.0", - "zendframework/zend-diactoros": "^1.3", - "maximebf/consolekit": "^1.0", - "amphp/artax": "^2.0" - }, - "require-dev": { - "pdepend/pdepend": "^2.2", - "sebastian/phpcpd": "^3.0", - "theseer/phpdox": "dev-master", - "phploc/phploc": "^4.0", - "phpmd/phpmd": "^2.4", - "phpunit/phpunit": "^6.0", - "robmorgan/phinx": "^0.9.1", - "consolidation/robo": "~1.0", - "henrikbjorn/lurker": "^1.1.0", - "symfony/var-dumper": "^4.0.1", - "squizlabs/php_codesniffer": "^3.0.0@beta", - "phpstan/phpstan": "^0.9.1", - "spatie/phpunit-snapshot-assertions": "^1.2.0" - }, - "scripts": { - "build": "vendor/bin/robo build", - "build:css": "cd public && npm run build && cd ..", - "clean": "vendor/bin/robo clean", - "coverage": "phpdbg -qrr -- vendor/bin/phpunit -c build", - "docs": "vendor/bin/phpdox", - "phpstan": "phpstan analyse src tests", - "watch:css": "cd public && npm run watch", - "test": "vendor/bin/phpunit" + "name": "aviat/hummingbird-anime-client", + "description": "A self-hosted anime/manga client for Kitsu.", + "license": "MIT", + "autoload": { + "files": [ + "src/AnimeClient.php" + ], + "psr-4": { + "Aviat\\AnimeClient\\": "src/" } + }, + "autoload-dev": { + "psr-4": { + "Aviat\\AnimeClient\\Tests\\": "tests/", + "CodeIgniter\\": "build/CodeIgniter/" + } + }, + "require": { + "amphp/artax": "^2.0", + "aura/html": "^2.0", + "aura/router": "^3.0", + "aura/session": "^2.0", + "aviat/banker": "^1.0.0", + "aviat/ion": "^2.2.0", + "maximebf/consolekit": "^1.0", + "monolog/monolog": "^1.0", + "psr/http-message": "~1.0", + "psr/log": "~1.0", + "yosymfony/toml": "^1.0", + "zendframework/zend-diactoros": "^1.3" + }, + "require-dev": { + "consolidation/robo": "~1.0", + "henrikbjorn/lurker": "^1.1.0", + "pdepend/pdepend": "^2.2", + "phploc/phploc": "^4.0", + "phpmd/phpmd": "^2.4", + "phpstan/phpstan": "^0.9.1", + "phpunit/phpunit": "^6.0", + "robmorgan/phinx": "^0.9.1", + "sebastian/phpcpd": "^3.0", + "spatie/phpunit-snapshot-assertions": "^1.2.0", + "squizlabs/php_codesniffer": "^3.0.0@beta", + "theseer/phpdox": "^0.10.1" + }, + "scripts": { + "build": "vendor/bin/robo build", + "build:css": "cd public && npm run build && cd ..", + "clean": "vendor/bin/robo clean", + "coverage": "phpdbg -qrr -- vendor/bin/phpunit -c build", + "docs": "vendor/bin/phpdox", + "phpstan": "phpstan analyse src tests", + "watch:css": "cd public && npm run watch", + "test": "vendor/bin/phpunit" + } } diff --git a/index.php b/index.php index b89d9fc0..cd54fb08 100644 --- a/index.php +++ b/index.php @@ -16,7 +16,6 @@ namespace Aviat\AnimeClient; -use function Aviat\AnimeClient\loadToml; use function Aviat\Ion\_dir; // Work around the silly timezone error @@ -27,7 +26,7 @@ if ($timezone === '' || $timezone === FALSE) } // Load composer autoloader -require __DIR__ . '/vendor/autoload.php'; +require_once __DIR__ . '/vendor/autoload.php'; // Define base directories $APP_DIR = _dir(__DIR__, 'app'); @@ -37,8 +36,8 @@ $CONF_DIR = _dir($APP_DIR, 'config'); // ----------------------------------------------------------------------------- // Dependency Injection setup // ----------------------------------------------------------------------------- -require _dir($APPCONF_DIR, 'base_config.php'); // $base_config -$di = require _dir($APP_DIR, 'bootstrap.php'); +require_once $APPCONF_DIR . '/base_config.php'; // $base_config +$di = require $APP_DIR . '/bootstrap.php'; $config = loadToml($CONF_DIR); $config_array = array_merge($base_config, $config); @@ -46,10 +45,9 @@ $config_array = array_merge($base_config, $config); $container = $di($config_array); // Unset 'constants' -unset($APP_DIR); -unset($CONF_DIR); +unset($APP_DIR, $APPCONF_DIR); // ----------------------------------------------------------------------------- // Dispatch to the current route // ----------------------------------------------------------------------------- -$container->get('dispatcher')->__invoke(); \ No newline at end of file +$container->get('dispatcher')(); \ No newline at end of file diff --git a/src/AnimeClient.php b/src/AnimeClient.php index f185e8a6..226de822 100644 --- a/src/AnimeClient.php +++ b/src/AnimeClient.php @@ -18,7 +18,10 @@ namespace Aviat\AnimeClient; use Yosymfony\Toml\Toml; -define('SRC_DIR', realpath(__DIR__)); +if ( ! defined('SRC_DIR')) +{ + \define('SRC_DIR', \realpath(__DIR__)); +} const SESSION_SEGMENT = 'Aviat\AnimeClient\Auth'; const DEFAULT_CONTROLLER = 'Aviat\AnimeClient\Controller\Index'; @@ -29,35 +32,39 @@ const NOT_FOUND_METHOD = 'notFound'; const ERROR_MESSAGE_METHOD = 'errorPage'; const SRC_DIR = SRC_DIR; -/** - * Load configuration options from .toml files - * - * @param string $path - Path to load config - * @return array - */ -function loadToml(string $path): array + +if ( ! \function_exists('Aviat\AnimeClient\loadToml')) { - $output = []; - $files = glob("{$path}/*.toml"); - - foreach ($files as $file) + /** + * Load configuration options from .toml files + * + * @param string $path - Path to load config + * @return array + */ + function loadToml(string $path): array { - $key = str_replace('.toml', '', basename($file)); - $toml = file_get_contents($file); - $config = Toml::Parse($toml); + $output = []; + $files = glob("{$path}/*.toml"); - if ($key === 'config') + foreach ($files as $file) { - foreach($config as $name => $value) + $key = str_replace('.toml', '', basename($file)); + $toml = file_get_contents($file); + $config = Toml::parse($toml); + + if ($key === 'config') { - $output[$name] = $value; + foreach($config as $name => $value) + { + $output[$name] = $value; + } + + continue; } - continue; + $output[$key] = $config; } - $output[$key] = $config; + return $output; } - - return $output; -} \ No newline at end of file +} diff --git a/src/Controller.php b/src/Controller.php index 0842d2ed..24324a71 100644 --- a/src/Controller.php +++ b/src/Controller.php @@ -16,19 +16,17 @@ namespace Aviat\AnimeClient; -use const Aviat\AnimeClient\SESSION_SEGMENT; - use function Aviat\Ion\_dir; -use Aviat\AnimeClient\API\JsonAPI; use Aviat\Ion\Di\{ContainerAware, ContainerInterface}; +use Aviat\Ion\Exception\DoubleRenderException; use Aviat\Ion\View\{HtmlView, HttpView, JsonView}; use InvalidArgumentException; /** * Controller base, defines output methods * - * @property Response object $response + * @property $response Response object */ class Controller { @@ -96,6 +94,8 @@ class Controller { * Constructor * * @param ContainerInterface $container + * @throws \Aviat\Ion\Di\ContainerException + * @throws \Aviat\Ion\Di\NotFoundException */ public function __construct(ContainerInterface $container) { @@ -122,7 +122,7 @@ class Controller { // Set a 'previous' flash value for better redirects $serverParams = $this->request->getServerParams(); - if (array_key_exists('HTTP_REFERER', $serverParams)) + if (array_key_exists('HTTP_REFERER', $serverParams) && false === stripos($serverParams['HTTP_REFERER'], 'login')) { $this->session->setFlash('previous', $serverParams['HTTP_REFERER']); } @@ -146,6 +146,8 @@ class Controller { * Set the current url in the session as the target of a future redirect * * @param string|null $url + * @throws \Aviat\Ion\Di\ContainerException + * @throws \Aviat\Ion\Di\NotFoundException * @return void */ public function setSessionRedirect(string $url = NULL) @@ -159,16 +161,17 @@ class Controller { $util = $this->container->get('util'); $doubleFormPage = $serverParams['HTTP_REFERER'] === $this->request->getUri(); + $isLoginPage = (bool) strpos($serverParams['HTTP_REFERER'], 'login'); // Don't attempt to set the redirect url if // the page is one of the form type pages, // and the previous page is also a form type page_segments - if ($doubleFormPage) + if ($doubleFormPage || $isLoginPage) { return; } - if (is_null($url)) + if (null === $url) { $url = $util->isViewPage() ? $this->request->url->get() @@ -181,6 +184,9 @@ class Controller { /** * Redirect to the url previously set in the session * + * @throws InvalidArgumentException + * @throws \Aviat\Ion\Di\ContainerException + * @throws \Aviat\Ion\Di\NotFoundException * @return void */ public function sessionRedirect() @@ -204,6 +210,8 @@ class Controller { * @param string $template * @param array $data * @throws InvalidArgumentException + * @throws \Aviat\Ion\Di\ContainerException + * @throws \Aviat\Ion\Di\NotFoundException * @return string */ protected function loadPartial($view, string $template, array $data = []) @@ -235,6 +243,9 @@ class Controller { * @param HtmlView $view * @param string $template * @param array $data + * @throws InvalidArgumentException + * @throws \Aviat\Ion\Di\ContainerException + * @throws \Aviat\Ion\Di\NotFoundException * @return void */ protected function renderFullPage($view, string $template, array $data) @@ -260,6 +271,11 @@ class Controller { /** * 404 action * + * @param string $title + * @param string $message + * @throws InvalidArgumentException + * @throws \Aviat\Ion\Di\ContainerException + * @throws \Aviat\Ion\Di\NotFoundException * @return void */ public function notFound( @@ -280,6 +296,9 @@ class Controller { * @param string $title * @param string $message * @param string $long_message + * @throws InvalidArgumentException + * @throws \Aviat\Ion\Di\ContainerException + * @throws \Aviat\Ion\Di\NotFoundException * @return void */ public function errorPage(int $httpCode, string $title, string $message, string $long_message = "") @@ -330,7 +349,7 @@ class Controller { /** * Helper for consistent page titles * - * @param string ...$parts Title segements + * @param string[] ...$parts Title segments * @return string */ public function formatTitle(string ...$parts) : string @@ -344,6 +363,9 @@ class Controller { * @param HtmlView $view * @param string $type * @param string $message + * @throws InvalidArgumentException + * @throws \Aviat\Ion\Di\ContainerException + * @throws \Aviat\Ion\Di\NotFoundException * @return string */ protected function showMessage($view, string $type, string $message): string @@ -361,11 +383,14 @@ class Controller { * @param array $data * @param HtmlView|null $view * @param int $code + * @throws InvalidArgumentException + * @throws \Aviat\Ion\Di\ContainerException + * @throws \Aviat\Ion\Di\NotFoundException * @return void */ protected function outputHTML(string $template, array $data = [], $view = NULL, int $code = 200) { - if (is_null($view)) + if (null === $view) { $view = new HtmlView($this->container); } @@ -379,6 +404,7 @@ class Controller { * * @param mixed $data * @param int $code - the http status code + * @throws DoubleRenderException * @return void */ protected function outputJSON($data = 'Empty response', int $code = 200) diff --git a/src/Controller/Manga.php b/src/Controller/Manga.php index 6e490c12..84c4a55e 100644 --- a/src/Controller/Manga.php +++ b/src/Controller/Manga.php @@ -273,8 +273,6 @@ class Manga extends Controller { ); } - // dump($data); - foreach($data['included'] as $included) { if ($included['type'] === 'characters')