私を助けてください。 PHP OOPの原則をよりよく理解する必要があります。PHPでクラスとプロパティを整理するのは正しいですか?
私はそれがstaticとして定義されるべきクラスのすべてのインスタンスに対して不変であるクラスのプロパティを持っている場合は? その場合、そのタイプのすべてのクラスで静的プロパティが定義されていることを確認する方法はありますか?私がPHPマニュアルで読んでいるように、静的プロパティは、インタフェースや抽象クラスのどちらでも制御できません。または私は間違っていますか?
単純な例です。
<?php
// Parent class
abstract class Employee
{
abstract public function getAlias();
}
// Child classes
class Manager extends Employee
{
public function getAlias()
{
return 'manager';
}
}
class Security extends Employee
{
public function getAlias()
{
return 'security';
}
}
alias
プロパティはどこに配置する必要がありますか教えてください。 将来作成される従業員の子孫には、そのプロパティが定義されていることを確認する必要があります。ダイナミックメソッドにそのようなプロパティを保持することはOKですか?または、定数、静的メソッドまたは静的プロパティに配置する必要がありますか?それは近いprinciple of least astonishmentと一致することから、それは、クリーンなコードになりので
あなたがのためにエイリアスを使用するものを、少し説明できますか?検索DBレコードエイリアスに基づいて適切なクラスをインスタンス化 - 例えば、 'alias'性(限り任意の同様のもの)について – Gordon
は、DBテーブルに格納され、単一表の継承のために使用することができます。 – Roman
この場合、エイリアスではなく実際のクラス名を使用できます。 'Manager :: class'はあなたに完全修飾クラス名を与えます。また、あなたのORMがそれを処理してはいけませんか?私を間違えないでください。それは有効な質問です。代わりに型チェックをすることができます。しかし、それはいくつかの文脈を必要とすることを決定する。 – Gordon