<?php

namespace SHServ\Helpers;

trait PetInstancesImplementation {
	protected $pet_instances = [];

	public function get_pet_instance(String $instance_name, $callback) {
		if(!isset($this -> pet_instances[$instance_name])) {
			$this -> pet_instances[$instance_name] = $callback();
		}

		return $this -> pet_instances[$instance_name];
	}

	public function forward_instance_init(String $instance_name, $instance) {
		$this -> pet_instances[$instance_name] = $instance;
	}

	public function get_existing_pet_list() {
		return array_keys($this -> pet_instances);
	}
}
