2017 © Pedro Peláez
 

library util

a library for laravel

image

orbas/util

a library for laravel

  • Wednesday, August 30, 2017
  • by flash662
  • Repository
  • 5 Watchers
  • 7 Stars
  • 742 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 7 Versions
  • 3 % Grown

The README.md

Laravel Util

Build Status StyleCI, (*1)

Laravel Util provides some useful method, such like enum and presenter, (*2)

Installation

To get the latest version, simply require the project using Composer:, (*3)

$ composer require orbas/util, (*4)

and register the Orbas\Util\ServiceProvider::class service provider in your config/app.php, (*5)

Enum

A enum is a distinct type that consists of a set of named constants called the enumerator list., (*6)

You can use it in a easier way to make your own enum., (*7)

Create a enum class

$ php artisan util:make:enum Gender, (*8)

That will create a class to app/Enums/ folder, (*9)

Define the enum

```php namespace App\Enums;, (*10)

use Orbas\Util\Enum\Enumable;, (*11)

class Gender implements Enumable { /** * * @return array */ public function create() { return ['female', 'male']; } } ```, (*12)

or you can define the key, (*13)

namespace App\Enums;

use Orbas\Util\Enum\Enumable;

class Weekday implements Enumable
{
    /**
     *
     * @return array
     */
    public function create()
    {
        return [
            1 => 'Monday',
            2 => 'Tuesday',
            3 => 'Wednesday',
            4 => 'Thursday',
            5 => 'Friday',
            6 => 'Saturday',
            7 => 'Sunday'
        ];
    }
}

Enjoy using it

Generate a collection of gender, (*14)

app('enum')->create('gender');

Get value from key, (*15)

app('enum')->value(1, 'weekday'); // this will echo Monday  

Use Facade

Add class aliases to the aliases array of config/app.php:, (*16)

  'aliases' => [
    // ...
      'Enum' => \Orbas\Util\Facades\Enum::class,
    // ...
  ],

then you can use it like this, (*17)

// equal to app('enum')->create('gender');
Enum::create('gender');
Enum::gender();

More functionality will be released in the future., (*18)

Presenter

or you can call it view presenter. Sometimes you have some logic need to be performed before you put the data., (*19)

for example, (*20)

{{ $user->first_name }} {{ $user->last_name }}
{{ $user->gender == 0 ? 'female' : 'male' }}
{{ Carbon\Carbon::parse($user->birthday->format('d/m/Y') }}

A presenter is a pattern that you can put the logic far from view and model. (keep model clean, and do what it should do.), (*21)

Create a presenter class

$ php artisan util:make:presenter User, (*22)

That will create a class to app/Presenters folder, (*23)

Edit your presenter logic

namespace App\Presenters;

use Orbas\Util\Presenter;

class User extends Presenter
{
    public function full_name()
    {
        return $this->attribute('first_name') . ' ' . $this->last_name;
    }

    public function birthday()
    {
        return Carbon\Carbon::parse($this->attribute('')
    }
}

Put present trait to your model

namespace App;

use Illuminate\Database\Eloquent\Model;
use Orbas\Util\Traits\Presenter;

class User extends Model
{
    use Presenter;   
}

Usage

$user = App\User::find(1);

$user->present()->full_name;

// or
$user->present('full_name');

Multi-language with Enum

Presenter provides auto translation., (*24)

Put enums.php to resources/lang/YOUR_LOCALE/enums.php, (*25)

// resources/lang/zh-TW/enums.php
return [
    'gender' => [    // enum name
        'female' => '女',    // enum key => translation word
        'male'   => '男'
    ]
];

Presenter will translate for you, (*26)

$user = App\User::first();
$user->present('gender');
// or
$user->present()->gender;

//or given a enum name and locale
$user->present()->enum('gender', 'Gender', 'zh-TW');

License

Laravel Util is licensed under The MIT License (MIT)., (*27)

The Versions

30/08 2017

dev-master

9999999-dev

a library for laravel

  Sources   Download

MIT

The Development Requires

by IvanWu

30/08 2017

0.2.1

0.2.1.0

a library for laravel

  Sources   Download

MIT

The Development Requires

by IvanWu

09/08 2017

0.2.0

0.2.0.0

a library for laravel

  Sources   Download

MIT

The Development Requires

by IvanWu

08/08 2017

0.1.2

0.1.2.0

a library for laravel

  Sources   Download

MIT

The Development Requires

by IvanWu

03/08 2017

0.1.1

0.1.1.0

a library for laravel

  Sources   Download

MIT

The Development Requires

by IvanWu

02/08 2017

dev-analysis-XVbJEP

dev-analysis-XVbJEP

a library for laravel

  Sources   Download

MIT

The Development Requires

by IvanWu