Wallogit.com
2017 © Pedro Peláez
Helpers for Laravel
Laravel Sparkles is a collection of helpers that are often used in my Laravel project., (*1)
composer require mantas-done/laravel-sparkles 1.*
Get currently logged in user (the same as Auth::user()), (*2)
user();
Current user IP address, (*3)
ip();
Delete all models in collection, (*4)
delete($user->comments);
// equals to this
foreach ($user->comments as $comment) {
$comment->delete();
}
Delete one model, (*5)
delete($user->profilePicture);
// equals to
if ($user->profilePicture) {
$user->profilePicture->delete();
}
The same as delete(), but force deletes records (for soft deletes)., (*6)
forceDelete($user->comments);
// equals to this
foreach ($user->comments as $comment) {
$comment->forceDelete();
}
Bust cache of files: CSS, images...
It adds md5 hash of a file., (*7)
echo bustCache('/css/app.css'); // /css/app.css?v=0c39e0bb074f164bc2e7e3e5854927c5
Display currency with two digits., (*8)
twoDigits(1.2); // 1.20 twoDigits(1.234); // 1.23 twoDigits(1, '$'); // $1.00 twoDigits(-1, '$'); // -$1.00
Simplifies working with Laravel cookies. You can call those functions from anywhere in your code unlike Laravel cookie implementation., (*9)
cookieSet('name', 'value', 60);
cookieGet('name');
cookieForget('name');
Paginates collection or array and returns default Laravel paginator., (*10)
$users_array = [[
'email' => 'abc@abc.com',
'name' => 'Abc',
], [
'email' => 'bcd@bcd.com',
'name' => 'Bcd',
]];
$users = paginate($users_array);
return view('users.index', compact('users');
Controller request data validation, (*11)
// use
UserController extends Controller
{
public function store() {
validate([
'email' => 'required|email',
]);
// save user
}
}
// instead of
UserController extends Controller
{
public function store(Request $request) {
$request->validate([
'email' => 'required|email',
]);
// save user
}
}
Function data validation, (*12)
class Comment
{
public static function saveComment($email, $comment) {
validate([
'email' => 'required|email',
'comment' => 'required|string|between:1,256',
], compact('email', 'comment'));
// save comment
}
}
When folder is created in /storag/app folder, usually it has .gitignore file added to it.
When migrating and seeding database in development, it is beneficial to delete all files from some folders., (*13)
deleteAllDirectoryFilesExceptGitignore('/storage/app/uploads');
Get instance of a faker, (*14)
echo faker()->email;
I decided to share my helpers when I saw that similar concepts got implemented in Laravel, like artisan fresh and now().
I believe that other developers have their own gems hidden in their code. If you would like to share one of them, please create a pull request to master branch., (*15)