-
-
Save junaidulqayyumqureshi/1f5a1fca2c7db1957d5bd70c20c66e6a to your computer and use it in GitHub Desktop.
Code snippets which I use more often in projects |
PHP Script Execution Time
$time_start = microtime(true);
//sample script
$time_end = microtime(true);
//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;
Last DAY PHP => Previous Day PHP
date('Y-m-d', strtotime('-1 day', strtotime("2020-01-01")))
Clone array but without reference JS
arr2 = JSON.parse(JSON.stringify(arr1))
Loop through a JSON Object Keys
for (var key of Object.keys(p)) {
console.log(key + " -> " + p[key])
}
Check storage of a directory
sudo du -sh /var
Image Magic OR Imagick
INSERT INTO SELECT STATEMENT
INSERT into tableA (id, colA, colB, ...) (SELECT id, colA, colB, ...)
ZIP Archive Linux
zip -r myfiles.zip mydir
Bubble Sort
$arr = [7,3,1,4,2];
$toGo = true;
while($toGo){
$swap = false;
for ($i=0; $i < sizeof($arr); $i++) {
if($i == sizeof($arr)-1)
continue;
if($arr[$i] > $arr[$i+1]){
$swap = true;
[$arr[$i], $arr[$i+1]] = [$arr[$i+1], $arr[$i]];
}
}
if(!$swap)
$toGo = false;
}
echo "<pre>"; print_r($arr);
PHP ARRAY FUNCTIONS (Fat Arrow)
array_map(fn($tag) => new Tag($tag), $tags)
array_filter($stock, fn($item) => $item['qty'] > 0)
array_reduce($team, fn($carry, $person) => $carry + $person['points'], 0);
Laravel Service Containers
For example:
You have a class App\Billing\Stripe which requires some additional values in it's constructor i.e. Secret Key
Now you can bind App with the class and inject the dependency in it's constructor like it is done in the Screenshot above.
You won't need to reinitialize the class ever again in the project as you have already done this and now you can call the binding by App::make('classname')
or resolve('classname')
and you will have the ready instance without passing anything in the constructor
MYSQL STORE PRODCEDURE
DELIMITER $$
CREATE PROCEDURE `insert_into_order_contents_tables`(
IN `pref_id` INT,
IN `item_quantity_booker` VARCHAR(100)
)
BEGIN
insert into order_contents (
pref_id,
item_quantity_booker
) values (
pref_id,
item_quantity_booker
);
END$$
DELIMITER ;
POSTGRESQL DB Export Windows Command Line
Open Powershell.
Go to Postgres bin folder. For example: cd "C:\Program Files\PostgreSQL\9.6\bin"
Enter the command to dump your database. For example: ./pg_dump.exe -U postgres -d my_database_name -f D:\Backup\<backup-file-name>.sql.
Type password for your postgres user.
CORS ISSUE
The CORS issue should be fixed in the backend. Temporary workaround uses this option.
Go to C:\Program Files\Google\Chrome\Application
Open command prompt
Execute the command chrome.exe --disable-web-security --user-data-dir="c:/ChromeDevSession"
Transfer data from one server to another
Copy files from one SSH to another SSH server
scp /path/to/file username@a:/path/to/destination
Step 1:
Zip the product
zip -r product.zip /var/www/product
Step 2:
Take db dump on host server
mysqldump -u root -p spencer > /var/www/exported.sql
Step 3:
Transfer it to new server
scp /var/www/spencer.zip root@{ipaddresss}:/var/www/product-destination-on-remote-server
Import Export MySQL DB Command Line
Export Dump.sql WITH/WITHOUT SCHEMA
mysqldump -u root -p DB_NAME > /var/www/exported.sql
mysqldump -u root -p --no-data DB_NAME > /var/www/exported.sql
Import Dump.sql
mysql -u root -p database_name < file.sql
Find string/substring linux
grep -rnw '/var/www/project' -e 'stringtosearch'
NodeJS Worker Threads
main.js
const { Worker } = require('worker_threads');
const worker = new Worker('./wthread.js');
worker.on('message', (msg) => {
console.log(`Msg: ${JSON.stringify(msg)}`);
});
// worker.on('error', reject);
worker.on('exit', (code) => {
if (code !== 0)
throw new Error(`stopped with ${code} exit code`)
})
wthread.js
const { workerData, parentPort } = require('worker_threads')
parentPort.postMessage({ "StartedAt": workerData })
------ Code Logic ------
parentPort.postMessage({ result: result })
Laravel Backup
Choose version first from
Source
For laravel v5
composer require "spatie/laravel-backup:^5.0.0"
For Laravel v6
composer require spatie/laravel-backup
For config files
php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
For backup
php artisan backup:run
OR
php artisan backup:run --only-db
Email Backup
Source
Non-Spatie Backup
Copy following content in a app > Console > Commands > DBBackup.php
Run
php artisan db:backup