I have a search class that I am using to fetch results from two different sources and combine them together. The Search class is the parent and has two children A and B which extend Search.
In the Search class, I have a method called fetch() which instantiates the two child objects to get their results. It looks something like this:
public function fetch(){ $a = new A($this); $a_results = $a->fetch(); $b = new B($this); $b_results = $b->fetch(); // code to combine the results here } The constructor of class A and B both look like this:
class A extends Search { public function __construct(Search $search){ parent::__construct($search->category, $search->offset, $search->keywords...); } It feels like I'm doing something wrong in that I'm passing a parent object to a child and then creating another parent object with the exact same data. Is there a better way to set this up?
I have it set this way because some parts of my application need to access class A and B directly, rather than through the parent Search class.