Overview Technical education requires more than just knowing how to code; it requires a systematic approach to research, demonstration, and presentation. This workflow bridges the gap between a new Laravel framework release and a community-ready video tutorial. By focusing on feature selection, live-code experimentation, and programmatic video generation, we can transform abstract GitHub pull requests into practical knowledge. This guide explores the tools and logic used to curate the "What's New in Laravel" series, highlighting how to validate new features and animate code transitions effectively. Prerequisites To follow this workflow, you should be comfortable with: * **PHP & Laravel**: Understanding of Eloquent, Service Containers, and basic Artisan commands. * **GitHub Workflow**: Familiarity with Pull Requests (PRs) and version comparison. * **JavaScript/React**: Basic knowledge of React components for using advanced animation tools. * **Development Tools**: Experience with terminal-based workflows and IDEs like PHPStorm. Key Libraries & Tools * **Tinkerwell**: A specialized code runner for PHP that allows for instant feedback without setting up routes or controllers. * **Remotion**: A React-based framework that enables developers to create videos and animations using programmatic code. * **Code Hike**: A Remotion plugin specifically designed for animating code blocks and highlighting syntax transitions. * **Claude**: An AI model used via custom Artisan commands to generate video descriptions and metadata from raw technical notes. * **DaVinci Resolve**: A professional-grade video editing suite used for the final assembly and color grading of tutorials. Code Walkthrough 1. Validating New String Helpers When testing a new feature like the `ignoreCase` parameter in the `Str::is()` helper, we use Tinkerwell for rapid validation. This allows us to see the boolean result immediately. ```php // Traditional case-sensitive check $result = Str::is('laravel', 'Laravel'); // returns false // Testing the new ignoreCase argument (added in 11.37) $result = Str::is('laravel', 'Laravel', ignoreCase: true); // returns true ``` 2. Demonstrating Eloquent Relationship Shortcuts One of the most powerful updates is the `whereDoesntHaveRelation` method. To teach this effectively, we first show the verbose closure-based approach, then the cleaner shortcut. ```php // The old way using a closure $users = User::whereDoesntHave('podcasts', function ($query) { $query->where('likes', '>', 5000); })->get(); // The new, expressive way $users = User::whereDoesntHaveRelation('podcasts', 'likes', '>', 5000)->get(); ``` This transition helps learners understand that the new method is purely "syntactic sugar" that maintains the same underlying logic but improves readability. 3. Programmatic Code Transitions For complex concepts like Service Container hooks, static screenshots fail to capture the logic flow. Using Remotion and Code Hike, we define sequences that morph one code state into another. ```jsx // Example of a Remotion sequence defining code steps <Sequence durationInFrames={60}> <CodeTransition oldCode={resolvedHookExample} newCode={beforeResolvingHookExample} /> </Sequence> ``` This produces a 4K video file where specific tokens (like `resolved` moving to `beforeResolving`) glide across the screen, making the technical shift visually obvious. Syntax Notes * **Boolean Named Arguments**: In the string helper example, notice the use of named arguments (`ignoreCase: true`). This is a best practice in modern PHP to make boolean flags self-documenting. * **Fluent Interfaces**: Laravel's Eloquent relies heavily on fluent chaining. When demonstrating these, ensure the final method (like `->get()`) is clearly separated to show where the query actually executes. Practical Examples * **Release Highlights**: Use the GitHub comparison tool (`compare/v11.36.1...v11.37.0`) to filter PRs. Focus on features that change daily developer experience rather than internal bug fixes. * **Automated Social Copy**: By piping PR data into Claude, you can generate a LinkedIn post that automatically tags contributors using their Twitter handles fetched from GitHub. Tips & Gotchas * **Service Container Hooks**: Don't use the `resolved` hook if you intend to modify the instance. By the time `resolved` fires, the object has already been injected. Always use `beforeResolving` for modifications. * **Video Quality**: When rendering animations in Remotion, use the `--scale=2` flag to ensure the text remains crisp at 4K resolution. * **Manual Verification**: Always verify AI-generated video timelines. While tools like Claude are great for summaries, they often hallucinate specific timestamps within a video file.
Adrian
People
Jan 2025 • 2 videos
High activity month for Adrian. Laravel among the most active voices, with 2 videos across 1 sources.
Jan 2025
- Jan 9, 2025
- Jan 7, 2025