As far as I know, there would be no way to force a sub-class to implement the abstract property.
Even if you implemented to some logic in the parent class, you would still have to rely on the sub-class calling this method.
You could, possibly, have the parent constructor marked as final to prevent the sub-class overriding it, and have this populate the required property.
Of course, this would require the property to be set at runtime which may not be desired, not to mention limiting any future extensions.
abstract class Bacon
public $sCookingMethod = null;
final public function __construct($sCookingMethod)
$this->sCookingMethod = $sCookingMethod;
abstract public function cook();