{"enrichment":{"faq":[{"a":"Laravel Idioms teaches you to embrace the framework's opinionated patterns: use Eloquent scopes for query reusability, keep controllers thin by delegating business logic to service classes, and leverage Form Request validation for clean input handling. The skill covers Laravel's conventions around naming, file structure, and architectural layers so your code feels natural to other Laravel developers and stays maintainable as your application grows.","q":"How to write idiomatic Laravel code following framework conventions?"},{"a":"Laravel Idioms addresses the N+1 query problem through Eloquent's eager loading features. Learn to use `with()` and `load()` to fetch related data in a single query, apply query scopes to encapsulate complex conditions, and recognize when lazy loading creates performance bottlenecks. The skill teaches you to profile queries and structure your Eloquent models so you avoid unnecessary database round-trips.","q":"What's the best way to prevent N+1 query problems in Laravel?"},{"a":"Laravel Idioms demonstrates the service layer pattern: controllers handle HTTP concerns (requests, responses, routing), while services contain business logic, database interactions, and domain rules. This separation keeps controllers thin and testable, makes services reusable across multiple endpoints, and clarifies where to add new features. You'll learn when to extract logic into services and how to inject them cleanly into your controllers.","q":"How should Laravel service layer and thin controllers be structured?"},{"a":"Laravel Idioms includes Pest for modern, expressive testing; Form Request validation for declarative input rules; PHPStan with Larastan for static analysis that catches type errors early; and Pint for automated code formatting. Together these tools enforce Laravel best practices, catch bugs before production, and ensure your codebase meets quality standards without manual review overhead.","q":"Which testing, validation, and code quality tools does Laravel Idioms cover?"},{"a":"Laravel Idioms teaches Eloquent scopes as reusable query filters that live on your models. Instead of repeating `where()` clauses across your application, define a scope once\u2014like `scopeActive()` or `scopeRecent()`\u2014and chain it wherever needed. This DRY approach keeps query logic centralized, makes it easy to update filtering rules, and makes your code more readable by expressing intent rather than raw SQL conditions.","q":"What are Laravel Eloquent scopes and how do they apply DRY principles?"},{"a":"Laravel Idioms covers accessors and mutators as Eloquent features that transform attribute values on retrieval and storage. Use them to format dates, encrypt sensitive data, or compute derived properties without cluttering your controller or service logic. This keeps data transformation rules colocated with your model, makes attributes behave consistently across your application, and reduces the chance of formatting bugs.","q":"How do Laravel accessors and mutators improve code maintainability?"}],"shadow_tags":["eloquent-orm","service-layer","code-quality","testing-framework","query-optimization","design-patterns","static-analysis","validation-rules","test-factories","code-conventions"],"summary_rewrite":"Learn Laravel's idiomatic approach to building maintainable applications through Eloquent query scopes, service-oriented architecture, and Form Request validation. Covers testing with Pest, code formatting with Pint, and static analysis via PHPStan to enforce framework best practices."},"files":[{"bytes":2301,"path":".agents/skills/laravel-idioms/SKILL.md","sha256":"6f97619e5c239601c3d6d88fa8e7463a8012f5d9ff0791c8e99d1fcec250b0d6","url":"https://skillfed.io/files/irahardianto/awesome-agv/laravel-idioms/9927a0c9/SKILL.md"}],"id":"irahardianto/awesome-agv/laravel-idioms","links":{"html":"https://skillfed.io/irahardianto/awesome-agv/laravel-idioms","md":"https://skillfed.io/irahardianto/awesome-agv/laravel-idioms.md","repo":"https://github.com/irahardianto/awesome-agv"},"meta":{"agents_supported":[],"first_seen":"2026-07-28","forks":48,"language":"JavaScript","last_updated":"2026-07-17","license":"MIT","name":"Laravel Idioms","publisher":"irahardianto","stars":150},"relations":{"similar":[{"id":"marcelorodrigo/agent-skills/phpstan-fixer"},{"id":"irahardianto/awesome-agv/php-idioms"},{"id":"Pixel-Process-UG/superkit-agents/php-specialist"},{"id":"softspark/ai-toolkit/php-rules"},{"id":"Jeffallan/claude-skills/php-pro"},{"id":"personamanagmentlayer/pcl/php-expert"},{"id":"affaan-m/ECC/laravel-verification"},{"id":"Pixel-Process-UG/superkit-agents/laravel-specialist"},{"id":"Jeffallan/claude-skills/laravel-specialist"},{"id":"iSerter/laravel-claude-agents/laravel-tdd"}]},"slug":{"owner":"irahardianto","repo":"awesome-agv","skill":"laravel-idioms"},"version":"9927a0c9"}
