できません。それは継承の仕組みではありません。SomeClass を継承するクラスは、BaseClass から継承された SomeClass のプロパティとメソッドを含め、常にすべてのプロパティとメソッドを継承します。可視性を介してアクセスを制限できますが、保護されているプライベートからパブリックにのみ制限できます。たとえば、可視性を失うことはできますが、強化することはできません。
継承と可視性に関する PHP マニュアルの章を参照してください。
もう 1 つのオプションは、SomeClass のインスタンスの周りにある種の Facade を使用して、SomeClass でアクセス可能なプロパティとメソッドへのアクセスを制御することです。
class LimitedAccess
{
private $instance;
public function __construct(SomeClass $someClass)
{
$this->instance = $someClass
}
public function foo()
{
return $this->instance->foo;
}
}
そして、この Facade を介してすべてのアクセスをファネルし、BaseClass::bar() へのアクセスを効果的に防ぐことができます。これにより、継承階層が変更されることはありません。アクセスを制御するだけです。