私は 1 つのクラスのリファクタリングで忙しく、2 つのメソッドをリファクタリングする方法を疑問に思っています。どうぞ:
public function transform($transformXml, $importXml, $xsdScheme = '')
{
...
if (!empty($xsdScheme)) {
$this->_validateXml($exportDoc, $xsdScheme);
}
...
}
protected function _validateXml(DOMDocument $xml, $xsdScheme)
{
...
if (!file_exists($xsdScheme)) {
throw new Exception('XSD file was not found in ' . $xsdScheme);
}
...
}
$xsdScheme
メソッドのパラメーターtransform
はオプションです。空の場合は xsd 検証を適用しません。その後、 method を呼び出します。_validateXml
ここで if をチェックしますfile_exists
。この検証は 2 つの部分に分かれていますが、私は好きではありません。だから、私はこのようなものを書きます:
public function transform($transformXml, $importXml, $xsdScheme = '')
{
...
if (!empty($xsdScheme)) {
if (!file_exists($xsdScheme)) {
throw new Exception('XSD file was not found in ' . $xsdScheme);
}
$this->_validateXml($exportDoc, $xsdScheme);
}
...
}
protected function _validateXml(DOMDocument $xml, $xsdScheme)
{
...
...
}
それは良いアプローチですか?いいえの場合、なぜですか?