omnicode / lara-tools by omnicode

Useful tools for laravel
9,909
1
2
Package Data
Maintainer Username: omnicode
Package Create Date: 2017-07-02
Package Last Update: 2020-08-21
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-12-23 03:04:19
Package Statistics
Total Downloads: 9,909
Monthly Downloads: 49
Daily Downloads: 6
Total Stars: 1
Total Watchers: 2
Total Forks: 0
Total Open Issues: 0

Lara Tools - Convenient tools for Laravel

Contents

  1. LaraUtil
    • hasTable
    • hasColumn
    • getFullColumns
    • hashPassword
    • verifyPassword
  2. ModelExtrasTrait
    • saveAssocited

LaraUtil

LaraUtil contains the following utility methods

hasTable

Checks if the given table exists - caching the result, returns true or false

LaraUtil::hasTable('users')

hasColumn

Checks if the given table has the given column - caching the query, returns true or false

LaraUtil::hasColumn('users', 'first_name')

getFullColumns

Accepts the columns list and the table name and adds the table name into columns if does not exist e.g.

$columns = ['id', 'first_name', 'users.last_name'];
$columns = LaraUtil::getFullColumns($columns, 'users');

// the final array will look like
['users.id', 'users.first_name', 'users.last_name']

hashPassword

Hashes the given string by bcrypt, however afterwards encrypting the password's hash by application-side key. It also applies sha256 method (before hashing) to remove bcrypt's length restriction - more

$hashedAndEcryptedPassword = LaraUtil::hashPassword('some password');

will be string like this eyJpdiI6IlU4amxZaVNCc2xjemlkZUNWRFVhb3c9PSIsInZhbHVlIjoidWs0bmRcL1JFMHk1dUE4Yk9kWFo3b2VSZEJuYXk5NngwUXMxMDBieTdvOVZ6d1JWQ3RObVE3RGZmcHlqYnV1Ymw5OFVKelRlb2JsSllcL21FVlk4WklVNHkzcnl5Ym90T0tJVzNZalRyUmI2dz0iLCJtYWMiOiI2MDE3ZTQ1NGE0NDcwNTY2Yjc3NzAyZmZlOWU4ZDBkMTE4ODNhNTY0YTE2ZmYzNDNkNDA0ZGI2ZWRhZjhjMTA3In0=

verifyPassword

Verifies the password hashed by hashPassword method above - returns true or false

$passwordMatch = verifyPassword('plan text password', $hashedAndEcryptedPassword);

ModelExtrasTrait

ModelExtrasTrait is a trait to be used in Models - provides the following methods

saveAssociated

saveAssociated method is a wrapper method, that allows to save BelongsToMany and HasMany related models in a single transaction, e.g. suppose we need to save a product with its related categories, we would use

Product::saveAssociated($data, ['associated' => 'categories']);

the $data should be an array like this

$data = ['name', 'price', 'categories_ids' => [1, 3, 7]]