1<?php 2 3namespace DeepCopy\Matcher; 4 5/** 6 * @final 7 */ 8class PropertyMatcher implements Matcher 9{ 10 /** 11 * @var string 12 */ 13 private $class; 14 15 /** 16 * @var string 17 */ 18 private $property; 19 20 /** 21 * @param string $class Class name 22 * @param string $property Property name 23 */ 24 public function __construct($class, $property) 25 { 26 $this->class = $class; 27 $this->property = $property; 28 } 29 30 /** 31 * Matches a specific property of a specific class. 32 * 33 * {@inheritdoc} 34 */ 35 public function matches($object, $property) 36 { 37 return ($object instanceof $this->class) && $property == $this->property; 38 } 39} 40