autojanet/skills/understand/languages/php.md
Zoë cc74ad0bd0
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
fix: use library/ Harbor project, add skills, fix pipeline secrets
- .woodpecker.yaml: image paths -> library/autojanet-{agent,dispatcher}
- .woodpecker.yaml: secret names RS_HARBOR_USER / RS_HARBOR_PASS (global)
- container/Dockerfile: restore COPY skills/, skills/ populated from opencode config
- skills/: 84 opencode skills bundled into image
- k8s/manifests: update image refs to library/
2026-05-30 15:43:14 -07:00

2.5 KiB

PHP Language Prompt Snippet

Key Concepts

  • Namespaces: Organize code and prevent naming collisions using backslash-delimited paths
  • Traits: Horizontal code reuse mechanism for sharing methods across unrelated classes
  • Type Declarations: Parameter, return, and property types (scalar, union, intersection types)
  • Attributes (PHP 8+): Native metadata annotations replacing docblock-based configuration
  • Enums (PHP 8.1+): First-class enumeration types with methods and interface implementation
  • Fibers: Lightweight cooperative concurrency primitives for non-blocking I/O
  • Closures/Anonymous Functions: First-class functions with explicit use for variable capture
  • Magic Methods: Special methods like __construct, __get, __set, __call for object behavior
  • Dependency Injection: Constructor injection managed by PSR-11 compatible containers
  • Middleware: Request/response pipeline pattern central to modern PHP frameworks

Import Patterns

  • use Namespace\ClassName — import a class by its fully qualified name
  • use Namespace\ClassName as Alias — import with an alias to avoid conflicts
  • namespace App\Http\Controllers — declare the current file's namespace
  • use function Namespace\functionName — import a namespaced function

File Patterns

  • composer.json — dependency management and PSR-4 autoloading configuration
  • index.php — web application entry point (front controller)
  • artisan — Laravel CLI entry point for commands and migrations
  • routes/ — route definition files (web.php, api.php in Laravel)
  • PSR-4 autoloading maps namespace prefixes to directory paths

Common Frameworks

  • Laravel — Full-featured framework with Eloquent ORM, Blade templates, and queues
  • Symfony — Component-based framework powering many PHP projects and libraries
  • WordPress — CMS platform with hook-based plugin architecture
  • Slim — Micro-framework for APIs and small applications
  • CodeIgniter — Lightweight MVC framework with minimal configuration

Example Language Notes

Uses PHP 8 attributes #[Route('/api/users')] for declarative route mapping on controller methods. Attributes replace the older docblock annotation pattern, providing native language support for metadata that tools can reflect upon.

PSR-4 autoloading in composer.json maps App\ to src/, so the class App\Http\Controllers\UserController loads from src/Http/Controllers/UserController.php.