Я недавно получил этот код от моего разработчика и нашел его очень запутанным. То, как он передает аргументы и затем переименовывает их в методах, делает код более сложным для чтения. Я трачу много времени, просто пытаясь выяснить, что такое $ block_options и откуда он берется. В первом методе он определяет переменную $ settings , а затем передает его методу _start_block , и он все еще называется $ settings . Но затем он передает его следующему методу _ajax_param , а затем имя переменной меняется на $ block , которое затем он сохраняет в $ block_options . Так что $ settings становится $ block_options .
Является ли это хорошей практикой для переименования аргументов при передаче их через методы, как это?
Исходный код является более сложным и включает больше кода внутри методов, что делает его более запутанным. Вот упрощенная версия кода:
protected function render() {
$settings = $this->get_settings_for_display();
$data = $this->_fetch_query_data( $settings );
$output = '';
$output .= $this->_start_block( $settings, $data );
echo $output;
}
protected function _start_block( $settings, $data = null ) {
$ajax_param = '';
if ( ! empty( $data ) && is_object( $data ) ) {
$ajax_param = $this->_ajax_param( $settings, $data );
}
$output = '';
$output .= '<div id="' . esc_attr( $settings['block_id'] ) . '" class="content-section section-recent-news tab-post" ' . esc_attr( $ajax_param ) . '>';
$output .= '<div class="recent-news-inner">';
return $output;
}
protected function _ajax_param( $block, $data_query ) {
//check
if ( empty( $block ) || empty( $block['block_id'] ) ) {
return false;
}
$param = array();
$block_options = $block;
$param['data-block_id'] = $block['block_id'];
//post per page
if ( ! empty( $block_options['posts_per_page'] ) ) {
$param['data-posts_per_page'] = $block_options['posts_per_page'];
}
return $param
}