omnicode / lara-tools
Useful tools for laravel
Installs: 10 028
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- cakephp/utility: ~3.3
- laravel/framework: ~5.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0|~5.0
README
Contents
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]]