Grégoire Pineau
@lyrixx.bsky.social
560 followers 44 following 36 posts
DevOps @jolicode & @redirectionio ; Core Team @symfony ; Github: https://github.com/lyrixx ; X: https://x.com/lyrixx
Posts Media Videos Starter Packs
Reposted by Grégoire Pineau
jolicode.com
Nous profitons du #ForumPHP de l'AFUP pour fêter la première version stable de Castor 🦫 !

Notre task runner full PHP sort en version 1.0 aujourd'hui 🎉

Utilisateurs de Makefile, de scripts shell spaghetti ou pire, nous vous conseillons cette lecture 😉 jolicode.com/blog/le-tas...
Castor Version 1
Reposted by Grégoire Pineau
symfony.com
Symfony @symfony.com · Aug 28
🙌 Remembering Ryan Weaver: Teacher, Core Team Member, Friend
➡️ https://symfony.com/blog/remembering-ryan-weaver-teacher-core-team-member-friend
Reposted by Grégoire Pineau
jolicode.com
Découvrez Symfony AI, la nouvelle brique logicielle incontournable pour vos projets de vectorisation, #AI, #LLM, #MCP et #RAG !

Dans cet article, @lyrixx.bsky.social vous présente l'analyse des similarités de textes et l'interaction avec vos LLMs préférés !

jolicode.com/blog/symfon...
use Symfony\AI\Platform\Bridge\Gemini\Embeddings as GeminiEmbeddings; use Symfony\AI\Platform\Bridge\Gemini\PlatformFactory as GeminiPlatformFactory;  $platform = GeminiPlatformFactory::create($_SERVER['GEMINI_API_KEY']);  // Choix du modèle d'embedding $embeddings = new GeminiEmbeddings(); $text = 'Le chat est un animal domestique très apprécié.';  $response = $platform->invoke($embeddings, $text);  $vector = $response->asVectors()[0];
lyrixx.bsky.social
I doesn't :) Check this ci.yml file github.com/jolicode/doc... ; we don't install PHP.

doc: castor.jolicode.com/installation...
Reposted by Grégoire Pineau
jolicode.com
Les animations CSS au défilement d'une page web sont désormais possibles, et @kaymorey.bsky.social vous explique tout dans son dernier article !

jolicode.com/blog/scroll...

Découvrez animation-timeline: scroll(); et réalisez des animations fluides ! #css #tips #animation #design
Reposted by Grégoire Pineau
lyrixx.bsky.social
We have released a new version of Castor! 🦫

What's its best feature?

`castor execute some-composer/package`

Example with latest release of PHP-CS-Fixer, where we don't even need PHP to run it! 🤯🤯🤯

castor.jolicode.com/getting-star...
Reposted by Grégoire Pineau
caillioux.bsky.social
🎤 Lors de la #SyliusParty, @lyrixx.bsky.social (@jolicode.com) a présenté une approche pour importer de gros volumes de données avec Symfony Messenger + Mercure, un sujet fréquent en #ecommerce

Le replay : youtu.be/Auo65o8YnlI

Merci encore Grégoire pour cette conférence passionnante 🙌
Reposted by Grégoire Pineau
damienalexandre.bsky.social
Hot Take 🌶️

dump(new \Exception()); is the new XDebug.

#php #symfony #laravel
lyrixx.bsky.social
It's nice ! But it's weird to drop all tables and recreate them. It does not play well with doctrine migrations
Reposted by Grégoire Pineau
Reposted by Grégoire Pineau
jolicode.com
Retrouvez @lyrixx.bsky.social à la SyliusParty organisée par @Emagma à Toulouse le jeudi 19 juin ! 🎉

Une journée 100% #Sylius, e-commerce et tech, avec des talks, une table ronde, un hackathon...

🎟️ Inscription gratuite et obligatoire sur syliusparty.emagma.fr/
Fiche de Grégoire : import de données volumineuses avec Messenger et Mercure
lyrixx.bsky.social
If you use elastica, you can use this Caster for the VarDumper. It'll add a virtual property with the content of the query, JSON encoded, and formatted:
use Elastica\Query;
use Symfony\Component\VarDumper\Caster\Caster;
use Symfony\Component\VarDumper\Cloner\AbstractCloner;
use Symfony\Component\HttpKernel\Kernel as BaseKernel;

class Kernel extends BaseKernel
{
    public function boot(): void
    {
        AbstractCloner::$defaultCasters += [
            Query::class => static function (Query $query, array $a): array {
                return [
                    ...$a,
                    Caster::PREFIX_VIRTUAL . 'query' => json_encode($query->toArray(), JSON_PRETTY_PRINT)
                ];
            },
        ];
    }
Reposted by Grégoire Pineau
caillioux.bsky.social
📣 Conférence #3 à la #SyliusParty : « Import des données volumineuses avec Messenger & Mercure » avec Grégoire Pineau @lyrixx.bsky.social, core contributor Symfony ⚙️

📅 Toulouse, 19 juin 2025

🎟️ Inscriptions : syliusparty.emagma.fr
#Sylius #Ecommerce #OpenSource #Symfony
Reposted by Grégoire Pineau
symfony.com
Symfony @symfony.com · May 12
🚀 New in Symfony 7.3: Explaining Security Voter Decisions
➡️ https://symfony.com/blog/new-in-symfony-7-3-explaining-security-voter-decisions
Reposted by Grégoire Pineau
jolicode.com
Using #Symfony, you can customize error pages. However, if your app can't boot, you'll see the ugly web server error page. To avoid this, use the new error:dump command by @pyrech.bsky.social! 💛

symfony.com/blog/new-in...

#oss #opensource #contribution
New in Symfony 7.3: Static Error Pages (Symfony Blog)
In Symfony 7.3, you can export your error pages as static HTML so the server serves them instantly without running the app.
symfony.com
Reposted by Grégoire Pineau
lyrixx.bsky.social
I published a small application to compare two composer.lock files. It's built in PHP, but I didn't want to maintain a server. So it's deployed on GitHub Pages and uses WASM.

lyrixx.github.io/composer-diff/
lyrixx.bsky.social
I confirm that 👍🏼
Reposted by Grégoire Pineau
jerome.tamarelle.net
A reminder for maintainers of #PHP libraries: adding a parameter to a method of an interface causes a fatal error in all the classes that implement it. It's a BC break that should be prohibed in a minor version.
In Symfony, we add the parameter virtually using phpdoc, and read it using func_get_arg.
PHP code: 

    /**
     * @param int $nbToken
     *
     * @psalm-param int<1, max> $nbToken
     */
    public function mark(string $place /* , int $nbToken = 1 */): void
    {
        $nbToken = 1 < \func_num_args() ? func_get_arg(1) : 1;
    }

Source: https://github.com/symfony/symfony/blob/01c26aa928ecc5dc42ce90268299c190c6b712ed/src/Symfony/Component/Workflow/Marking.php#L39
Reposted by Grégoire Pineau
lyrixx.bsky.social
I published a small application to compare two composer.lock files. It's built in PHP, but I didn't want to maintain a server. So it's deployed on GitHub Pages and uses WASM.

lyrixx.github.io/composer-diff/
lyrixx.bsky.social
Why do you think about this simple tool to compare two composer.lock file?

I know there are already many CLI scripts or composer plugins to do the same things (some of them can even report diff via GitGub comment 😍). But I needed many time an "online" tool to avoid installing anything locally