PHP es un lenguaje dinámicamente tipado, no soporta la definición de tipos de variable, sin embargo, existe algo llamado "type hinting" donde puedes declarar el tipo de dato que tiene que ser pasado como argumento en un método. Simplemente puedes utilizarlo en un setter.
Entonces, sería algo como:
Código PHP:
Ver originalclass Producto
{
private $_proovedor;
/**
* Asigna un objeto instancia de Proovedor
*/
public function setProovedor(Proovedor $proovedor)
{
$this->_proovedor = $proovedor;
}
}
Eso sí es posible.
www.php.net/language.oop5.typehinting