xiyusullos / nullable by xiyusullos

chain calls on object whatever the object is null or not
2,215
15
1
Package Data
Maintainer Username: xiyusullos
Maintainer Contact: i@xy-jit.cc (xiyusullos)
Package Create Date: 2017-03-22
Package Last Update: 2017-03-24
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-11-23 03:15:34
Package Statistics
Total Downloads: 2,215
Monthly Downloads: 1
Daily Downloads: 0
Total Stars: 15
Total Watchers: 1
Total Forks: 0
Total Open Issues: 0

Nullable - Chain calls on Null for PHP

Installation

Install the latest version with

composer require xiyusullos/nullable

Usage

Basic Usage

<?php

use xiyusullos\Nullable;

class Obj
{
    use Nullable;
    
    // ...
}

$obj = new Obj();
echo $obj->a->b->c;

Laravel Usage

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use xiyusullos\Nullable;

class Profile extends Model
{
    // supposed an attribute of departmentName
    use Nullable;

    public function user()
    {
        return $this->belongsTo(User::class);
    }

    // ...
}

class User extends Model
{
    use Nullable;

    public function profile()
    {
        return $this->hasOne(Profile::class);
    }

    // ...
 }

class Blog extends Model
{
    use Nullable;

    public function user()
    {
        return $this->belongsTo(User::class);
    }

    // ...
}

// wanna get the writer's department name who posted the blog #1

// without Nullable
$blog = Blog::find(1);
$user = $blog->user;
if ($user) {
    $profile = $user->profile;
    if ($profile) {
        $departmentName = (string) $profile->departmentName;
    }
} // that's so annoying!

// with Nullable
$blog = Blog::find(1);
$departmentName = (string) $blog->user->profile->departmentName;

About

Author

xiyusullos

License

Nullable is licensed under the MIT License - see the LICENSE file for details