Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
1 | <?php |
||
17 | class Atomic_Admin_Menu extends Admin_Menu { |
||
18 | |||
19 | /** |
||
20 | * Atomic_Admin_Menu constructor. |
||
21 | */ |
||
22 | protected function __construct() { |
||
37 | |||
38 | /** |
||
39 | * Dequeues unnecessary scripts. |
||
40 | */ |
||
41 | public function dequeue_scripts() { |
||
44 | |||
45 | /** |
||
46 | * Determines whether the current locale is right-to-left (RTL). |
||
47 | * |
||
48 | * Performs the check against the current locale set on the WordPress.com's account settings. |
||
49 | * See `Masterbar::__construct` in `modules/masterbar/masterbar/class-masterbar.php`. |
||
50 | */ |
||
51 | public function is_rtl() { |
||
54 | |||
55 | /** |
||
56 | * Create the desired menu output. |
||
57 | */ |
||
58 | View Code Duplication | public function reregister_menu_items() { |
|
72 | |||
73 | /** |
||
74 | * Forces Posts menu to WPAdmin for Atomic sites only. |
||
75 | * Overloads `add_posts_menu` in parent class. |
||
76 | * |
||
77 | * @param bool $wp_admin Optional. Whether links should point to Calypso or wp-admin. Default false (Calypso). |
||
78 | */ |
||
79 | public function add_posts_menu( $wp_admin = false ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable |
||
82 | |||
83 | /** |
||
84 | * Forces Pages menu to WPAdmin for Atomic sites only. |
||
85 | * Overloads `add_page_menu` in parent class. |
||
86 | * |
||
87 | * @param bool $wp_admin Optional. Whether links should point to Calypso or wp-admin. Default false (Calypso). |
||
88 | */ |
||
89 | public function add_page_menu( $wp_admin = false ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable |
||
92 | |||
93 | /** |
||
94 | * Adds Plugins menu. |
||
95 | * |
||
96 | * @param bool $wp_admin Optional. Whether links should point to Calypso or wp-admin. Default false (Calypso). |
||
97 | */ |
||
98 | public function add_plugins_menu( $wp_admin = false ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable |
||
102 | |||
103 | /** |
||
104 | * Adds the site switcher link if user has more than one site. |
||
105 | */ |
||
106 | public function add_browse_sites_link() { |
||
116 | |||
117 | /** |
||
118 | * Adds a custom element class for Site Switcher menu item. |
||
119 | * |
||
120 | * @param array $menu Associative array of administration menu items. |
||
121 | * |
||
122 | * @return array |
||
123 | */ |
||
124 | View Code Duplication | public function set_browse_sites_link_class( array $menu ) { |
|
136 | |||
137 | /** |
||
138 | * Adds a link to the menu to create a new site. |
||
139 | */ |
||
140 | public function add_new_site_link() { |
||
149 | |||
150 | /** |
||
151 | * Adds site card component. |
||
152 | */ |
||
153 | public function add_site_card_menu() { |
||
183 | |||
184 | /** |
||
185 | * Adds a custom element class and id for Site Card's menu item. |
||
186 | * |
||
187 | * @param array $menu Associative array of administration menu items. |
||
188 | * |
||
189 | * @return array |
||
190 | */ |
||
191 | public function set_site_card_menu_class( array $menu ) { |
||
211 | |||
212 | /** |
||
213 | * Adds Upgrades menu. |
||
214 | */ |
||
215 | public function add_upgrades_menu() { |
||
220 | |||
221 | /** |
||
222 | * Adds Tools menu. |
||
223 | * |
||
224 | * @param bool $wp_admin_import Optional. Whether Import link should point to Calypso or wp-admin. Default false (Calypso). |
||
225 | * @param bool $wp_admin_export Optional. Whether Export link should point to Calypso or wp-admin. Default false (Calypso). |
||
226 | */ |
||
227 | public function add_tools_menu( $wp_admin_import = false, $wp_admin_export = false ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable |
||
231 | |||
232 | /** |
||
233 | * Adds Settings menu. |
||
234 | * |
||
235 | * @param bool $wp_admin Optional. Whether links should point to Calypso or wp-admin. Default false (Calypso). |
||
236 | */ |
||
237 | public function add_options_menu( $wp_admin = false ) { |
||
248 | |||
249 | /** |
||
250 | * Adds Appearance menu. |
||
251 | * |
||
252 | * @param bool $wp_admin_themes Optional. Whether Themes link should point to Calypso or wp-admin. Default false (Calypso). |
||
253 | * @param bool $wp_admin_customize Optional. Whether Customize link should point to Calypso or wp-admin. Default false (Calypso). |
||
254 | */ |
||
255 | public function add_appearance_menu( $wp_admin_themes = false, $wp_admin_customize = false ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable |
||
261 | |||
262 | /** |
||
263 | * Adds Users menu. |
||
264 | * |
||
265 | * @param bool $wp_admin Optional. Whether links should point to Calypso or wp-admin. Default false (Calypso). |
||
266 | */ |
||
267 | public function add_users_menu( $wp_admin = false ) { |
||
272 | |||
273 | /** |
||
274 | * Also remove the Gutenberg plugin menu. |
||
275 | * |
||
276 | * @param bool $wp_admin Optional. Whether links should point to Calypso or wp-admin. Default false (Calypso). |
||
277 | */ |
||
278 | public function add_gutenberg_menus( $wp_admin = false ) { |
||
283 | |||
284 | /** |
||
285 | * Saves the sidebar state ( expanded / collapsed ) via an ajax request. |
||
286 | */ |
||
287 | public function ajax_sidebar_state() { |
||
301 | } |
||
302 | |||
303 |