There are numerous methods to start up the integration hook system.
Typically, when creating a bridge, I have SMF "wrapped" within the context of a CMS, so the startup is done in the CMS, as a part of the component/module that displays the forum.
I prefer to use the serialized constant method:
//define the integration functions
define('SMF_INTEGRATION_SETTINGS', serialize(array(
'integrate_change_email' => 'change_email_function',
'integrate_change_member_data' => 'change_member_data_function',
'integrate_reset_pass' => 'reset_pass_function',
'integrate_exit' => 'exit_function',
'integrate_logout' => 'logout_function',
'integrate_outgoing_email' => 'outgoing_email_function',
'integrate_login' => 'login_function',
'integrate_validate_login' => 'validate_login_function',
'integrate_redirect' => 'redirect_function',
'integrate_delete_member' => 'delete_member_function',
'integrate_register' => 'register_function',
'integrate_pre_load' => 'pre_load_function',
'integrate_whos_online' => 'whos_online_function',
)));
You will notice the format:
'hook name' => 'function name'
The names of the hooks are defined in SMF code, and the function name can be whatever you want. In fact, it could even be a native function of the system in which you are integrating. This is very open-ended.
Alternatively, the 'hook name' => 'function name' can be entered into SMF's settings table with an installation query, as 'variable' => 'value', and the result will be the same. In this case, you wouldn't need to define the SMF_INTEGRATION_SETTINGS constant; the values would be pulled from the settings table along with all of SMF's other settings.