wemersonrv's avatar

wemersonrv wrote a comment+100 XP

1w ago

My PHPStorm don't have this "Add your Prompts" option. How can i activate it?

I can see the bar with the refactor option, the AI icon too, and some options in the dropdown, but not this option

Even with the Show Prompt in 'AI Actions' popup selected, it does not shows. When click in AI Actions icon in the floating toolbar, it just opens the AI Chat with the selected code inside, and the workaround i was able to do is to manually type the command in chat.

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

2w ago

I am receiving this error when configure the Junie MCP Settings:

Cannot run program "npx": Exec failed, error: 2 (Arquivo ou diretório inexistente)

kotlinx.coroutines.flow.StateFlowImpl@6c2dd383

Tried to add the real path to npx: ~/.nvm/versions/node/v22.19.0/bin/npx but results in the same eror

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

2w ago

Why all installed agents are updated, but not Junie AI?

See what i'm doing:

  1. Added the unguarded instruction to .ai/guidelines/laravel.md
  2. Run php artisan boost:install

CLAUDE.md and AGENTS.md (Opencode) were updated with the new instruction, but the junie directives.md was not updated.

Junie is not handled by boost?

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

3w ago

Great job, guys! Simon, Jeremy, and @jeffreyway . It was awesome to see how each of you tackled some challenges in different ways... it really added a lot to the course and made everything way more interesting to follow!!!

How about a plus?! it would be really cool to have a 4th instructor to mixt it a little bit... How about bring Caleb in to build a Livewire version? I think it is a great way to compare your approaches side by side and help us figure out which tools fit best depending on the situation, and of course; our preferences!

Thanks again for such a great course 🙌

wemersonrv's avatar

wemersonrv liked a comment+100 XP

3w ago

@wemersonrv Thank you so much for the detailed comment! Really happy to know that the course was helpful :)

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

2mos ago

Love when screen turns gray and Jeremy looks to us in a funny way! 😬🤨

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

2mos ago

Great episode, interesting concepts!

And about performace? There are any concerns or is it fine for example to have millions and millinos of records inside a morph/pivot table and a lot of tables morphin through it?

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

2mos ago

Amazing video! I always had my struggles with Polimorphic... Until now! Thank you!

I have just a question about an issue i had now:

I've made a small change — I just swapped the content and morphs lines in the migration — and the result was crazy. The data got completely shuffled and ended up in the wrong columns! 😱😱😱

Schema::create('descriptions', function (Blueprint $table) {
    $table->id();
    $table->morphs('describable'); // describable_id; describable_type
    $table->string('content'); 
    $table->timestamps();
});
id content describable_type describable_id ...
1 users 1 Senior Developer ...
2 teams 1 We build the backend systems of the app. ...

Why does this happen? Is there a specific rule about the order of the columns?

wemersonrv's avatar

wemersonrv wrote a reply+100 XP

2mos ago

Didn't works.

And i don't found any v2.5.0+ version for blade-formatter. The latest version available is v1.44.2: https://www.npmjs.com/package/blade-formatter?activeTab=versions

wemersonrv's avatar

wemersonrv started a new conversation+100 XP

2mos ago

My Laravel Pint setup is not indenting some custom Blade directives correctly.

I am using custom Blade directives that behave like structural blocks (similar to @if, @foreach, etc.). However, when running Pint, the indentation inside these directives is removed or flattened.

Here is a simplified example.

Original Blade code (properly indented)

<div class="mt-8 grid grid-cols-3 gap-6 relative">
    @island(name: 'metrics', defer: true, always: true)
        @placeholder
            <flux:skeleton class="h-30" animate="shimmer"/>
            <flux:skeleton class="h-30" animate="shimmer"/>
            <flux:skeleton class="h-30" animate="shimmer"/>
        @endplaceholder

        @island(always: true)
            <div wire:poll.5s>
                <livewire:pages::analytics.metric heading="Views" :number="$this->views" :change="12"/>
            </div>
        @endisland

        <livewire:pages::analytics.metric heading="Visitors" :number="$this->visitors" :change="8"/>
        <livewire:pages::analytics.metric heading="Avg time on post" :number="$this->avgTime" :change="-3"/>
    @endisland

    <div class="absolute top-0 bottom-0 left-[97.7%] pl-4 flex">
        <flux:button wire:click="$refresh" wire:island="metrics" icon="arrow-path" variant="subtle" size="sm" class="cursor-pointer"/>
    </div>
</div>

Result after running Pint

<div class="mt-8 grid grid-cols-3 gap-6 relative">
    @island(name: 'metrics', defer: true, always: true)
    @placeholder
    <flux:skeleton class="h-30" animate="shimmer"/>
    <flux:skeleton class="h-30" animate="shimmer"/>
    <flux:skeleton class="h-30" animate="shimmer"/>
    @endplaceholder

    @island(always: true)
    <div wire:poll.5s>
        <livewire:pages::analytics.metric heading="Views" :number="$this->views" :change="12"/>
    </div>
    @endisland

    <livewire:pages::analytics.metric heading="Visitors" :number="$this->visitors" :change="8"/>
    <livewire:pages::analytics.metric heading="Avg time on post" :number="$this->avgTime" :change="-3"/>
    @endisland

    <div class="absolute top-0 bottom-0 left-[97.7%] pl-4 flex">
        <flux:button wire:click="$refresh" wire:island="metrics" icon="arrow-path" variant="subtle" size="sm" class="cursor-pointer"/>
    </div>
</div>

As shown above, the indentation inside custom directives from Livewire, like @island and @placeholder is lost after formatting.

It appears that Pint does not recognize these custom directives as structural Blade blocks, so it does not treat them as indentation scopes.

This issue may affect any project that defines custom Blade directives intended to behave like block-level control structures.

Is there currently a way to register custom Blade directives as structural blocks so that Pint can correctly indent their contents?

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

2mos ago

Found it!

When the array key for the message when get the response is 'content', but i was using 'message'


// ...

if ($response) {
    $this->messages[] = [
        'role' => 'assistant',
        'message' => $response, // Here is 'content' not 'message'
    ];
}

//...
wemersonrv's avatar

wemersonrv wrote a comment+100 XP

2mos ago

Cool, it's an amazing start. Past 2 years of this course, and the original content still works! Great Job.

Well, kinda works... the first message is sent normally, but when i try to send new ones, it returns null. The first one works every time, but the second not!

Maybe something new that is required now in the recent versions of Open AI API I need to change?

$chat = new Chat;

$poem = $chat
    ->systemMessage('You are a poetic assistant, skilled in explaining complex programming concepts with creative flair.')
    ->send('Compose a poem that explains the concept of recursion in programming.');

$sillyPoem = $chat->reply('Cool, but can you make it much, much more sillier?');

return view('welcome', ['poem' => $sillyPoem);

App\Ai\Chat

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

2mos ago

Amazing course. You are so calm, clearn and easy to understand, even for a non english native student like me listeing to another non english person. The accents on the two sides can be tricky, but it was so smooth, amazing!

Already used Livewire some years ago in version 2, and this course was amazing to remember some stuffs and start to known v3 and prepare for v4.

Thank you so much!

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

3mos ago

@Shruti Balasa In your video, the layouts folder location is views/components/layout. But here layouts is in views/layouts, so it's in the same level of components. Maybe some structural changes in recent laravel versions?? My project started today is Laravel v12.48.1.

So, here in my project; using <x-layouts.app> don't works and gives me the error:

Unable to locate a class or view for component [layouts.app].

How can i fix this?

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

3mos ago

@connor1231 Well, there is some time since i posted this... i don't remember what i did to fix it. Maybe? i don't know. Sorry! 😰

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

3mos ago

Using PHPStorm 2025.3.2.

When run npx prettier --write resources/js/Components/Test.vue it works, sort classes and clean extra spaces.

But don't works when save the file. The Prettier plugin is configured in PhpStorm. Run on save is enabled, and the run for Files options is defined with **/*.{js,ts,jsx,tsx,cjs,cts,mjs,mts,json,vue,astro} and, of course, the actions on save for prettier is enabled.

There is something else for new PHPStorm versions ?

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

3mos ago

Works fine for new projects since configured my PHPStorm following these classes. But, when open old projects, the settings are not applied and need to make all of then again.

There is a way to apply these configs to old projects?

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

3mos ago

Great course! Thank you for the amazing hours watching your videos!

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

3mos ago

Amazing course! Thanks Josh for the great moments wathing it!

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

3mos ago

Amazing course, thanks Jeremy ! Finish it couple of days after release of Livewire v4... and it still 100% compatible with recent releases of Laravel. Now waiting for new v4 Courses!

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

3mos ago

I don't know what i am doing wrong. Repeat all the stuffs @Kevin put int he video. But my signUpAction just show the modal background. Nothing about the modal content. No erros in javascript console, neither in the laravel.log.

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

5mos ago

Found my mistake here.

I am using a fresh Laravel 12 project, it's using PHP 8.4, but i've changed the supervisor.conf in docker/php8.2` folder following the video. So in fact, i was not using Octane yet!

Just change and rebuild and it works.

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

5mos ago

Dunno what i am doing wrong. But here the /global route did not increments.

The container is running, and i can access it from the browser.

It is registered as a singleton and it was warmed up in config/octane.php

I think supervisord.conf is ok right? Because if octane not configured here, i cannot access it from the browser.

So, what am i doing wrong?

[supervisord]
nodaemon=true
user=root
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid

[program:php]
command=/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan octane:start --host=0.0.0.0 --port=80
user=sail
environment=LARAVEL_SAIL="1"
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
wemersonrv's avatar

wemersonrv wrote a comment+100 XP

5mos ago

I really liked the course. It was excellent, and I got a ton of value from it.

But since it was made in 2023, a few things ended up outdated, like the Paddle Classic part and the TwitterOAuth bits now that Twitter is X. Some users shared a few fixes, but not everything is covered. So the parts I couldn’t update, I just commented out and added a simple $this->assertTrue(true); to keep the tests running smoothly until the course gets an update.

wemersonrv's avatar

wemersonrv wrote a comment+100 XP

5mos ago

Here, the AddExtendsAnnotationToModelFactoriesRector rule does not make any change on my factories files. What am i doing wrong?

rector.php

<?php

declare(strict_types=1);

use Rector\Config\RectorConfig;
use RectorLaravel\Rector\Class_\AddExtendsAnnotationToModelFactoriesRector;
use RectorLaravel\Rector\ClassMethod\AddGenericReturnTypeToRelationsRector;

return RectorConfig::configure()
    ->withPaths([
        __DIR__ . '/app',
        __DIR__ . '/database',
        __DIR__ . '/routes',
        __DIR__ . '/tests',
    ])
    ->withRules([
        AddGenericReturnTypeToRelationsRector::class,
        AddExtendsAnnotationToModelFactoriesRector::class,
    ])
    ->withPhpSets(php84: true)
    ->withTypeCoverageLevel(0)
    ->withDeadCodeLevel(0)
    ->withCodeQualityLevel(0);

UserFactory.php


class UserFactory extends Factory
{
    /**
     * The current password being used by the factory.
     */
    protected static ?string $password;
    ...

}
$ ./vendor/bin/rector --dry-run
                                                                                                                        
 [OK] Rector is done!