Skip to main content ホーム クリエイター diegosouzapw awesome-omni-skill moai-lang-php
moai-lang-php PHP 8.3+ development specialist covering Laravel 11, Symfony 7, Eloquent ORM, and modern PHP patterns. Use when developing PHP APIs, web applications, or Laravel/Symfony projects.
インストールへ移動 Skills Marketplace コミュニティが作成したAIスキルを発見・探索
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/diegosouzapw/awesome-omni-skill --skill moai-lang-phpコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Zipをダウンロード ダウンロード中... このリポジトリの他の Skills Token-efficient tracking for AI orchestration. CLI-first for status updates (~50 tokens), agent fallback for complex ops (~1KB). Use when: updating task status, querying blockers, creating progress files, validating phases.
AshAi extension guidelines for integrating AI capabilities with Ash Framework. Use when implementing vectorization/embeddings, exposing Ash actions as LLM tools, creating prompt-backed actions, or setting up MCP servers. Covers semantic search, LangChain integration, and structured outputs.
This skill should be used when solving hard questions, complex architectural problems, or debugging issues that benefit from GPT-5 Pro or GPT-5.1 thinking models with large file context. Use when standard Claude analysis needs deeper reasoning or extended context windows.
name moai-lang-php description PHP 8.3+ development specialist covering Laravel 11, Symfony 7, Eloquent ORM, and modern PHP patterns. Use when developing PHP APIs, web applications, or Laravel/Symfony projects. version 1.0.0 category language modularized true user-invocable false updated "2026-01-08T00:00:00.000Z" status active allowed-tools ["Read","Grep","Glob","Bash","mcp__context7__resolve-library-id","mcp__context7__get-library-docs"]
Quick Reference (30 seconds)
PHP 8.3+ Development Specialist - Laravel 11, Symfony 7, Eloquent, Doctrine, and modern PHP patterns.
Auto-Triggers: .php files, composer.json, artisan, symfony.yaml, Laravel/Symfony discussions
Core Capabilities:
PHP 8.3 Features: readonly classes, typed properties, attributes, enums, named arguments
Laravel 11: Controllers, Models, Migrations, Form Requests, API Resources, Eloquent
Symfony 7: Attribute-based routing, Doctrine ORM, Services, Dependency Injection
ORMs: Eloquent (Laravel), Doctrine (Symfony)
Testing: PHPUnit, Pest, feature/unit testing patterns
Package Management: Composer with autoloading
Coding Standards: PSR-12, Laravel Pint, PHP CS Fixer
Docker: PHP-FPM, nginx, multi-stage builds
Quick Patterns
Laravel Controller:
<?php
namespace App \Http \Controllers \Api ;
use App \Http \Controllers \Controller ;
use App \Http \Requests \StoreUserRequest ;
use App \Http \Resources \UserResource ;
use App \Models \User ;
use Illuminate \Http \JsonResponse ;
class UserController extends Controller
{
public ( ):
{
= :: ( -> ());
()-> ( ( ), );
}
}
function
store
StoreUserRequest $request
JsonResponse
$user
User
create
$request
validated
return
response
json
new
UserResource
$user
201
<?php
namespace App \Http \Requests ;
use Illuminate \Foundation \Http \FormRequest ;
class StoreUserRequest extends FormRequest
{
public function authorize ( ): bool
{
return true ;
}
public function rules ( ): array
{
return [
'name' => ['required' , 'string' , 'max:255' ],
'email' => ['required' , 'email' , 'unique:users,email' ],
'password' => ['required' , 'min:8' , 'confirmed' ],
];
}
}
<?php
namespace App \Controller ;
use App \Entity \User ;
use Doctrine \ORM \EntityManagerInterface ;
use Symfony \Bundle \FrameworkBundle \Controller \AbstractController ;
use Symfony \Component \HttpFoundation \JsonResponse ;
use Symfony \Component \Routing \Attribute \Route ;
#[Route ('/api/users' )]
class UserController extends AbstractController
{
#[Route ('' , methods : ['POST' ])]
public function create (EntityManagerInterface $em ): JsonResponse
{
$user = new User ();
$em ->persist ($user );
$em ->flush ();
return $this ->json ($user , 201 );
}
}
Implementation Guide (5 minutes)
PHP 8.3 Modern Features <?php
readonly class UserDTO
{
public function __construct (
public int $id ,
public string $name ,
public string $email ,
) {}
}
<?php
enum OrderStatus : string
{
case Pending = 'pending' ;
case Processing = 'processing' ;
case Completed = 'completed' ;
public function label ( ): string
{
return match ($this ) {
self ::Pending => 'Pending' ,
self ::Processing => 'Processing' ,
self ::Completed => 'Completed' ,
};
}
}
<?php
#[Attribute (Attribute ::TARGET_PROPERTY )]
class Validate
{
public function __construct (
public string $rule ,
public ?string $message = null ,
) {}
}
class UserRequest
{
#[Validate ('required|email' )]
public string $email ;
}
Laravel 11 Patterns Eloquent Model with Relationships:
<?php
namespace App \Models ;
use Illuminate \Database \Eloquent \Model ;
use Illuminate \Database \Eloquent \Relations \BelongsTo ;
use Illuminate \Database \Eloquent \Relations \HasMany ;
class Post extends Model
{
protected $fillable = ['title' , 'content' , 'user_id' , 'status' ];
protected $casts = [
'status' => PostStatus ::class ,
'published_at' => 'datetime' ,
];
public function user ( ): BelongsTo
{
return $this ->belongsTo (User ::class );
}
public function comments ( ): HasMany
{
return $this ->hasMany (Comment ::class );
}
public function scopePublished ($query )
{
return $query ->where ('status' , PostStatus ::Published );
}
}
<?php
namespace App \Http \Resources ;
use Illuminate \Http \Request ;
use Illuminate \Http \Resources \Json \JsonResource ;
class PostResource extends JsonResource
{
public function toArray (Request $request ): array
{
return [
'id' => $this ->id,
'title' => $this ->title,
'author' => new UserResource ($this ->whenLoaded ('user' )),
'comments_count' => $this ->whenCounted ('comments' ),
'created_at' => $this ->created_at->toIso8601String (),
];
}
}
<?php
use Illuminate \Database \Migrations \Migration ;
use Illuminate \Database \Schema \Blueprint ;
use Illuminate \Support \Facades \Schema ;
return new class extends Migration
{
public function up ( ): void
{
Schema ::create ('posts' , function (Blueprint $table ) {
$table ->id ();
$table ->foreignId ('user_id' )->constrained ()->cascadeOnDelete ();
$table ->string ('title' );
$table ->text ('content' );
$table ->string ('status' )->default ('draft' );
$table ->timestamps ();
$table ->softDeletes ();
});
}
};
<?php
namespace App \Services ;
use App \Models \User ;
use App \DTOs \UserDTO ;
use Illuminate \Support \Facades \DB ;
class UserService
{
public function create (UserDTO $dto ): User
{
return DB::transaction (function () use ($dto ) {
$user = User ::create ([
'name ' => $dto ->name ,
'email ' => $dto ->email ,
'password ' => Hash ::make ($dto ->password ),
]);
$user ->profile ()->create (['bio' => $dto ->bio ?? '' ]);
return $user ->load ('profile' );
});
}
}
Symfony 7 Patterns Entity with Doctrine Attributes:
<?php
namespace App \Entity ;
use App \Repository \UserRepository ;
use Doctrine \ORM \Mapping as ORM ;
use Symfony \Component \Validator \Constraints as Assert ;
#[ORM \Entity (repositoryClass : UserRepository ::class )]
#[ORM \Table (name : 'users' )]
class User
{
#[ORM \Id ]
#[ORM \GeneratedValue ]
#[ORM \Column ]
private ?int $id = null ;
#[ORM \Column (length : 255 )]
#[Assert\NotBlank ]
private ?string $name = null ;
#[ORM \Column (length : 180 , unique : true )]
#[Assert\Email ]
private ?string $email = null ;
}
Service with Dependency Injection:
<?php
namespace App \Service ;
use App \Entity \User ;
use Doctrine \ORM \EntityManagerInterface ;
use Symfony \Component \PasswordHasher \Hasher \UserPasswordHasherInterface ;
class UserService
{
public function __construct (
private readonly EntityManagerInterface $entityManager ,
private readonly UserPasswordHasherInterface $passwordHasher ,
) {}
public function createUser (string $email , string $password ): User
{
$user = new User ();
$user ->setEmail ($email );
$user ->setPassword ($this ->passwordHasher->hashPassword ($user , $password ));
$this ->entityManager->persist ($user );
$this ->entityManager->flush ();
return $user ;
}
}
Testing Patterns PHPUnit Feature Test (Laravel):
<?php
namespace Tests \Feature ;
use App \Models \User ;
use Illuminate \Foundation \Testing \RefreshDatabase ;
use Tests \TestCase ;
class UserApiTest extends TestCase
{
use RefreshDatabase ;
public function test_can_create_user ( ): void
{
$response = $this ->postJson ('/api/users' , [
'name' => 'John Doe' ,
'email' => 'john@example.com' ,
'password' => 'password123' ,
'password_confirmation' => 'password123' ,
]);
$response ->assertStatus (201 )
->assertJsonStructure (['data' => ['id' , 'name' , 'email' ]]);
$this ->assertDatabaseHas ('users' , ['email' => 'john@example.com' ]);
}
}
<?php
use App \Models \User ;
use App \Models \Post ;
it ('can create a post' , function () {
$user = User ::factory ()->create ();
$response = $this ->actingAs ($user )
->postJson ('/api/posts' , [
'title' => 'My First Post' ,
'content' => 'This is the content.' ,
]);
$response ->assertStatus (201 );
expect (Post ::count ())->toBe (1 );
});
it ('requires authentication to create post' , function () {
$this ->postJson ('/api/posts' , [
'title' => 'My Post' ,
'content' => 'Content here.' ,
])->assertStatus (401 );
});
Advanced Implementation (10+ minutes) For comprehensive coverage including:
Production deployment patterns (Docker, Kubernetes)
Advanced Eloquent patterns (observers, accessors, mutators)
Doctrine advanced mapping (embeddables, inheritance)
Queue and job processing
Event-driven architecture
Caching strategies (Redis, Memcached)
Security best practices (OWASP patterns)
CI/CD integration patterns
Context7 Library Mappings /laravel/framework - Laravel web framework
/symfony/symfony - Symfony components and framework
/doctrine/orm - Doctrine ORM for PHP
/phpunit/phpunit - PHP testing framework
/pestphp/pest - Elegant PHP testing framework
/laravel/sanctum - Laravel API authentication
/laravel/horizon - Laravel queue dashboard
Works Well With
moai-domain-backend - REST API and microservices architecture
moai-domain-database - SQL patterns and ORM optimization
moai-workflow-testing - TDD and testing strategies
moai-platform-deploy - Docker and deployment patterns
moai-essentials-debug - AI-powered debugging
moai-foundation-quality - TRUST 5 quality principles
Troubleshooting php --version
php -m | grep -E 'pdo|mbstring|openssl'
Composer Autoload Issues:
composer dump-autoload -o
composer clear-cache
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
php bin/console cache:clear
php bin/console cache:warmup
try {
DB::connection ()->getPdo ();
echo "Connected successfully" ;
} catch (\Exception $e ) {
echo "Connection failed: " . $e ->getMessage ();
}
php artisan migrate:rollback --step=1
php artisan migrate:fresh --seed
php bin/console doctrine:migrations:migrate prev
Last Updated: 2025-12-07
Status: Active (v1.0.0)