Skip to content

Instantly share code, notes, and snippets.

Avatar
😀

Grégoire Pineau lyrixx

😀
View GitHub Profile
@lyrixx
lyrixx / test.php
Created Aug 1, 2022
Symfony Playgound with its Container and a custom configuration
View test.php
<?php
require __DIR__ . '/vendor/autoload.php';
use Symfony\Component\Console\Output\StreamOutput;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
$k = new class('prod', false) extends AppKernel implements CompilerPassInterface {
public function process(ContainerBuilder $container)
@lyrixx
lyrixx / watch.sh
Created Jul 22, 2022
Watch dir and copy on change
View watch.sh
watch -n 1 cp -u -R ./source ./dest
# Run every seconds: `-n 1`
# Copy everything from "source" to "dest":
# `-R ./source ./dest`
# But only if the content is different `-u`
@lyrixx
lyrixx / post-checkout
Created Jun 26, 2013
Git post checkout
View post-checkout
#!/bin/bash
# Put this file at: .git/hooks/post-checkout
# and make it executable
# You can install it system wide too, see http://stackoverflow.com/a/2293578/685587
PREV_COMMIT=$1
POST_COMMIT=$2
NOCOLOR='\e[0m'
@lyrixx
lyrixx / HardCoreDebugLogger.php
Last active May 31, 2022
Hardcore Debug Logger
View HardCoreDebugLogger.php
<?php
const STREAM_OPEN_FOR_INCLUDE = 128;
final class HardCoreDebugLogger
{
public static function register(string $output = 'php://stdout')
{
register_tick_function(function () use ($output) {
$bt = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
@lyrixx
lyrixx / README.md
Last active Mar 22, 2022
PHP + Stream Wrapper + Stream Filter // Reproducer
View README.md

PHP + Stream Wrapper + Stream Filter // Reproducer

Reproducer for php/php-src#8219

Usage

Run php index.php

Output

@lyrixx
lyrixx / run.php
Last active Oct 7, 2021
Updated your templates with the new twig include
View run.php
<?php
<<<CONFIG
packages:
- "symfony/finder: ~3.0"
- "symfony/console: ~3.0"
CONFIG;
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
@lyrixx
lyrixx / segfault-finder.php
Last active Nov 6, 2020
How to find a segfault in PHP
View segfault-finder.php
<?php
register_tick_function(function() {
$bt = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
$last = reset($bt);
$info = sprintf("%s +%d\n", $last['file'], $last['line']);
file_put_contents('/tmp/segfault.txt', $info, FILE_APPEND);
// or
// file_put_contents('php://output', $info, FILE_APPEND);
});
@lyrixx
lyrixx / index.php
Created Apr 22, 2020
Very low memory usage iterator
View index.php
<?php
function m()
{
$memory = round(memory_get_usage() / 1024 / 1024, 2);
$frame = debug_backtrace(0, 1)[0];
$file = basename($frame['file']);
$line = $frame['line'];
printf("%s:%d | %sMb\n", $file, $line, $memory);
@lyrixx
lyrixx / README.md
Last active Mar 17, 2020
Spotify does not handle Media Keys
View README.md

Debug media keys and Spotify

TL;DR: There is a bug in gnome that have been fixed in 3.3. But you can temporary fix this issue with: pkill gsd-media-keys

Let's Debug

  1. We check logs

@lyrixx
lyrixx / .gitignore
Last active Feb 26, 2020
UUID generation in PHP