Enable strict types partially

This commit is contained in:
Pig Fang 2019-07-02 22:22:05 +08:00
parent f93e0d1755
commit be9f6011bb
7 changed files with 69 additions and 91 deletions

View File

@ -1,5 +1,7 @@
<?php <?php
declare(strict_types=1);
namespace App\Services; namespace App\Services;
use Event; use Event;
@ -23,7 +25,7 @@ class Hook
* ] * ]
* @return void * @return void
*/ */
public static function addMenuItem($category, $position, array $menu) public static function addMenuItem(string $category, int $position, array $menu): void
{ {
$class = 'App\Events\Configure'.Str::title($category).'Menu'; $class = 'App\Events\Configure'.Str::title($category).'Menu';
@ -54,14 +56,14 @@ class Hook
* *
* @param Closure $callback * @param Closure $callback
*/ */
public static function addRoute(Closure $callback) public static function addRoute(Closure $callback): void
{ {
Event::listen(Events\ConfigureRoutes::class, function ($event) use ($callback) { Event::listen(Events\ConfigureRoutes::class, function ($event) use ($callback) {
return call_user_func($callback, $event->router); return call_user_func($callback, $event->router);
}); });
} }
public static function registerPluginTransScripts($id, $pages = ['*'], $priority = 999) public static function registerPluginTransScripts(string $id, $pages = ['*'], $priority = 999): void
{ {
Event::listen(Events\RenderingFooter::class, function ($event) use ($id, $pages) { Event::listen(Events\RenderingFooter::class, function ($event) use ($id, $pages) {
foreach ($pages as $pattern) { foreach ($pages as $pattern) {
@ -83,7 +85,7 @@ class Hook
}, $priority); }, $priority);
} }
public static function addStyleFileToPage($urls, $pages = ['*'], $priority = 1) public static function addStyleFileToPage($urls, $pages = ['*'], $priority = 1): void
{ {
Event::listen(Events\RenderingHeader::class, function ($event) use ($urls, $pages) { Event::listen(Events\RenderingHeader::class, function ($event) use ($urls, $pages) {
foreach ($pages as $pattern) { foreach ($pages as $pattern) {
@ -100,7 +102,7 @@ class Hook
}, $priority); }, $priority);
} }
public static function addScriptFileToPage($urls, $pages = ['*'], $priority = 1) public static function addScriptFileToPage($urls, $pages = ['*'], $priority = 1): void
{ {
Event::listen(Events\RenderingFooter::class, function ($event) use ($urls, $pages) { Event::listen(Events\RenderingFooter::class, function ($event) use ($urls, $pages) {
foreach ($pages as $pattern) { foreach ($pages as $pattern) {

View File

@ -14,7 +14,7 @@ class Minecraft
* @param string $view Which side of head to be captured, defaults to 'f' for front view. * @param string $view Which side of head to be captured, defaults to 'f' for front view.
* @return resource * @return resource
*/ */
public static function generateAvatarFromSkin($binary, $height, $view = 'f') public static function generateAvatarFromSkin(string $binary, int $height, string $view = 'f')
{ {
$src = imagecreatefromstring($binary); $src = imagecreatefromstring($binary);
$dest = imagecreatetruecolor($height, $height); $dest = imagecreatetruecolor($height, $height);
@ -47,7 +47,7 @@ class Minecraft
* @param int $gap Gap size between front & back preview in relative pixel. * @param int $gap Gap size between front & back preview in relative pixel.
* @return resource * @return resource
*/ */
public static function generatePreviewFromSkin($binary, $height, $alex = false, $side = 'both', $gap = 4) public static function generatePreviewFromSkin(string $binary, int $height, $alex = false, $side = 'both', $gap = 4)
{ {
$src = imagecreatefromstring($binary); $src = imagecreatefromstring($binary);
@ -172,7 +172,7 @@ class Minecraft
* @param int $fillHeight Set the value to 0 to disable. * @param int $fillHeight Set the value to 0 to disable.
* @return resource * @return resource
*/ */
public static function generatePreviewFromCape($binary, $height, $fillWidth = 0, $fillHeight = 0) public static function generatePreviewFromCape(string $binary, int $height, $fillWidth = 0, $fillHeight = 0)
{ {
$src = imagecreatefromstring($binary); $src = imagecreatefromstring($binary);
$ratio = imagesx($src) / 64; $ratio = imagesx($src) / 64;

View File

@ -1,5 +1,7 @@
<?php <?php
declare(strict_types=1);
namespace App\Services; namespace App\Services;
use Cache; use Cache;
@ -20,7 +22,7 @@ class PackageManager
}; };
} }
public function download($url, $path, $shasum = null) public function download(string $url, string $path, $shasum = null): self
{ {
$this->path = $path; $this->path = $path;
$this->cacheKey = "download_$url"; $this->cacheKey = "download_$url";
@ -44,7 +46,7 @@ class PackageManager
return $this; return $this;
} }
public function extract($destination) public function extract(string $destination): void
{ {
$zip = new \ZipArchive(); $zip = new \ZipArchive();
$resource = $zip->open($this->path); $resource = $zip->open($this->path);
@ -57,7 +59,7 @@ class PackageManager
} }
} }
public function progress() public function progress(): float
{ {
$progress = unserialize(Cache::get($this->cacheKey)); $progress = unserialize(Cache::get($this->cacheKey));
if ($progress['total'] == 0) { if ($progress['total'] == 0) {

View File

@ -1,8 +1,11 @@
<?php <?php
declare(strict_types=1);
namespace App\Services; namespace App\Services;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Support\Str;
/** /**
* @property string $name * @property string $name
@ -61,79 +64,71 @@ class Plugin
*/ */
protected $enabled = false; protected $enabled = false;
/** public function __construct(string $path, array $packageInfo)
* @param $path
* @param array $packageInfo
*/
public function __construct($path, $packageInfo)
{ {
$this->path = $path; $this->path = $path;
$this->packageInfo = $packageInfo; $this->packageInfo = $packageInfo;
} }
public function __get($name) public function __get(string $name)
{ {
return $this->packageInfoAttribute(snake_case($name, '-')); return $this->packageInfoAttribute(Str::snake($name, '-'));
} }
public function __isset($name) public function __isset(string $name)
{ {
return isset($this->{$name}) || $this->packageInfoAttribute(snake_case($name, '-')); return isset($this->{$name}) || $this->packageInfoAttribute(snake_case($name, '-'));
} }
public function packageInfoAttribute($name) public function packageInfoAttribute(string $name)
{ {
return Arr::get($this->packageInfo, $name); return Arr::get($this->packageInfo, $name);
} }
public function assets($relativeUri) public function assets(string $relativeUri): string
{ {
$baseUrl = config('plugins.url') ?: url('plugins'); $baseUrl = config('plugins.url') ?: url('plugins');
return "$baseUrl/{$this->getDirname()}/assets/$relativeUri?v=".$this->version; return "$baseUrl/{$this->getDirname()}/assets/$relativeUri?v=".$this->version;
} }
/** public function setInstalled(bool $installed): self
* @param bool $installed
* @return Plugin
*/
public function setInstalled($installed)
{ {
$this->installed = $installed; $this->installed = $installed;
return $this; return $this;
} }
public function getDirname() public function getDirname(): string
{ {
return $this->dirname; return $this->dirname;
} }
public function setDirname($dirname) public function setDirname(string $dirname): self
{ {
$this->dirname = $dirname; $this->dirname = $dirname;
return $this; return $this;
} }
public function getNameSpace() public function getNameSpace(): string
{ {
return $this->namespace; return $this->namespace;
} }
public function setNameSpace($namespace) public function setNameSpace(string $namespace): self
{ {
$this->namespace = $namespace; $this->namespace = $namespace;
return $this; return $this;
} }
public function getViewPath($name) public function getViewPath(string $name): string
{ {
return $this->getViewPathByFileName("$name.tpl"); return $this->getViewPathByFileName("$name.tpl");
} }
public function getViewPathByFileName($filename) public function getViewPathByFileName(string $filename): string
{ {
return $this->path."/views/$filename"; return $this->path."/views/$filename";
} }
@ -143,74 +138,50 @@ class Plugin
return $this->hasConfigView() ? view()->file($this->getViewPathByFileName(Arr::get($this->packageInfo, 'config'))) : null; return $this->hasConfigView() ? view()->file($this->getViewPathByFileName(Arr::get($this->packageInfo, 'config'))) : null;
} }
public function hasConfigView() public function hasConfigView(): bool
{ {
$filename = Arr::get($this->packageInfo, 'config'); $filename = Arr::get($this->packageInfo, 'config');
return $filename && file_exists($this->getViewPathByFileName($filename)); return $filename && file_exists($this->getViewPathByFileName($filename));
} }
/** public function setVersion(string $version): self
* @param string $version
* @return Plugin
*/
public function setVersion($version)
{ {
$this->version = $version; $this->version = $version;
return $this; return $this;
} }
/** public function getVersion(): string
* @return string
*/
public function getVersion()
{ {
return $this->version; return $this->version;
} }
/** public function setRequirements(array $require): self
* @param array $require
* @return Plugin
*/
public function setRequirements($require)
{ {
$this->require = $require; $this->require = $require;
return $this; return $this;
} }
/** public function getRequirements(): array
* @return array
*/
public function getRequirements()
{ {
return (array) $this->require; return (array) $this->require;
} }
/** public function setEnabled(bool $enabled): self
* @param bool $enabled
* @return Plugin
*/
public function setEnabled($enabled)
{ {
$this->enabled = $enabled; $this->enabled = $enabled;
return $this; return $this;
} }
/** public function isEnabled(): bool
* @return bool
*/
public function isEnabled()
{ {
return $this->enabled; return $this->enabled;
} }
/** public function getPath(): string
* @return string
*/
public function getPath()
{ {
return $this->path; return $this->path;
} }

View File

@ -1,5 +1,7 @@
<?php <?php
declare(strict_types=1);
namespace App\Services; namespace App\Services;
use File; use File;
@ -17,7 +19,7 @@ class Webpack
} }
} }
public function __get($path) public function __get(string $path)
{ {
return Arr::get($this->manifest, $path, ''); return Arr::get($this->manifest, $path, '');
} }

View File

@ -1,12 +1,14 @@
<?php <?php
declare(strict_types=1);
use Carbon\Carbon; use Carbon\Carbon;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Support\Str; use Illuminate\Support\Str;
if (! function_exists('webpack_assets')) { if (! function_exists('webpack_assets')) {
function webpack_assets($relativeUri) function webpack_assets(string $relativeUri): string
{ {
if (app()->environment('development')) { if (app()->environment('development')) {
// @codeCoverageIgnoreStart // @codeCoverageIgnoreStart
@ -23,19 +25,14 @@ if (! function_exists('webpack_assets')) {
} }
if (! function_exists('plugin')) { if (! function_exists('plugin')) {
function plugin(string $id)
/**
* @param string $id
* @return \App\Services\Plugin
*/
function plugin($id)
{ {
return app('plugins')->getPlugin($id); return app('plugins')->getPlugin($id);
} }
} }
if (! function_exists('plugin_assets')) { if (! function_exists('plugin_assets')) {
function plugin_assets($id, $relativeUri) function plugin_assets(string $id, string $relativeUri): string
{ {
if ($plugin = plugin($id)) { if ($plugin = plugin($id)) {
return $plugin->assets($relativeUri); return $plugin->assets($relativeUri);
@ -69,7 +66,7 @@ if (! function_exists('json')) {
} }
if (! function_exists('bs_footer_extra')) { if (! function_exists('bs_footer_extra')) {
function bs_footer_extra() function bs_footer_extra(): string
{ {
$extraContents = []; $extraContents = [];
@ -80,7 +77,7 @@ if (! function_exists('bs_footer_extra')) {
} }
if (! function_exists('bs_header_extra')) { if (! function_exists('bs_header_extra')) {
function bs_header_extra() function bs_header_extra(): string
{ {
$extraContents = []; $extraContents = [];
@ -91,7 +88,7 @@ if (! function_exists('bs_header_extra')) {
} }
if (! function_exists('bs_menu')) { if (! function_exists('bs_menu')) {
function bs_menu($type) function bs_menu(string $type): string
{ {
$menu = config('menu'); $menu = config('menu');
@ -139,7 +136,7 @@ if (! function_exists('bs_menu')) {
return bs_menu_render($menu[$type]); return bs_menu_render($menu[$type]);
} }
function bs_menu_render($data) function bs_menu_render(array $data): string
{ {
$content = ''; $content = '';
@ -187,7 +184,7 @@ if (! function_exists('bs_menu')) {
} }
if (! function_exists('bs_copyright')) { if (! function_exists('bs_copyright')) {
function bs_copyright() function bs_copyright(): string
{ {
return Arr::get( return Arr::get(
[ [
@ -239,7 +236,7 @@ if (! function_exists('option_localized')) {
} }
if (! function_exists('humanize_db_type')) { if (! function_exists('humanize_db_type')) {
function humanize_db_type($type = null) function humanize_db_type($type = null): string
{ {
$map = [ $map = [
'mysql' => 'MySQL', 'mysql' => 'MySQL',
@ -271,7 +268,7 @@ if (! function_exists('format_http_date')) {
* @param int $timestamp * @param int $timestamp
* @return string * @return string
*/ */
function format_http_date($timestamp) function format_http_date($timestamp): string
{ {
return Carbon::createFromTimestampUTC($timestamp)->format('D, d M Y H:i:s \G\M\T'); return Carbon::createFromTimestampUTC($timestamp)->format('D, d M Y H:i:s \G\M\T');
} }
@ -284,7 +281,7 @@ if (! function_exists('get_datetime_string')) {
* @param int $timestamp * @param int $timestamp
* @return string * @return string
*/ */
function get_datetime_string($timestamp = 0) function get_datetime_string($timestamp = 0): string
{ {
return $timestamp == 0 ? Carbon::now()->toDateTimeString() : Carbon::createFromTimestamp($timestamp)->toDateTimeString(); return $timestamp == 0 ? Carbon::now()->toDateTimeString() : Carbon::createFromTimestamp($timestamp)->toDateTimeString();
} }
@ -299,7 +296,7 @@ if (! function_exists('get_client_ip')) {
* *
* @return string * @return string
*/ */
function get_client_ip() function get_client_ip(): string
{ {
if (option('ip_get_method') == '0') { if (option('ip_get_method') == '0') {
// Use `HTTP_X_FORWARDED_FOR` if available first // Use `HTTP_X_FORWARDED_FOR` if available first
@ -330,7 +327,7 @@ if (! function_exists('get_string_replaced')) {
* @param array $rules * @param array $rules
* @return string * @return string
*/ */
function get_string_replaced($str, $rules) function get_string_replaced(string $str, array $rules): string
{ {
foreach ($rules as $search => $replace) { foreach ($rules as $search => $replace) {
$str = str_replace($search, $replace, $str); $str = str_replace($search, $replace, $str);
@ -350,7 +347,7 @@ if (! function_exists('is_request_secure')) {
* *
* @return bool * @return bool
*/ */
function is_request_secure() function is_request_secure(): bool
{ {
if (Arr::get($_SERVER, 'HTTPS') == 'on') { if (Arr::get($_SERVER, 'HTTPS') == 'on') {
return true; return true;
@ -375,7 +372,7 @@ if (! function_exists('nl2p')) {
* @param string $text * @param string $text
* @return string * @return string
*/ */
function nl2p($text) function nl2p(string $text): string
{ {
$parts = explode("\n", $text); $parts = explode("\n", $text);
$result = '<p>'.implode('</p><p>', $parts).'</p>'; $result = '<p>'.implode('</p><p>', $parts).'</p>';

View File

@ -1,8 +1,12 @@
<?php <?php
declare(strict_types=1);
namespace Tests\Concerns; namespace Tests\Concerns;
class FakePackageManager extends \App\Services\PackageManager use App\Services\PackageManager;
class FakePackageManager extends PackageManager
{ {
private $throw; private $throw;
@ -12,7 +16,7 @@ class FakePackageManager extends \App\Services\PackageManager
$this->throw = $throw; $this->throw = $throw;
} }
public function download($url, $path, $shasum = null) public function download(string $url, string $path, $shasum = null): PackageManager
{ {
if ($this->throw) { if ($this->throw) {
throw new \Exception(''); throw new \Exception('');
@ -21,13 +25,13 @@ class FakePackageManager extends \App\Services\PackageManager
} }
} }
public function extract($destination) public function extract(string $destination): void
{ {
return true; //
} }
public function progress() public function progress(): float
{ {
return '0'; return 0.0;
} }
} }