Skip to content

Instantly share code, notes, and snippets.

View AnandPilania's full-sized avatar
🎖️
Working from home

Anand Pilania AnandPilania

🎖️
Working from home
View GitHub Profile
@AnandPilania
AnandPilania / console.php
Last active March 17, 2023 07:55
Laravel: find missing translations with Artisan Closure Command (cli).
<?php
// ADD THIS TO routes/console.php
Artisan::command('lang {key} {lang?}', function ($key, $lang = null) {
config([
'filesystems.disks.lang' => [
'driver' => 'local',
'root' => lang_path(),
],
]);
@AnandPilania
AnandPilania / CreateGeneralExportFileJob.php
Created January 10, 2023 02:31
A simple Laravel job that can help you export data through CSV from a database with millions of rows.
<?php
namespace App\Jobs;
use App\Models\GeneralExport;
use Storage;
class CreateGeneralExportFileJob implements ShouldQueue
{
@AnandPilania
AnandPilania / helpers.php
Created February 19, 2023 15:25
Laravel Pipeline helper/wrapper
<?php
if( ! function_exists('pipe')) {
function pipe($payload, $steps = [])
{
return app(\Illuminate\Pipeline\Pipeline::class)
->send($payload)
->through($steps)
@AnandPilania
AnandPilania / console.php
Created February 28, 2023 10:11
Generate Random Password with Laravel Console Route
// ... ADD TO `web/console.php`
Artisan::command('pswd {length?}', function ($length = 24) {
dd(implode('', array_map(function () {
return chr(random_int(33, 126));
}, array_fill(0, $length, null))));
});
@AnandPilania
AnandPilania / GeneratePassword.php
Created March 1, 2023 11:56
Generate Password
function generatePassword(int $length, bool $lower = true, bool $upper = true, bool $number = true, bool $symbol = true): string
{
$sets = [
'lower' => 'abcdefghijklmnopqrstuvwxyz',
'upper' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'number' => '0123456789',
'symbol' => '!@#$%^&*()_-=+{}[];:,.<>?',
];
$chars = '';
@AnandPilania
AnandPilania / pipeline.js
Created March 14, 2023 06:08
Using Laravel Pipeline in JS
function Pipeline(stages) {
if (!(this instanceof Pipeline)) {
return new Pipeline(stages);
}
this.stages = stages || [];
}
Pipeline.prototype.send = function (payload) {
this.payload = payload;
return this;
@AnandPilania
AnandPilania / collect.js
Created March 14, 2023 06:45
JS Collection : A port of Laravel Collection
(function () {
let Collection = function (data) {
this.data = data || [];
};
Collection.make = function (data) {
return new Collection(data);
};
Collection.prototype = {
<?php
function pipe($subject) {
return new Pipe($subject);
}
class Pipe implements \Stringable, \ArrayAccess, \IteratorAggregate
{
use Transparency;
@AnandPilania
AnandPilania / MemorizeClass.php
Last active March 21, 2023 17:18
Laravel memorize once in a request
<?php
class MemorizeClass
{
function __construct(
protected $target,
protected &$memo,
) {}
public function __call($method, $params)
@AnandPilania
AnandPilania / utils.js
Created March 17, 2023 08:35
JS helper utils
function benchmark(times, callbacks) {
let result = {}
Object.entries(callbacks).forEach(([key, value]) => {
let thing = {}
let start = performance.now()
for (let index = 0; index < times; index++) {
value()
}