Skip to content

Instantly share code, notes, and snippets.

View irazasyed's full-sized avatar
🎯
WIP

Irfaq Syed irazasyed

🎯
WIP
View GitHub Profile
@irazasyed
irazasyed / ArrayToShapeConverter.php
Last active May 17, 2023 18:30
PHP: Array to ArrayShape Converter for PHPDocs
<?php
namespace App\Services;
use ReflectionClass;
use Illuminate\Support\Facades\File;
class ArrayToShapeConverter
{
public function __construct(private string $basePath, private readonly string $namespace)
@irazasyed
irazasyed / README.md
Last active March 19, 2025 23:51
Instructions on How to use Cloudflare Argo Tunnel to Share Laravel Valet Site on macOS and Helper Bash Script

How to use Cloudflare Argo Tunnel to Share Laravel Valet Site on macOS

Set up a tunnel locally

1. Download and install cloudflared

brew install cloudflare/cloudflare/cloudflared
@irazasyed
irazasyed / install.sh
Created February 26, 2023 00:31
WordOps LEMP Stack Installation and Configuration
wget -qO wo wops.cc && sudo bash wo
# Auto completion
source /etc/bash_completion.d/wo_auto.rc
echo -e "alias wo='sudo -E wo'" >> $HOME/.bashrc
source $HOME/.bashrc
# Install stack
wo stack install
@irazasyed
irazasyed / composer-process-issue-solution.md
Created April 18, 2022 01:24
Composer - The process has been signaled with signal "6" - Solution

Composer - The process has been signaled with signal "6" - Solution

If you're on macOS and suddenly composer has started throwing this weird error and you're wondering where the problem is, well, here's the solution and how to debug.

Problem

Error when you run composer global update or any other similar commands.

In Process.php line 441:
@irazasyed
irazasyed / ip-address.php
Created March 5, 2022 01:02
PHP: Retrieve the IP address of the visitor.
<?php
/**
* Retrieve the IP address of the visitor.
*
* @return string
*/
function getIPAddress()
{
foreach (['HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR'] as $key) {
@irazasyed
irazasyed / Kernel.php
Created January 6, 2022 21:38 — forked from mkwsra/Kernel.php
Laravel middleware to store marketing related query string params
// Usage
class Kernel extends HttpKernel
{
// .....
// .....
// .....
protected $routeMiddleware = [
// .....
@irazasyed
irazasyed / mysq-mariadb-macos-start-issue.md
Created October 7, 2020 00:05
Solution for MySQL / MariaDB Start Issue on MacOS

Solution for MySQL / MariaDB Start Issue on MacOS

Errors

On trying to start mysql.server start

./usr/local/bin/mysql.server: line 264: kill: (12262) - No such process ERROR!

@irazasyed
irazasyed / google-fonts-async.html
Created May 28, 2020 19:30
Google Fonts Async Snippet
<!--
- Info: https://csswizardry.com/2020/05/the-fastest-google-fonts/
-
- 1. Preemptively warm up the fonts’ origin.
-
- 2. Initiate a high-priority, asynchronous fetch for the CSS file. Works in
- most modern browsers.
-
- 3. Initiate a low-priority, asynchronous fetch that gets applied to the page
- only after it’s arrived. Works in all browsers with JavaScript enabled.
@irazasyed
irazasyed / howto-enable-dnscrypt-proxy-v2-netgear-router.md
Last active February 23, 2020 05:17
How to Enable DNSCrypt-Proxy v2 on Netgear X4S R7800 / R8900 / R9000 Router

How to Enable DNSCrypt-Proxy v2 on Netgear X4S R7800 / R8900 / R9000 Router

Supported routers (Netgear R7800, R8900, and R9000)

Prerequisite

  • Make sure telnet is enabled in your router. You can visit this page and enable (login when prompted): http://www.routerlogin.com/debug.htm.
  • Once you telnet into your router using your routers password, you should setup your SSH key.
  • [Recommended] Add SSH key id_rsa.pub to /root/.ssh/authorized_keys (You might have to create this dir and file manually if not it doesn't already exist).
// Perform regex replacements and inject CSS/JavaScript with Cloudflare Workers
// https://community.cloudflare.com/t/perform-regex-replacements-and-inject-css-javascript-with-cloudflare-workers/90279
addEventListener('fetch', event => {
event.passThroughOnException()
event.respondWith(handleRequest(event.request))
})
/**
* Fetch and log a given request object
* @param {Request} request