Skip to content

Standards de Code

TypeScript / Next.js

Règles générales

  • Pas de any : Toujours typer correctement
  • ESLint : Respecter les règles configurées
  • Prettier : Formatage automatique

Nommage

TypeConventionExemple
ComposantsPascalCaseUserProfile.tsx
HookscamelCase avec useuseAuth.ts
UtilitairescamelCaseformatDate.ts
Types/InterfacesPascalCaseUserData

Structure des composants

tsx
// 1. Imports
import { useState } from 'react'

// 2. Types
interface Props {
  title: string
  onAction: () => void
}

// 3. Composant
export function MyComponent({ title, onAction }: Props) {
  // 4. Hooks
  const [state, setState] = useState(false)

  // 5. Handlers
  const handleClick = () => {
    onAction()
  }

  // 6. Render
  return (
    <div onClick={handleClick}>
      {title}
    </div>
  )
}

PHP / Laravel

Règles générales

  • PSR-12 : Standard de formatage
  • PHPStan : Analyse statique niveau 8
  • Strict types : declare(strict_types=1);

Nommage

TypeConventionExemple
ClassesPascalCaseUserController
MéthodescamelCasegetActiveUsers()
VariablescamelCase$userCount
ConstantesUPPER_SNAKEMAX_RETRIES

Structure des contrôleurs

php
<?php

declare(strict_types=1);

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\JsonResponse;

final class UserController extends Controller
{
    public function index(): JsonResponse
    {
        $users = User::all();

        return response()->json($users);
    }
}