精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Claude Code PHP開發(fā)子代理實戰(zhàn)指南:打造你的現(xiàn)代PHP架構(gòu)師

開發(fā) 前端
今天要分享的是我精心調(diào)優(yōu)的PHP開發(fā)子代理——這個配置能讓Claude Code像一個精通現(xiàn)代PHP的資深架構(gòu)師,從Laravel到Symfony,從性能優(yōu)化到安全防護,幫你寫出企業(yè)級的PHP代碼。

今天要分享的是我精心調(diào)優(yōu)的PHP開發(fā)子代理——這個配置能讓Claude Code像一個精通現(xiàn)代PHP的資深架構(gòu)師,從Laravel到Symfony,從性能優(yōu)化到安全防護,幫你寫出企業(yè)級的PHP代碼。

一、為什么PHP開發(fā)需要專屬子代理?

1.1 PHP開發(fā)的獨特挑戰(zhàn)

PHP已經(jīng)不是10年前那個"簡單腳本語言"了,但很多人還在用老方式寫PHP:

// 場景對比:處理用戶登錄

// ? 通用Claude可能給你的代碼
<?php
$username = $_POST['username'];
$password = $_POST['password'];

$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysql_query($query);  // 已廢棄的函數(shù)!SQL注入風(fēng)險!

if (mysql_num_rows($result) > 0) {
    $_SESSION['logged_in'] = true;
    echo"Login successful";
}
// 問題:SQL注入、明文密碼、過時函數(shù)、沒有CSRF保護

// ? PHP子代理會給你的專業(yè)方案
<?php
declare(strict_types=1);

namespaceApp\Http\Controllers\Auth;

useApp\Models\User;
useApp\Http\Requests\LoginRequest;
useApp\Services\Auth\AuthenticationService;
useApp\Events\UserLoggedIn;
useIlluminate\Http\JsonResponse;
useIlluminate\Support\Facades\RateLimiter;
useSymfony\Component\HttpFoundation\Response;

finalclass LoginController extends Controller
{
    publicfunction __construct(
        private readonly AuthenticationService $authService
    ) {}

    /**
     * 處理用戶登錄請求
     * 
     * @param LoginRequest $request 驗證過的請求對象
     * @return JsonResponse
     * @throws \Throwable
     */
    publicfunction login(LoginRequest $request): JsonResponse
    {
        // 1. 速率限制檢查
        $key = 'login:' . $request->ip();
        if (RateLimiter::tooManyAttempts($key, 5)) {
            return response()->json([
                'message' => '登錄嘗試次數(shù)過多,請稍后再試',
                'retry_after' => RateLimiter::availableIn($key)
            ], Response::HTTP_TOO_MANY_REQUESTS);
        }

        try {
            // 2. 驗證憑據(jù)(自動處理密碼哈希驗證)
            $credentials = $request->validated();
            
            // 3. 嘗試認證
            $result = $this->authService->attempt(
                email: $credentials['email'],
                password: $credentials['password'],
                remember: $credentials['remember'] ?? false
            );

            if (!$result->success) {
                RateLimiter::hit($key, 300); // 5分鐘窗口
                
                return response()->json([
                    'message' => '郵箱或密碼錯誤',
                    'errors' => ['email' => ['認證失敗']]
                ], Response::HTTP_UNPROCESSABLE_ENTITY);
            }

            // 4. 清除速率限制
            RateLimiter::clear($key);

            // 5. 生成安全的會話/JWT令牌
            $token = $result->token;
            $user = $result->user;

            // 6. 觸發(fā)登錄事件(用于日志、通知等)
            event(new UserLoggedIn($user, $request->ip(), $request->userAgent()));

            // 7. 返回響應(yīng)(包含CSRF令牌)
            return response()->json([
                'message' => '登錄成功',
                'data' => [
                    'user' => $user->only(['id', 'name', 'email', 'avatar']),
                    'token' => $token,
                    'token_type' => 'Bearer',
                    'expires_in' => config('jwt.ttl') * 60
                ]
            ])->withHeaders([
                'X-CSRF-TOKEN' => csrf_token()
            ]);

        } catch (\Exception $e) {
            // 8. 錯誤處理和日志
            report($e);
            
            return response()->json([
                'message' => '登錄過程中發(fā)生錯誤,請稍后重試'
            ], Response::HTTP_INTERNAL_SERVER_ERROR);
        }
    }
}

// LoginRequest.php - 請求驗證
namespaceApp\Http\Requests;

useIlluminate\Foundation\Http\FormRequest;
useIlluminate\Validation\Rules\Password;

class LoginRequest extends FormRequest
{
    publicfunction authorize(): bool
    {
        returntrue;
    }

    publicfunction rules(): array
    {
        return [
            'email' => [
                'required',
                'email:rfc,dns',
                'max:255'
            ],
            'password' => [
                'required',
                Password::min(8)
                    ->mixedCase()
                    ->numbers()
                    ->symbols()
            ],
            'remember' => ['boolean'],
            'captcha' => ['required_if:failed_attempts,>,3', 'captcha']
        ];
    }

    publicfunction messages(): array
    {
        return [
            'email.required' => '請輸入郵箱地址',
            'email.email' => '請輸入有效的郵箱地址',
            'password.required' => '請輸入密碼',
            'captcha.required_if' => '多次失敗后需要驗證碼'
        ];
    }
}

1.2 PHP子代理解決的五大痛點

痛點類型

具體問題

子代理解決方案

安全漏洞

SQL注入、XSS攻擊

參數(shù)化查詢、自動轉(zhuǎn)義

性能問題

N+1查詢、內(nèi)存泄漏

預(yù)加載、生成器優(yōu)化

代碼質(zhì)量

混亂的代碼結(jié)構(gòu)

PSR標(biāo)準(zhǔn)、設(shè)計模式

過時寫法

使用廢棄函數(shù)

PHP 8.3+現(xiàn)代特性

測試缺失

沒有單元測試

PHPUnit完整覆蓋

1.3 通俗理解現(xiàn)代PHP

把PHP的發(fā)展比作汽車進化:

  • PHP 5時代 = 手動擋汽車(什么都要自己做)
  • PHP 7時代 = 自動擋汽車(性能翻倍,更易用)
  • PHP 8時代 = 智能汽車(JIT編譯、屬性、聯(lián)合類型)

PHP子代理幫你直接開上"智能汽車"。

二、PHP子代理配置完全解析

2.1 配置文件雙語版本

英文原版(推薦使用)

---
name: php-developer
description: Develop modern PHP applications with advanced OOP, performance optimization, and security best practices. Specializes in Laravel, Symfony, and high-performance PHP patterns. Use PROACTIVELY for PHP-specific optimizations and enterprise applications.
model: sonnet
---
You are a PHP development expert specializing in modern PHP 8.3+ development with focus on performance, security, and maintainability.

## Modern PHP Expertise
- PHP 8.3+ features (readonly classes, constants in traits, typed class constants)
- Advanced OOP (inheritance, polymorphism, composition over inheritance)
- Trait composition and conflict resolution strategies
- Reflection API and attribute-based programming
- Memory optimization with generators and SPL data structures
- OpCache configuration and performance tuning
- Composer dependency management and PSR standards
- Security hardening and vulnerability prevention

## Framework Proficiency
1. Laravel ecosystem (Eloquent ORM, Artisan commands, queues)
2. Symfony components and dependency injection container
3. PSR compliance (PSR-4 autoloading, PSR-7 HTTP messages)
4. Doctrine ORM with advanced query optimization
5. PHPUnit testing with data providers and mocking
6. Performance profiling with Xdebug and Blackfire
7. Static analysis with PHPStan and Psalm
8. Code quality with PHP CS Fixer and PHPMD

## Security and Performance Focus
- Input validation and sanitization with filter functions
- SQL injection prevention with prepared statements
- XSS protection with proper output escaping
- CSRF token implementation and validation
- Password hashing with password_hash() and Argon2
- Rate limiting and brute force protection
- Session security and cookie configuration
- File upload security with MIME type validation
- Memory leak prevention and garbage collection tuning

## Enterprise Development
- Clean architecture with domain-driven design
- Repository pattern with interface segregation
- Event sourcing and CQRS implementation
- Microservices with API gateway patterns
- Database sharding and read replica strategies
- Caching layers with Redis and Memcached
- Queue processing with proper job handling
- Logging with Monolog and structured data
- Monitoring with APM tools and health checks

Build PHP applications that are secure, performant, and maintainable at enterprise scale. Focus on modern PHP practices while avoiding legacy patterns and security vulnerabilities.

中文理解版(帶詳細注釋)

---
name: php-developer
description: 使用高級OOP、性能優(yōu)化和安全最佳實踐開發(fā)現(xiàn)代PHP應(yīng)用。專精Laravel、Symfony和高性能PHP模式。在PHP優(yōu)化和企業(yè)應(yīng)用時主動使用。
model: sonnet
---
你是一位PHP開發(fā)專家,專精現(xiàn)代PHP 8.3+開發(fā),專注于性能、安全和可維護性。

## 現(xiàn)代PHP專業(yè)技能 / Modern PHP Expertise
- PHP 8.3+特性(只讀類、trait中的常量、類型化類常量)
- 高級OOP(繼承、多態(tài)、組合優(yōu)于繼承)
- Trait組合和沖突解決策略
- 反射API和基于屬性的編程
- 使用生成器和SPL數(shù)據(jù)結(jié)構(gòu)進行內(nèi)存優(yōu)化
- OpCache配置和性能調(diào)優(yōu)
- Composer依賴管理和PSR標(biāo)準(zhǔn)
- 安全加固和漏洞預(yù)防

## 框架精通 / Framework Proficiency
1. Laravel生態(tài)系統(tǒng)(Eloquent ORM、Artisan命令、隊列)
2. Symfony組件和依賴注入容器
3. PSR合規(guī)(PSR-4自動加載、PSR-7 HTTP消息)
4. Doctrine ORM高級查詢優(yōu)化
5. PHPUnit測試與數(shù)據(jù)提供者和模擬
6. 使用Xdebug和Blackfire進行性能分析
7. 使用PHPStan和Psalm進行靜態(tài)分析
8. 使用PHP CS Fixer和PHPMD保證代碼質(zhì)量

## 安全和性能關(guān)注 / Security and Performance Focus
- 使用過濾函數(shù)進行輸入驗證和清理
- 使用預(yù)處理語句防止SQL注入
- 通過適當(dāng)?shù)妮敵鲛D(zhuǎn)義防止XSS
- CSRF令牌實現(xiàn)和驗證
- 使用password_hash()和Argon2進行密碼哈希
- 速率限制和暴力破解保護
- 會話安全和Cookie配置
- 使用MIME類型驗證的文件上傳安全
- 內(nèi)存泄漏預(yù)防和垃圾回收調(diào)優(yōu)

## 企業(yè)級開發(fā) / Enterprise Development
- 使用領(lǐng)域驅(qū)動設(shè)計的清潔架構(gòu)
- 帶接口隔離的倉儲模式
- 事件溯源和CQRS實現(xiàn)
- 帶API網(wǎng)關(guān)模式的微服務(wù)
- 數(shù)據(jù)庫分片和讀副本策略
- 使用Redis和Memcached的緩存層
- 適當(dāng)?shù)淖鳂I(yè)處理和隊列處理
- 使用Monolog和結(jié)構(gòu)化數(shù)據(jù)記錄日志
- 使用APM工具和健康檢查進行監(jiān)控

構(gòu)建安全、高性能、可維護的企業(yè)級PHP應(yīng)用。
專注于現(xiàn)代PHP實踐,同時避免遺留模式和安全漏洞。

2.2 核心概念通俗解釋

// 1. 什么是PHP 8.3+新特性?
// 只讀類 - 類的所有屬性自動只讀
readonly class User {
    publicfunction __construct(
        public string $name,
        public string $email
    ) {}
}

// 2. 什么是Trait?
// 就像"能力包",可以給類添加功能
trait Timestampable {
    public DateTime $createdAt;
    public DateTime $updatedAt;
    
    publicfunction touch(): void {
        $this->updatedAt = new DateTime();
    }
}

class Post {
    useTimestampable;  // 獲得時間戳能力
}

// 3. 什么是生成器?
// 省內(nèi)存的迭代方式
function readLargeFile($file) {
    $handle = fopen($file, 'r');
    while (!feof($handle)) {
        yield fgets($handle);  // 一次只讀一行
    }
    fclose($handle);
}

// 4. 什么是依賴注入?
// 不要在類內(nèi)部創(chuàng)建依賴,而是從外部傳入
class UserService {
    publicfunction __construct(
        private UserRepository $repository  // 注入依賴
    ) {}
}

三、5分鐘快速配置指南

步驟1:打開子代理管理

# 在Claude Code中輸入
/agents

步驟2:創(chuàng)建PHP專家

  1. 點擊 "Create New Agent"
  2. 選擇 **"User-level agent"**(全局可用)

步驟3:粘貼配置

選擇上面的英文版或中文版配置,完整粘貼

步驟4:配置工具權(quán)限

PHP開發(fā)需要的權(quán)限:

  • Read - 讀取PHP文件
  • Write - 創(chuàng)建新文件
  • Edit - 修改代碼
  • MultiEdit - 批量重構(gòu)
  • Bash - 運行composer和artisan命令

步驟5:選擇標(biāo)識顏色

建議選擇 ?? 紫色(PHP的標(biāo)志色),保存配置

四、實戰(zhàn)案例:PHP子代理的強大能力

案例1:構(gòu)建高性能RESTful API

輸入指令

創(chuàng)建一個商品管理的RESTful API,要考慮性能和安全

PHP子代理輸出

<?php
// app/Http/Controllers/Api/ProductController.php
declare(strict_types=1);

namespaceApp\Http\Controllers\Api;

useApp\Http\Controllers\Controller;
useApp\Http\Requests\Product\{StoreRequest, UpdateRequest};
useApp\Http\Resources\ProductResource;
useApp\Models\Product;
useApp\Services\ProductService;
useApp\Repositories\ProductRepository;
useIlluminate\Http\{JsonResponse, Resources\Json\AnonymousResourceCollection};
useIlluminate\Support\Facades\{Cache, DB};
useSymfony\Component\HttpFoundation\Response;

finalclass ProductController extends Controller
{
    publicfunction __construct(
        private readonly ProductService $productService,
        private readonly ProductRepository $productRepository
    ) {
        // 中間件配置
        $this->middleware('auth:sanctum');
        $this->middleware('throttle:api');
        $this->middleware('cache.headers:public;max_age=300')->only(['index', 'show']);
    }

    /**
     * 獲取商品列表(帶緩存和分頁)
     */
    publicfunction index(): AnonymousResourceCollection
    {
        // 構(gòu)建緩存鍵
        $cacheKey = 'products:' . md5(serialize(request()->all()));
        
        $products = Cache::tags(['products'])->remember(
            $cacheKey,
            now()->addMinutes(10),
            function () {
                return$this->productRepository
                    ->with(['category', 'brand'])  // 預(yù)加載關(guān)聯(lián),避免N+1
                    ->filter(request()->all())
                    ->sortBy(request('sort', 'created_at'))
                    ->paginate(request('per_page', 15));
            }
        );

        return ProductResource::collection($products)
            ->additional([
                'meta' => [
                    'available_filters' => $this->productRepository->getAvailableFilters(),
                    'cache_hit' => Cache::tags(['products'])->has($cacheKey)
                ]
            ]);
    }

    /**
     * 創(chuàng)建新商品
     */
    publicfunction store(StoreRequest $request): JsonResponse
    {
        try {
            $product = DB::transaction(function () use ($request) {
                // 1. 創(chuàng)建商品
                $product = $this->productService->create(
                    $request->validated()
                );

                // 2. 處理圖片上傳
                if ($request->hasFile('images')) {
                    $this->productService->attachImages(
                        $product,
                        $request->file('images')
                    );
                }

                // 3. 清除緩存
                Cache::tags(['products'])->flush();

                return $product;
            });

            return response()->json([
                'message' => '商品創(chuàng)建成功',
                'data' => new ProductResource($product->load(['category', 'brand', 'images']))
            ], Response::HTTP_CREATED);

        } catch (\Exception $e) {
            report($e);
            
            return response()->json([
                'message' => '創(chuàng)建商品失敗',
                'error' => app()->isProduction() ? '服務(wù)器錯誤' : $e->getMessage()
            ], Response::HTTP_INTERNAL_SERVER_ERROR);
        }
    }

    /**
     * 獲取單個商品(帶緩存)
     */
    publicfunction show(Product $product): ProductResource
    {
        // 使用緩存的查詢結(jié)果
        $cachedProduct = Cache::tags(['products', "product:{$product->id}"])
            ->remember(
                "product:{$product->id}:full",
                now()->addHours(1),
                fn() => $product->load([
                    'category',
                    'brand',
                    'images',
                    'variants',
                    'reviews' => fn($q) => $q->latest()->limit(5)
                ])
            );

        returnnew ProductResource($cachedProduct);
    }

    /**
     * 更新商品
     */
    publicfunction update(UpdateRequest $request, Product $product): JsonResponse
    {
        $this->authorize('update', $product);

        try {
            $updated = DB::transaction(function () use ($request, $product) {
                $product = $this->productService->update(
                    $product,
                    $request->validated()
                );

                // 清除相關(guān)緩存
                Cache::tags(['products', "product:{$product->id}"])->flush();

                return $product;
            });

            return response()->json([
                'message' => '商品更新成功',
                'data' => new ProductResource($updated)
            ]);

        } catch (\Exception $e) {
            report($e);
            
            return response()->json([
                'message' => '更新失敗',
                'error' => $e->getMessage()
            ], Response::HTTP_INTERNAL_SERVER_ERROR);
        }
    }

    /**
     * 刪除商品(軟刪除)
     */
    publicfunction destroy(Product $product): JsonResponse
    {
        $this->authorize('delete', $product);

        $this->productService->delete($product);
        
        Cache::tags(['products', "product:{$product->id}"])->flush();

        return response()->json([
            'message' => '商品刪除成功'
        ], Response::HTTP_NO_CONTENT);
    }
}

// app/Services/ProductService.php
<?php
declare(strict_types=1);

namespaceApp\Services;

useApp\Models\Product;
useApp\Repositories\ProductRepository;
useIlluminate\Http\UploadedFile;
useIlluminate\Support\Facades\Storage;
useIntervention\Image\Facades\Image;

finalclass ProductService
{
    publicfunction __construct(
        private readonly ProductRepository $repository
    ) {}

    /**
     * 創(chuàng)建商品(使用DTO模式)
     */
    publicfunction create(array $data): Product
    {
        // 數(shù)據(jù)轉(zhuǎn)換和驗證
        $productData = $this->prepareData($data);
        
        // SKU生成
        $productData['sku'] = $this->generateUniqueSku($data['name']);
        
        // 創(chuàng)建商品
        return$this->repository->create($productData);
    }

    /**
     * 處理圖片上傳(多尺寸生成)
     */
    publicfunction attachImages(Product $product, array $images): void
    {
        $imagePaths = [];
        
        foreach ($images as $image) {
            if (!$image instanceof UploadedFile) {
                continue;
            }

            // 驗證MIME類型
            if (!in_array($image->getMimeType(), ['image/jpeg', 'image/png', 'image/webp'])) {
                thrownew \InvalidArgumentException('不支持的圖片格式');
            }

            // 生成文件名
            $filename = $this->generateImageFilename($image);
            
            // 創(chuàng)建多個尺寸
            $sizes = [
                'thumbnail' => [150, 150],
                'medium' => [500, 500],
                'large' => [1000, 1000]
            ];

            foreach ($sizes as $sizeName => $dimensions) {
                $resized = Image::make($image)
                    ->fit($dimensions[0], $dimensions[1])
                    ->encode('webp', 85);
                
                $path = "products/{$product->id}/{$sizeName}_{$filename}.webp";
                Storage::disk('public')->put($path, $resized);
                
                $imagePaths[$sizeName] = $path;
            }

            // 保存原圖
            $originalPath = "products/{$product->id}/original_{$filename}";
            Storage::disk('public')->putFileAs(
                "products/{$product->id}",
                $image,
                "original_{$filename}"
            );
            $imagePaths['original'] = $originalPath;
        }

        // 保存到數(shù)據(jù)庫
        $product->images()->create($imagePaths);
    }

    /**
     * 生成唯一SKU
     */
    privatefunction generateUniqueSku(string $name): string
    {
        $base = strtoupper(substr(preg_replace('/[^A-Za-z0-9]/', '', $name), 0, 3));
        $suffix = random_int(1000, 9999);
        $sku = "PRD-{$base}-{$suffix}";
        
        // 確保唯一性
        while ($this->repository->exists(['sku' => $sku])) {
            $suffix = random_int(1000, 9999);
            $sku = "PRD-{$base}-{$suffix}";
        }
        
        return $sku;
    }

    privatefunction prepareData(array $data): array
    {
        // 數(shù)據(jù)清理和轉(zhuǎn)換
        return [
            'name' => trim($data['name']),
            'description' => strip_tags($data['description'], '<p><br><strong><em>'),
            'price' => (float) $data['price'],
            'quantity' => (int) $data['quantity'],
            'category_id' => $data['category_id'],
            'brand_id' => $data['brand_id'] ?? null,
            'is_active' => $data['is_active'] ?? true,
            'meta' => $data['meta'] ?? []
        ];
    }

    privatefunction generateImageFilename(UploadedFile $file): string
    {
        return sprintf(
            '%s_%s',
            time(),
            hash('sha256', $file->getClientOriginalName())
        );
    }
}

看看PHP子代理自動實現(xiàn)了什么

  • ? PSR-4標(biāo)準(zhǔn)命名空間
  • ? 依賴注入
  • ? 倉儲模式
  • ? 服務(wù)層架構(gòu)
  • ? 緩存策略
  • ? 事務(wù)處理
  • ? 錯誤處理
  • ? 安全驗證
  • ? 性能優(yōu)化

案例2:實現(xiàn)安全的用戶認證系統(tǒng)

輸入

創(chuàng)建一個安全的JWT認證系統(tǒng)

PHP子代理輸出

<?php
// app/Services/Auth/JwtAuthService.php
declare(strict_types=1);

namespaceApp\Services\Auth;

useApp\Models\User;
useFirebase\JWT\{JWT, Key, ExpiredException};
useIlluminate\Support\Facades\Hash;

finalclass JwtAuthService
{
    privateconst ALGORITHM = 'HS256';
    private string $secretKey;
    private int $accessTokenTtl;
    private int $refreshTokenTtl;

    publicfunction __construct()
    {
        $this->secretKey = config('jwt.secret');
        $this->accessTokenTtl = config('jwt.access_ttl', 900); // 15分鐘
        $this->refreshTokenTtl = config('jwt.refresh_ttl', 604800); // 7天
    }

    /**
     * 生成JWT令牌對
     */
    publicfunction generateTokenPair(User $user): array
    {
        $accessToken = $this->generateAccessToken($user);
        $refreshToken = $this->generateRefreshToken($user);

        // 存儲刷新令牌的哈希值
        $user->refresh_tokens()->create([
            'token_hash' => hash('sha256', $refreshToken),
            'expires_at' => now()->addSeconds($this->refreshTokenTtl),
            'ip_address' => request()->ip(),
            'user_agent' => request()->userAgent()
        ]);

        return [
            'access_token' => $accessToken,
            'refresh_token' => $refreshToken,
            'token_type' => 'Bearer',
            'expires_in' => $this->accessTokenTtl
        ];
    }

    /**
     * 驗證訪問令牌
     */
    publicfunction validateAccessToken(string $token): ?User
    {
        try {
            $decoded = JWT::decode($token, new Key($this->secretKey, self::ALGORITHM));
            
            // 驗證令牌類型
            if ($decoded->type !== 'access') {
                returnnull;
            }

            // 檢查是否在黑名單中
            if ($this->isTokenBlacklisted($token)) {
                returnnull;
            }

            return User::find($decoded->sub);

        } catch (ExpiredException $e) {
            thrownew TokenExpiredException('訪問令牌已過期');
        } catch (\Exception $e) {
            returnnull;
        }
    }

    /**
     * 刷新訪問令牌
     */
    publicfunction refreshAccessToken(string $refreshToken): array
    {
        try {
            $decoded = JWT::decode($refreshToken, new Key($this->secretKey, self::ALGORITHM));
            
            if ($decoded->type !== 'refresh') {
                thrownew \InvalidArgumentException('無效的刷新令牌');
            }

            $user = User::find($decoded->sub);
            if (!$user) {
                thrownew \InvalidArgumentException('用戶不存在');
            }

            // 驗證刷新令牌是否有效
            $tokenHash = hash('sha256', $refreshToken);
            $storedToken = $user->refresh_tokens()
                ->where('token_hash', $tokenHash)
                ->where('expires_at', '>', now())
                ->where('revoked', false)
                ->first();

            if (!$storedToken) {
                thrownew \InvalidArgumentException('刷新令牌無效或已撤銷');
            }

            // 更新最后使用時間
            $storedToken->update(['last_used_at' => now()]);

            // 生成新的訪問令牌
            return [
                'access_token' => $this->generateAccessToken($user),
                'token_type' => 'Bearer',
                'expires_in' => $this->accessTokenTtl
            ];

        } catch (\Exception $e) {
            thrownew \InvalidArgumentException('刷新令牌無效: ' . $e->getMessage());
        }
    }

    /**
     * 撤銷所有令牌
     */
    publicfunction revokeAllTokens(User $user): void
    {
        $user->refresh_tokens()->update(['revoked' => true]);
        
        // 可選:添加到黑名單緩存
        Cache::tags(['jwt:blacklist'])->put(
            "user:{$user->id}:revoked",
            true,
            now()->addSeconds($this->refreshTokenTtl)
        );
    }

    privatefunction generateAccessToken(User $user): string
    {
        $payload = [
            'iss' => config('app.url'),
            'sub' => $user->id,
            'iat' => time(),
            'exp' => time() + $this->accessTokenTtl,
            'type' => 'access',
            'jti' => $this->generateJti(),
            'user' => [
                'email' => $user->email,
                'role' => $user->role
            ]
        ];

        return JWT::encode($payload, $this->secretKey, self::ALGORITHM);
    }

    privatefunction generateRefreshToken(User $user): string
    {
        $payload = [
            'iss' => config('app.url'),
            'sub' => $user->id,
            'iat' => time(),
            'exp' => time() + $this->refreshTokenTtl,
            'type' => 'refresh',
            'jti' => $this->generateJti()
        ];

        return JWT::encode($payload, $this->secretKey, self::ALGORITHM);
    }

    privatefunction generateJti(): string
    {
        return bin2hex(random_bytes(16));
    }

    privatefunction isTokenBlacklisted(string $token): bool
    {
        return Cache::tags(['jwt:blacklist'])->has(
            'token:' . hash('sha256', $token)
        );
    }
}

五、進階技巧:定制你的PHP子代理

5.1 針對特定框架優(yōu)化

Laravel專精版

## Framework Proficiency
- Laravel 11全棧開發(fā)
- Livewire實時組件
- Inertia.js + Vue/React
- Laravel Octane性能加速
- Horizon隊列管理

Symfony專精版

## Framework Proficiency
- Symfony 7組件架構(gòu)
- API Platform構(gòu)建
- Messenger組件
- Doctrine ORM優(yōu)化
- Twig模板引擎

5.2 添加團隊規(guī)范

## Team Standards
- 代碼風(fēng)格:PSR-12標(biāo)準(zhǔn)
- 命名規(guī)范:駝峰命名法
- 文檔:PHPDoc完整注釋
- 測試覆蓋:最低80%
- Git工作流:GitFlow

六、常見問題解答

Q1:PHP子代理什么時候觸發(fā)?

觸發(fā)關(guān)鍵詞

  • PHP、Laravel、Symfony
  • Composer、Artisan
  • MySQL、數(shù)據(jù)庫
  • API、Web開發(fā)

Q2:如何處理PHP版本兼容?

子代理會標(biāo)注版本要求:

// PHP 8.0+
#[Attribute]
class Route {}

// PHP 7.4兼容寫法
/** @Annotation */
class Route {}

Q3:如何優(yōu)化PHP性能?

子代理會自動實現(xiàn):

  • OpCache配置
  • 查詢優(yōu)化
  • 緩存策略
  • 異步隊列
  • 懶加載

Q4:如何確保代碼安全?

自動實施:

  • 參數(shù)化查詢
  • 輸入驗證
  • CSRF保護
  • XSS防護
  • 密碼加密

七、性能提升數(shù)據(jù)

評估指標(biāo)

通用Claude

PHP子代理

提升幅度

代碼規(guī)范

40%

100%

+150%

安全性

30%

95%

+217%

性能優(yōu)化

25%

90%

+260%

測試覆蓋

10%

85%

+750%

現(xiàn)代特性

35%

100%

+186%

八、總結(jié):PHP子代理的核心價值

這個PHP開發(fā)子代理帶來的價值:

  1. 現(xiàn)代化:使用PHP 8.3+最新特性
  2. 安全第一:默認防護各種漏洞
  3. 性能優(yōu)化:自動實施最佳實踐
  4. 框架精通:Laravel/Symfony專業(yè)水準(zhǔn)
  5. 企業(yè)就緒:可擴展的架構(gòu)設(shè)計

記住:PHP已經(jīng)不是"個人主頁"語言,而是驅(qū)動Facebook、WordPress等巨頭的企業(yè)級語言。這個子代理幫你寫出專業(yè)的PHP代碼。

責(zé)任編輯:武曉燕 來源: 前端達人
相關(guān)推薦

2025-08-14 08:37:58

2025-08-13 09:45:47

2021-07-06 08:00:00

企業(yè)架構(gòu)IT技術(shù)

2010-08-04 11:37:44

PHP NFS

2013-03-21 09:34:42

架構(gòu)師架構(gòu)設(shè)計

2009-05-25 10:18:29

PHPLAMPGLAMMP

2025-07-28 04:22:00

2020-06-28 14:15:52

前端架構(gòu)師互聯(lián)網(wǎng)

2017-02-05 09:13:58

PHP Cake框架構(gòu)建

2012-12-13 09:40:04

架構(gòu)師

2012-11-12 10:04:53

MySQL開發(fā)模式

2013-12-09 09:57:37

2018-07-06 11:25:40

Java架構(gòu)師面試

2020-05-11 09:54:33

JavaScript開發(fā)技術(shù)

2020-08-24 08:50:12

架構(gòu)師TL技術(shù)

2016-09-29 08:36:38

2012-02-23 15:02:20

架構(gòu)師介紹

2020-05-07 10:14:00

企業(yè)架構(gòu)師CIOIT網(wǎng)絡(luò)

2016-09-23 10:05:11

運維架構(gòu)師前景

2015-08-12 09:33:57

開發(fā)人員PHP資源庫
點贊
收藏

51CTO技術(shù)棧公眾號

欧美裸体bbwbbwbbw| 99在线精品视频| 欧美成人精品不卡视频在线观看| 蜜桃色一区二区三区| 漫画在线观看av| 中文字幕国产一区| 成人欧美一区二区三区视频xxx | 欧美在线视频导航| 欧美色视频一区二区三区在线观看| 精品国产第一国产综合精品| 欧美日韩一区免费| 性做爰过程免费播放| 日本成人一区二区三区| 久久69国产一区二区蜜臀| 亚洲夜晚福利在线观看| av观看免费在线| 在线观看小视频| 国产目拍亚洲精品99久久精品| www.久久久| 亚洲影视一区二区| 亚洲免费网址| 欧美激情欧美狂野欧美精品| 手机免费观看av| 日韩母乳在线| 日韩女优视频免费观看| 国产日韩欧美久久| 性高爱久久久久久久久| 亚洲福利视频一区| 色撸撸在线观看| 成av人电影在线观看| 99国产精品国产精品久久| 91青青草免费观看| 国产精品毛片久久久久久久av| 麻豆精品网站| 18久久久久久| 精品在线视频免费| 欧美精品97| 久久人人爽人人爽人人片亚洲| 一区二区三区伦理片| 老牛精品亚洲成av人片| 欧美成人aa大片| 亚洲高清av一区二区三区| 激情亚洲小说| 欧美日韩国产欧美日美国产精品| 免费观看成人网| 日韩伦理三区| 色成人在线视频| 成人精品小视频| 456亚洲精品成人影院| 欧美日韩中文字幕在线视频| 欧美爱爱视频免费看| 91视频欧美| 精品久久香蕉国产线看观看亚洲 | 17videosex性欧美| 亚洲一区二区精品视频| 久久男人资源站| www在线观看黄色| 婷婷国产v国产偷v亚洲高清| 无码 制服 丝袜 国产 另类| 成年人黄色大片在线| 亚洲第一综合色| www.中文字幕在线| 校园春色亚洲色图| 欧美日韩在线直播| 精品久久久99| 欧美三级一区| 欧美精品一区二区三区很污很色的 | 黄频免费在线观看| 色综合久久中文综合久久牛| 熟妇人妻无乱码中文字幕真矢织江| 不卡亚洲精品| 91精品国产91久久综合桃花| 91成人在线观看喷潮蘑菇| 影音先锋欧美激情| 精品呦交小u女在线| av网站免费在线看| 国产高清久久| 欧美国产视频一区二区| 男人天堂2024| 六月丁香婷婷久久| 成人欧美一区二区| 免费在线超碰| 亚洲欧美一区二区视频| 精品少妇在线视频| 台湾佬成人网| 欧美一级日韩免费不卡| av无码一区二区三区| 成人激情视频| 久久91精品国产| 亚洲天堂男人av| 激情综合色丁香一区二区| 国产精品一区二区三区精品| 国产在线视频福利| 亚洲猫色日本管| 欧美视频第一区| 99久久这里有精品| 精品小视频在线| 黄色录像一级片| 亚洲欧美日韩国产一区| 91精品啪aⅴ在线观看国产| 黄色一级大片在线免费看国产| 久久久国产一区二区三区四区小说| 潘金莲一级淫片aaaaa免费看| а√在线天堂官网| 欧美日韩另类一区| 538国产视频| 欧美一区精品| 国产成人精品免费久久久久 | 国产成人免费精品| 欧美mv日韩mv| 麻豆网址在线观看| 美女精品网站| 国产精品久久精品视| 日本三级视频在线观看| 欧美日韩中文字幕在线视频| 最好看的中文字幕| 久久伦理在线| 日韩女优在线播放| 天天操天天插天天射| 亚洲欧美激情一区二区| 国产又大又黄又粗又爽| 四虎5151久久欧美毛片| 欧美高清在线观看| 国产精品国产av| 国产精品久久久久久久浪潮网站 | 久草这里只有精品视频| 免费看污久久久| 国产经典三级在线| 日韩午夜激情免费电影| 少妇高潮惨叫久久久久| 久久一二三四| 欧美另类视频在线| 亚洲欧美se| 日韩av有码在线| 国产一卡二卡在线| 成人国产精品免费观看动漫| 最近免费观看高清韩国日本大全| 日本一区二区中文字幕| 视频在线观看99| 亚洲熟女乱色一区二区三区久久久| 国产亚洲欧美激情| 国产免费人做人爱午夜视频| www.国产免费| 亚洲国产高清不卡| 9久久婷婷国产综合精品性色 | 爱情电影网av一区二区| 中文字幕亚洲二区| 一本色道久久综合熟妇| ...xxx性欧美| 97人人模人人爽人人澡| 综合一区二区三区| 亚洲综合色激情五月| 精品176二区| 欧美一区二区三区啪啪| 欧美日韩成人免费观看| 成人动漫在线一区| 国产午夜福利100集发布| 嫩草国产精品入口| 国产suv精品一区二区| 国产精品久久久久久久龚玥菲| 91久久精品一区二区| 黑人と日本人の交わりビデオ| 久久精品噜噜噜成人av农村| 国产精品h视频| 91精品啪在线观看国产爱臀| 国产做受69高潮| 午夜一区在线观看| 欧美在线制服丝袜| 亚洲人与黑人屁股眼交| 国产98色在线|日韩| 欧美 日韩 国产在线观看| 国产欧美日韩精品一区二区三区| 国产精品美女在线观看| av香蕉成人| 日韩成人在线视频网站| 中文字幕人妻互换av久久| 亚洲欧美日韩久久精品| 亚洲国产综合视频| 蜜桃视频第一区免费观看| 欧美另类videosbestsex日本| 国产伦乱精品| 国产精品久久久久久久久男| 99热国产在线| 日韩精品在线私人| 国产乱淫片视频| 黄网动漫久久久| 长河落日免费高清观看| 成人小视频免费观看| 久久精品视频91| 欧美激情第8页| 欧美主播一区二区三区美女 久久精品人 | www.欧美激情.com| 国产日本精品| 99热都是精品| 深爱激情久久| 成人欧美一区二区三区黑人免费| 欧美色片在线观看| 久久免费国产视频| 国产视频一区二区| 亚洲欧美综合图区| 丰满熟妇乱又伦| 精品视频1区2区3区| 好吊操这里只有精品| 亚洲欧美在线另类| 天天躁日日躁aaaxxⅹ| 国产精品77777竹菊影视小说| 国产成人无码一二三区视频| 国产精品av一区二区| 亚洲一区二区三区精品动漫| 亚洲深夜福利在线观看| 国产91视觉| 二区三区精品| 国产精品亚洲欧美导航| 亚洲第一av| 欧美黑人一级爽快片淫片高清| 高清福利在线观看| 国产婷婷97碰碰久久人人蜜臀| 性生活视频软件| 欧美另类videos死尸| 国产成人自拍偷拍| 欧美性猛交xxxx乱大交| 国产成人精品a视频一区| 一级中文字幕一区二区| 婷婷激情四射网| 国产精品高清亚洲| 99久久久无码国产精品不卡| 欧美国产日韩一二三区| 国产激情在线免费观看| 91免费视频网址| 日本黄色录像片| 成人永久看片免费视频天堂| 少妇愉情理伦片bd| 国产伦精品一区二区三区视频青涩 | 亚洲高清在线播放| 国模吧精品视频| 日本一区二区不卡高清更新| 日韩精品免费一区二区三区竹菊 | 无码精品人妻一区二区| 亚洲精品一区二区精华| 狠狠综合久久av一区二区| 精品国产伦一区二区三区观看方式 | 日本精品一区二区| 国产中文字幕一区二区三区| 色噜噜一区二区| 日韩成人三级| 正在播放久久| 综合国产精品| 缅甸午夜性猛交xxxx| 一本久道久久综合狠狠爱| 无码粉嫩虎白一线天在线观看 | 国精品人妻无码一区二区三区喝尿| 欧美一区二区在线免费播放| 精品人妻无码一区二区| 亚洲精品一区二区三区99| 五月婷婷伊人网| 亚洲毛茸茸少妇高潮呻吟| 国产高清在线| xvideos亚洲人网站| 99福利在线| 久久久久久久一区二区| 欧产日产国产精品视频| 日本a级片电影一区二区| 色综合一本到久久亚洲91| 国产欧美一区二区| 日韩精品视频中文字幕| 国产日韩欧美精品| 欧美禁忌电影| 中文字幕一区二区三区四区五区六区 | 一本色道久久88综合亚洲精品ⅰ| √天堂资源地址在线官网| 欧美精品在线免费| 国产粉嫩在线观看| 国产精品免费网站| 日韩精品成人在线观看| 麻豆av一区二区| 欧美黄色大片在线观看| a天堂资源在线观看| 天堂蜜桃一区二区三区| 99精品视频国产| 久久欧美中文字幕| 日韩精品一区二区亚洲av性色| 亚洲成人av一区二区| 黄色大全在线观看| 欧美va亚洲va在线观看蝴蝶网| 青青草超碰在线| 久久视频在线免费观看| а√天堂中文在线资源8| 91精品久久久久久久久久久久久| 97人人澡人人爽91综合色| 免费在线成人av电影| 亚洲综合激情在线| 老司机午夜av| 国产91高潮流白浆在线麻豆 | 日韩精品xxx| 久久精品一区二区三区不卡牛牛| 日韩va亚洲va欧美va清高| 狠狠躁夜夜躁人人爽天天天天97| 91在线观看喷潮| 亚洲欧美另类自拍| 黑人玩欧美人三根一起进| 国产精品欧美亚洲777777| 国内视频在线精品| 自拍偷拍99| 久久人人97超碰国产公开结果| 亚洲天堂一区二区在线观看| 国产日韩欧美精品电影三级在线| 久久久久久久久久久网| 欧美日韩免费高清一区色橹橹 | 久久国产色av| 青青热久免费精品视频在线18| 国产欧美日韩伦理| 亚洲情侣在线| 日本 片 成人 在线| 久久久久久久综合日本| 日产亚洲一区二区三区| 日韩一级片网址| 在线观看免费高清完整| 日本久久久a级免费| 美女视频免费精品| 久久天天东北熟女毛茸茸| 久久精品国产色蜜蜜麻豆| 中文字幕高清视频| 亚洲国产成人高清精品| www.国产三级| 不卡av在线播放| 国产成人免费av一区二区午夜| 日韩免费av电影| 视频一区中文字幕| 在线 丝袜 欧美 日韩 制服| 婷婷久久综合九色综合伊人色| 日本免费一区视频| 欧美精品www| 99re热精品视频| 777久久精品一区二区三区无码 | 91福利在线免费观看| 天堂在线一二区| 68精品国产免费久久久久久婷婷 | 性欧美大战久久久久久久免费观看 | 日本十八禁视频无遮挡| 不卡av在线免费观看| 久久影院一区二区| 欧美大片日本大片免费观看| 色呦呦在线播放| 国产不卡一区二区三区在线观看| 欧美福利影院| wwwxxx色| 亚洲国产日产av| 五月婷婷在线观看视频| 91高清视频免费观看| 老汉色老汉首页av亚洲| 女性女同性aⅴ免费观女性恋 | 91狠狠综合久久久久久| 欧美日韩一区三区| 欧美成人三区| 91九色极品视频| 好吊视频一区二区三区四区| 日韩精品国产一区| 欧美日韩加勒比精品一区| 色视频在线观看| 国产成人精品日本亚洲专区61| blacked蜜桃精品一区| 青青草久久伊人| 亚洲亚洲人成综合网络| 天堂√在线中文官网在线| 国产精品日韩欧美| 久久久久午夜电影| 久草免费资源站| 欧美色欧美亚洲高清在线视频| 国产一二三区在线| 91香蕉亚洲精品| 99精品视频免费观看| av黄色在线免费观看| 91精品国产综合久久婷婷香蕉| 欧美hdxxxx| 日韩区国产区| 国产成人精品免费看| 三级视频在线观看| 日韩中文字幕网| 国内精品国产成人国产三级粉色| 99热手机在线| 一级中文字幕一区二区| 国产69精品久久app免费版| 亚洲最大的成人网| 国产九九精品| 久草福利资源在线| 亚洲国语精品自产拍在线观看| 日本精品裸体写真集在线观看| 国产午夜精品视频一区二区三区| 久久综合九色综合97婷婷| 国产精品高潮呻吟久久久| 欧美一区二粉嫩精品国产一线天| 手机在线电影一区| xxxx黄色片| 3atv在线一区二区三区| 在线人成日本视频| 精品人妻大屁股白浆无码| 国产欧美综合在线| 日本黄色一区二区三区| 成人激情免费在线| 丝袜诱惑制服诱惑色一区在线观看|