Spatie Laravel Php

spatie/guidelines-skills/resources/boost/skills/spatie-laravel-php

by spatiec31006972d0b8c8db71e7b75c1b1d505b479023dMITListed Oct 9, 2026Updated Oct 9, 2026

Apply Spatie's Laravel and PHP coding standards for any task that creates, edits, reviews, refactors, or formats Laravel/PHP code or Blade templates; use for controllers, Eloquent models, routes, config, validation, migrations, tests, and related files to align with Laravel conventions and PSR-12.

Instructions onlySoftware Development
AI-generated overview

Applies Spatie's Laravel and PHP coding standards when writing, editing, reviewing, or refactoring Laravel/PHP code and Blade templates.

What it does
This skill guides an agent to follow Spatie's Laravel and PHP guidelines so generated or edited code stays consistent and Laravel-native. It covers controllers, Eloquent models, routes, config, validation, migrations, tests, and Blade templates, applying Laravel conventions first and then PSR-1, PSR-2, and PSR-12. It produces code changes and style-aligned reviews rather than standalone files, and points to a bundled reference document for section-specific rules.
When to use it
Use it for any Laravel or PHP coding task, even when the user does not mention Spatie. It fits generating, editing, formatting, refactoring, or reviewing .php and .blade.php files, routes, controllers, models, config, validation, migrations, and tests. It is not intended for JS/TS, CSS, infrastructure, database schema design, or non-Laravel frameworks.
Requirements
No scripts or special tooling; it is instructions only. It relies on the bundled reference file references/spatie-laravel-php-guidelines.md, which the agent reads. No credentials or network access are required.

Spatie Laravel & PHP Guidelines

Overview

Apply Spatie's Laravel and PHP guidelines to keep code style consistent and Laravel-native.

When to Activate

  • Activate this skill for any Laravel or PHP coding work, even if the user does not explicitly mention Spatie.
  • Activate this skill when asked to generate, edit, format, refactor, review, or align Laravel/PHP code.
  • Activate this skill when working on .php or .blade.php files, routes, controllers, models, config, validation, migrations, or tests.

Scope

  • In scope: .php, .blade.php, Laravel conventions (routes, controllers, config, validation, migrations, tests).
  • Out of scope: JS/TS, CSS, infrastructure, database schema design, non-Laravel frameworks.

Workflow

  1. Identify the artifact (controller, route, config, model, Blade, test, etc.).
  2. Read references/spatie-laravel-php-guidelines.md and focus on the relevant sections.
  3. Apply the core Laravel principle first, then PHP standards, then section-specific rules.
  4. If a rule conflicts with existing project conventions, follow Laravel conventions and keep changes consistent.

Core Rules (Summary)

  • Follow Laravel conventions first.
  • Follow PSR-1, PSR-2, and PSR-12.
  • Prefer typed properties and explicit return types (including void).
  • Use short nullable syntax like ?string.
  • Use constructor property promotion when all properties can be promoted.
  • One trait per line with separate use statements.
  • Once a method chain breaks across lines, put every subsequent -> on a new line; never mix single-line and multi-line chaining.
  • Prefer early returns and avoid else when possible.
  • Always use curly braces for control structures.
  • Use string interpolation over concatenation.
  • Happy path last: handle error conditions first.

Do and Don't

Do:

  • Use kebab-case URLs, camelCase route names, and camelCase route parameters.
  • Use tuple notation for routes: [Controller::class, 'method'].
  • Use plural resource names for controllers (PostsController).
  • Use array notation for validation rules.
  • Use config() helper and avoid env() outside config files.
  • Add service configs to config/services.php, not new files.
  • Use __() for translations instead of @lang.
  • Use PascalCase for enum values and class constants.

Don't:

  • Add docblocks when full type hints already exist.
  • Use fully qualified classnames in docblocks.
  • Use final or readonly by default.
  • Use else when early returns work.
  • Add spaces after Blade control structures.

Examples

php
// Happy path last with early returnsif (! $user) {    return null;}
if (! $user->isActive()) {    return null;}
// Process active user...
// Short ternary$name = $isFoo ? 'foo' : 'bar';
// Constructor property promotionclass MyClass {    public function __construct(        protected string $firstArgument,        protected string $secondArgument,    ) {}}
blade
@if($condition)    Something@endif

References

  • references/spatie-laravel-php-guidelines.md

Source and attribution

Source:spatie/guidelines-skillsinresources/boost/skills/spatie-laravel-phpat commitc310069

License: MIT

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal