Struct Types

Squashed commit of the following:

commit 74ed84617fcbecf661695763323e50d049a88db7
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:46:29 2018 +0000

    Test passes so remove the dump statement

commit a7d3323be02da64f76e8ec88713e3de84a13ded7
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:40:35 2018 +0000

    Values with spaces need to be quoted

commit 58a120bb238f14346793c388b948b7351d3b51fd
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:37:23 2018 +0000

    We need a diplay name for the tests to work now we are using strict type checking

commit b46f177053bd697db9a4835d073f2f37e088b26f
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:31:29 2018 +0000

    Get travis to show more info about failing test

commit 60323f3ce5a0561329a1721ee94821571cdcc86a
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:23:27 2018 +0000

    Remove un-used namnepsace imports

commit 096d3505920bc94ff8677c77430eca0aae0be58a
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:21:55 2018 +0000

    we need php7.2 for object type-hint

commit bb818bc19c73d02d510af9f002199f5718a54608
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Jan 15 12:15:48 2018 +0000

    Added lots of strict_types
This commit is contained in:
Jonny Barnes 2018-01-15 14:02:13 +00:00
parent 053e19a457
commit e4fe2ecde3
64 changed files with 911 additions and 406 deletions

View file

@ -1,8 +1,11 @@
<?php
declare(strict_types=1);
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Media extends Model
{
@ -22,8 +25,10 @@ class Media extends Model
/**
* Get the note that owns this media.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function note()
public function note(): BelongsTo
{
return $this->belongsTo('App\Models\Note');
}
@ -33,7 +38,7 @@ class Media extends Model
*
* @return string
*/
public function getUrlAttribute()
public function getUrlAttribute(): string
{
if (starts_with($this->path, 'https://')) {
return $this->path;
@ -47,7 +52,7 @@ class Media extends Model
*
* @return string
*/
public function getMediumurlAttribute()
public function getMediumurlAttribute(): string
{
$basename = $this->getBasename($this->path);
$extension = $this->getExtension($this->path);
@ -60,7 +65,7 @@ class Media extends Model
*
* @return string
*/
public function getSmallurlAttribute()
public function getSmallurlAttribute(): string
{
$basename = $this->getBasename($this->path);
$extension = $this->getExtension($this->path);
@ -68,7 +73,13 @@ class Media extends Model
return config('filesystems.disks.s3.url') . '/' . $basename . '-small.' . $extension;
}
public function getBasename($path)
/**
* Give the real part of a filename, i.e. strip the file extension.
*
* @param string $path
* @return string
*/
public function getBasename(string $path): string
{
// the following achieves this data flow
// foo.bar.png => ['foo', 'bar', 'png'] => ['foo', 'bar'] => foo.bar
@ -81,7 +92,13 @@ class Media extends Model
return $basename;
}
public function getExtension($path)
/**
* Get the extension from a given filename.
*
* @param string $path
* @return string
*/
public function getExtension(string $path): string
{
$parts = explode('.', $path);