ElkArte Community

Project Support => General ElkArte discussions => Topic started by: Spuds on December 28, 2015, 03:08:37 pm

Title: Hook Counts
Post by: Spuds on December 28, 2015, 03:08:37 pm
Just a question for the smart kids since I don't know.

When loading up the board index of my test site, I noted the hook count was 157 hooks called ... I was like holy crap, seems like a lot.  Looking at the list (below) many are repeat calls for the same page load.  I don't know if that's needed or if there is a way to only call the hook once per page load, or if its simply a don't care (and maybe in debug we do some array_unique thingy to only show them once)

Code: [Select]
integrate_load_average, integrate_pre_include, integrate_pre_load, integrate_verify_user, integrate_avatar, integrate_user_info, integrate_simple_actions, integrate_init_theme, integrate_theme_include, integrate_load_theme, integrate_pre_log_stats, integrate_action_frontpage, integrate_action_boardindex_before, pre_cache_quick_get, pre_cache_quick_get, post_cache_quick_get, post_cache_quick_get, integrate_board_autolink_parser, integrate_additional_bbc, integrate_autolink_load, integrate_board_html_parser, integrate_html_parser_load, integrate_board_bbc_parser, integrate_item_codes, bbc_codes_parsing, integrate_item_codes, integrate_board_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_avatar, integrate_board_autolink_parser, integrate_board_html_parser, integrate_board_bbc_parser, integrate_board_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_avatar, integrate_board_autolink_parser, integrate_board_html_parser, integrate_board_bbc_parser, integrate_board_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_avatar, integrate_board_autolink_parser, integrate_board_html_parser, integrate_board_bbc_parser, integrate_board_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_avatar, integrate_board_autolink_parser, integrate_board_html_parser, integrate_board_bbc_parser, integrate_board_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_avatar, integrate_board_autolink_parser, integrate_board_html_parser, integrate_board_bbc_parser, integrate_board_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_avatar, integrate_board_autolink_parser, integrate_board_html_parser, integrate_board_bbc_parser, integrate_board_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_avatar, integrate_board_autolink_parser, integrate_board_html_parser, integrate_board_bbc_parser, integrate_board_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_avatar, integrate_board_autolink_parser, integrate_board_html_parser, integrate_board_bbc_parser, integrate_board_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_avatar, integrate_board_autolink_parser, integrate_board_html_parser, integrate_board_bbc_parser, integrate_board_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_avatar, pre_cache_quick_get, integrate_message_autolink_parser, integrate_message_html_parser, integrate_message_bbc_parser, integrate_message_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_message_autolink_parser, integrate_message_html_parser, integrate_message_bbc_parser, integrate_message_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_message_autolink_parser, integrate_message_html_parser, integrate_message_bbc_parser, integrate_message_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_message_autolink_parser, integrate_message_html_parser, integrate_message_bbc_parser, integrate_message_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_message_autolink_parser, integrate_message_html_parser, integrate_message_bbc_parser, integrate_message_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, post_cache_quick_get, integrate_mark_read_button, integrate_action_boardindex_after, integrate_notifications_methods, integrate_buffer, integrate_security_files, integrate_news_autolink_parser, integrate_news_html_parser, integrate_news_bbc_parser, integrate_news_smiley_parser, integrate_pre_bbc_parser, integrate_possible_autolink, integrate_post_bbc_parser, integrate_menu_buttons, pre_css_output, pre_javascript_output, integrate_basic_url_replacement, pre_javascript_output
Title: Re: Hook Counts
Post by: Joshua Dickerson on December 28, 2015, 03:28:25 pm
Most of those are from the BBC parser. Most of that is from this loop in ParserWrapper:
Code: [Select]
// First see if any hooks set a parser.

Since the first thing it does is isset($modSettings[$hook]) after adding that to the debug list, it doesn't really hurt to call it.

Maybe we can change it to view it chronologically or alphabetically and then group by name or no grouping. That's some Javascript necessary for that though.
Title: Re: Hook Counts
Post by: emanuele on December 28, 2015, 04:20:17 pm
I was wondering, why not just:
Code: [Select]
		$parsers = array(
'autolink' => array($this, 'getAutolinkParser'),
'html' => array($this, 'getHtmlParser'),
'bbc' => array($this, 'getBBCParser'),
'smiley' => array($this, 'getSmileyParser'),
);

call_integration_hook('integrate_' . $area . '_parser', array(&$parsers, $this));

// First see if any hooks set a parser.
foreach ($parsers as $parser_type => $parser)
{
$parsers[$parser_type] = call_user_func($parser);
}

return $parsers;