refactor: susun semula struktur folder — Laravel source ke src/

This commit is contained in:
Saufi
2026-05-19 15:58:35 +08:00
parent f052251b94
commit bf53c71b45
10806 changed files with 1385379 additions and 121 deletions

View File

View File

View File

@@ -0,0 +1,13 @@
## PHP 8.4
Use these array functions instead of manual loops when not using Laravel collections:
- `array_find(array $array, callable $callback): mixed` - first matching element
- `array_find_key(array $array, callable $callback): int|string|null` - first matching key
- `array_any(array $array, callable $callback): bool` - true if any element matches
- `array_all(array $array, callable $callback): bool` - true if all elements match
Chain directly on new instances without wrapping in parentheses:
```php
// Before: $response = (new JsonResponse(['data' => $data]))->setStatusCode(201);
$response = new JsonResponse(['data' => $data])->setStatusCode(201);
```

View File

@@ -0,0 +1,13 @@
## PHP 8.5
Use these array functions instead of manual loops when not using Laravel collections:
- `array_first(array $array): mixed` - first value or `null` if empty
- `array_last(array $array): mixed` - last value or `null` if empty
Use the pipe operator (`|>`) to chain function calls left-to-right instead of nesting:
```php
// Before: $slug = strtolower(str_replace(' ', '-', trim($title)));
$slug = $title |> trim(...) |> (fn($s) => str_replace(' ', '-', $s)) |> strtolower(...);
```
Use `clone($object, ['property' => $value])` to modify properties during cloning. Ideal for readonly classes.

View File

@@ -0,0 +1,15 @@
# PHP
@php
/** @var \Laravel\Boost\Install\GuidelineAssist $assist */
@endphp
- Always use curly braces for control structures, even for single-line bodies.
- Use PHP 8 constructor property promotion: `public function __construct(public GitHub $github) { }`. Do not leave empty zero-parameter `__construct()` methods unless the constructor is private.
- Use explicit return type declarations and type hints for all method parameters: `function isAccessible(User $user, ?string $path = null): bool`
@if(empty($assist->enums()) || !preg_match('/[A-Z]{3,8}/', $assist->enumContents()))
- Use TitleCase for Enum keys: `FavoritePerson`, `BestLake`, `Monthly`.
@else
- Follow existing application Enum naming conventions.
@endif
- Prefer PHPDoc blocks over inline comments. Only add inline comments for exceptionally complex logic.
- Use array shape type definitions in PHPDoc blocks.