| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- require_once 'vendor/autoload.php';
- use App\Module\Pet\Dtos\PetLifeSkillDto;
- use App\Module\Game\Dtos\PetStatusTempDto;
- echo "开始测试宠物技能修复...\n";
- // 测试1: 创建PetLifeSkillDto对象
- echo "\n=== 测试1: 创建PetLifeSkillDto对象 ===\n";
- $lifeSkill1 = new PetLifeSkillDto();
- $lifeSkill1->skillId = 1;
- $lifeSkill1->canuse = true;
- $lifeSkill1->curnum = 0;
- $lifeSkill1->maxnum = 300;
- $lifeSkill2 = new PetLifeSkillDto();
- $lifeSkill2->skillId = 2;
- $lifeSkill2->canuse = false;
- $lifeSkill2->curnum = 150;
- $lifeSkill2->maxnum = 300;
- echo "创建了2个PetLifeSkillDto对象\n";
- echo "技能1: skillId={$lifeSkill1->skillId}, canuse=" . ($lifeSkill1->canuse ? 'true' : 'false') . "\n";
- echo "技能2: skillId={$lifeSkill2->skillId}, canuse=" . ($lifeSkill2->canuse ? 'true' : 'false') . "\n";
- // 测试2: 创建PetStatusTempDto对象并设置lifeSkills
- echo "\n=== 测试2: 创建PetStatusTempDto对象 ===\n";
- $petTempDto = new PetStatusTempDto();
- $petTempDto->id = 1;
- $petTempDto->name = '测试宠物';
- $petTempDto->lifeSkills = [$lifeSkill1, $lifeSkill2];
- echo "创建了PetStatusTempDto对象\n";
- echo "宠物ID: {$petTempDto->id}\n";
- echo "宠物名称: {$petTempDto->name}\n";
- echo "生活技能数量: " . count($petTempDto->lifeSkills) . "\n";
- foreach ($petTempDto->lifeSkills as $index => $skill) {
- echo "技能{$index}: " . get_class($skill) . ", skillId={$skill->skillId}\n";
- }
- // 测试3: 模拟缓存数据并使用fromCache恢复
- echo "\n=== 测试3: 测试fromCache方法 ===\n";
- $cachedData = [
- 1 => [
- 'id' => 1,
- 'name' => '测试宠物',
- 'life_skills' => [
- [
- 'skill_id' => 1,
- 'canuse' => true,
- 'curnum' => 0,
- 'maxnum' => 300
- ],
- [
- 'skill_id' => 2,
- 'canuse' => false,
- 'curnum' => 150,
- 'maxnum' => 300
- ]
- ]
- ]
- ];
- echo "模拟缓存数据:\n";
- print_r($cachedData);
- $result = PetStatusTempDto::fromCache($cachedData);
- echo "\n使用fromCache恢复数据:\n";
- echo "恢复的数据数量: " . count($result) . "\n";
- if (isset($result[1])) {
- $recoveredPet = $result[1];
- echo "恢复的宠物类型: " . get_class($recoveredPet) . "\n";
- echo "恢复的宠物ID: {$recoveredPet->id}\n";
- echo "恢复的宠物名称: {$recoveredPet->name}\n";
- echo "恢复的生活技能数量: " . count($recoveredPet->lifeSkills) . "\n";
-
- foreach ($recoveredPet->lifeSkills as $index => $skill) {
- echo "恢复的技能{$index}: " . get_class($skill) . ", skillId={$skill->skillId}, canuse=" . ($skill->canuse ? 'true' : 'false') . "\n";
- }
-
- // 测试4: 验证访问skillId属性不会出错
- echo "\n=== 测试4: 验证访问skillId属性 ===\n";
- try {
- foreach ($recoveredPet->lifeSkills as $skill) {
- echo "访问技能skillId: {$skill->skillId} - 成功\n";
- }
- echo "所有技能的skillId属性访问成功!\n";
- } catch (Exception $e) {
- echo "错误: " . $e->getMessage() . "\n";
- }
- } else {
- echo "错误: 无法恢复宠物数据\n";
- }
- echo "\n测试完成!\n";
|