多階層カテゴリ構造クラスを使ってみる
抽象クラスMultilevelCategory
抽象クラスMultilevelCategoryを継承し、以下の抽象メソッドを定義してください。
protected function getCategoryIdFieldName()
	戻り値の型:string
	カテゴリIDのフィールド名。
protected function getCategoryNameFieldName()
	戻り値の型:string
	カテゴリ名のフィールド名。
protected function getParentIdFieldName()
	戻り値の型:string
	親カテゴリIDのフィールド名。
protected function getCategoryData()
	戻り値の型:array
	DBの取得値を想定していますので、2次元配列になるようにしてください。
	 
public final function __construct()
コンストラクタ。
protected function getParentDetectedValues()
	戻り値の型:array
	トップレベルのカテゴリに設定される親カテゴリIDの規定値を返します。
	こちらで設定したIDはトップレベルカテゴリとして判定されます。
	デフォルトはarray(0)が返されます。
public function getCategories()
	戻り値の型:array
	カテゴリのツリー構造を返します。
	この戻り値をダンプしないでください。
	参照値がループするため、正常にダンプできません。
public function getCategoryById($id)
	第1引数:int $id
	戻り値の型:Category
	カテゴリIDを元にCategoryクラスのインスタンスを返します。
	特定できないカテゴリIDが指定された場合、NULLを返します。
public function getArrayCopy()
	戻り値の型:array
	カテゴリのツリー構造を配列で返却します。
	このメソッドの戻り値には一切インスタンスは含みません。
public function getArrayCopyById($id)
	第1引数:int $id
	戻り値の型:array
	カテゴリIDを元にCategoryクラスからのツリー構造を配列で返します。
	特定できないカテゴリIDが指定された場合、NULLを返します。
	このメソッドの戻り値には一切インスタンスは含みません。