Skip to content

Instantly share code, notes, and snippets.

View ziadoz's full-sized avatar

Jamie York ziadoz

View GitHub Profile
@ziadoz
ziadoz / gist:9c15e77c5bbab95d31dd1d44ea842351
Created March 15, 2024 12:49
PHP - Find Min/Max Count in Multi-Dimensional Array
<?php
// @see: https://stackoverflow.com/questions/21861825/quick-way-to-find-the-largest-array-in-a-multidimensional-array
$array = [
['foo', 'bar'],
['foo'],
['foo', 'bar', 'baz'],
];
echo count(max($array)) . PHP_EOL;
echo count(min($array)) . PHP_EOL;
@ziadoz
ziadoz / FakesJavaScriptFetch.php
Last active March 7, 2024 11:05
Plain JS - Fake JSON Response From fetch()
<?php
namespace Tests;
use Laravel\Dusk\Browser;
trait FakesJavaScriptFetch
{
// Usage: $browser->script($this->fakeFetchResponse(['foo' => 'bar']));
public function fakeFetchResponse(array $data): string
{
@ziadoz
ziadoz / example.php
Last active February 23, 2024 13:26
Hypothetical PHP Getter/Setter Attribute Syntax
<?php
class Example
{
// By default the attribute binds a getter to `getName()`and setter to `setName()`.
#[Accessor]
protected string $name;
// Custom getter and setter method names can be passed.
#[Accessor(getter: 'customGetter, setter: 'customSetter')]
protected string $name;
@ziadoz
ziadoz / PreventMaxInputVarTruncation.php
Created February 2, 2024 15:17
Laravel 10.x - max_input_var INI Middleware
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
class PreventMaxInputVarTruncation
@ziadoz
ziadoz / index.html
Created January 31, 2024 09:57
JS - Custom Events
<a href="#">I am a link.</a>
<script>
document.addEventListener('DOMContentLoaded', () => {
const a = document.querySelector('a');
['load', 'click'].forEach((type) => {
a.addEventListener(type, (event) => {
event.preventDefault();
console.log(event.type);
});
@ziadoz
ziadoz / MyTest.php
Created January 31, 2024 09:27
Laravel - Modify Route Controller for Testing
<?php
namespace Tests;
use App\Controllers\MyController;
use Illuminate\Http\Response;
use Illuminate\Http\Request;
use Tests\TestCase;
class MyTest extends TestCase
@ziadoz
ziadoz / index.html
Created January 26, 2024 17:46
HTML/CSS/JS Transition Height Slide
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<style>
div.filters {
background: #999;
display: grid;
@ziadoz
ziadoz / index.html
Last active January 25, 2024 23:45
Select Date Dropdown / Input
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<style>
div.date-input:has(input:disabled) {
@ziadoz
ziadoz / enc-dec.sh
Created January 11, 2024 17:38
Bash/ZSH Encrypt/Decrypt File Aliases
#!/usr/bin/env bash
# @see: https://superuser.com/questions/370388/simple-built-in-way-to-encrypt-and-decrypt-a-file-on-a-mac-via-command-line
# @see: https://askubuntu.com/questions/1093591/how-should-i-change-encryption-according-to-warning-deprecated-key-derivat
alias decrypt="openssl enc -d -aes-256-cbc -md sha512 -pbkdf2 -iter 1000000 -in $1 -out $2"
alias encrypt="openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000000 -salt -in $1 -out $2"
@ziadoz
ziadoz / composer.json
Created January 11, 2024 17:33
Scrape Twitter using PHP and Symfony Panther
{
"require-dev": {
"symfony/panther": "^2.1",
"dbrekelmans/bdi": "^1.1"
}
}