私は、アプリケーションのバックボーンの 1 つである大きなクラス内で作業しています。これを と呼びますmyClass
。このクラスの新しいパブリック メソッドを作成し、作成中の関数の個々のメソッドを呼び出す変数配列を受け入れるようにするmy_new_iterative_function()
必要があります: ... ある意味では、「クラス内にクラスが必要です。 " (javascript はこれに適しています ;) ... どうすれば次のことを達成できますか。$fallback_order
パラメーター配列を反復処理して、これらのメソッドが呼び出される順序を変更し、デフォルトの順序を設定します。$fallback_order
定義されているように false の場合に実行されますデフォルトのパラメータ?
class myClass {
public function existing_app_method_1() {
// other code
}
public function existing_app_method_2() {
// other code
}
// large app-centric class with many more methods
public function my_new_iterative_function( array $fallback_order = false ) {
method_foo() {
// do stuff
}
method_bar() {
// do stuff
}
method_more_methods() {
// there are at least 5 of them in total
}
if ( $fallbackorder == false ):
method_foo();
method_bar();
else:
foreach ( $fallback_order as $index => $this_fallback ) {
$name = $this_fallback;
if ( $this_fallback == $name ):
$this->$name();
endif;
}
endif;
}
}
目標は、ビュー テンプレートで次のようになります。
<div><?php $myClass->my_new_iterative_function( array( 'method_more_methods', 'method_bar', 'method_foo', ) ); ?></div>
編集:明らかに欠陥のあるロジックを修正