Skip to content

Instantly share code, notes, and snippets.

Avatar

Grégoire Pineau lyrixx

View GitHub Profile
@lyrixx
lyrixx / .gitignore
Last active February 4, 2023 14:50
UUID generation in PHP
@lyrixx
lyrixx / HardCoreDebugLogger.php
Last active January 31, 2023 07:26
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 / post-checkout
Created June 26, 2013 13:37
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 / ContainerTest.php
Last active December 16, 2022 08:20
Test applications services can boot
View ContainerTest.php
<?php
namespace Tests\Integration;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\Config\Util\XmlUtils;
class ContainerTest extends KernelTestCase
{
private const FILTER_LIST = [
@lyrixx
lyrixx / segfault-finder.php
Last active August 25, 2022 13:51
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 / watch.sh
Created July 22, 2022 13:54
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 / README.md
Last active August 18, 2022 08:41
How to "control" auto-completion in Google Chrome address bar?
View README.md

How to "control" auto-completion in Google Chrome address bar?

For a while, when I type g in the address bar, it suggests me the following URL

https://github.com/foobar/hello/projects/9

But I don't want this URL at the first position. I don't even use this URL!

@lyrixx
lyrixx / test.php
Created August 1, 2022 08:59
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 / README.md
Last active March 22, 2022 14:01
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 October 7, 2021 12:08
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;