私のプロジェクトには、多くの静的メソッドとクラス メソッドを持つ特定のクラスが 1 つあります (これは意図的なものであり、この場合、多くの小さなクラスではなく 1 つの大きなクラスを使用する方が理にかなっています)。
メソッドは、PSR-1 準拠のmethodNameの代わりにmethod_nameのようなアンダースコア ケースを使用して定義されており、一連のものを PSR-1 に変換しています。
ここで、これらのメソッド (以下) のようなものを使用して、いずれか (method_name と methodName) の使用を許可できます。利点は、新しいバグを導入するリスクがなく、それを使用している現在のすべてのコードが引き続き機能し、ゆっくりと移行できることです。
<?php
// enable PSR-1 for class methods
public static function __callStatic($name, $args) {
$toLower = function($c) { return '_'.strtolower($c[1]); };
$underscoreCased = preg_replace_callback('/([A-Z])/', $toLower, $name);
return forward_static_call_array(['ClassName', $underscoreCased], $args);
}
// enable PSR-1 for instance metods
public function __call($name, $args) {
$toLower = function($c) { return '_'.strtolower($c[1]); };
$underscoreCased = preg_replace_callback('/([A-Z])/', $toLower, $name);
return call_user_func_array([$this, $underscoreCased], $args);
}
ここで質問ですが、これはあまりにも醜いですか?上記の利点にもかかわらず、これを避けるべきですか?