/**
* Registers the provided services on the given container.
*
* @since 3.0.0
*
* @param Container $container Container object.
*
* @return void
*/
public function register(Container $container)
{
$container['multilingualpress.base_path_adapter'] = function () {
return new CachingBasePathAdapter();
};
$container->share('multilingualpress.internal_locations', function () {
return new InternalLocations();
});
// TODO: Make a regular not shared service as soon as everything else has been adapted. Or remove from here?
$container->share('multilingualpress.module_manager', function () {
// TODO: Maybe store the option name somewhere? But then again, who else really needs to know it?
// TODO: Migration: The old option name was "state_modules", and it stored "on" and "off" values, no bools.
return new Module\NetworkOptionModuleManager('multilingualpress_modules');
});
$container['multilingualpress.plugin_settings_page'] = function (Container $container) {
return SettingsPage::with_parent(SettingsPage::ADMIN_NETWORK, SettingsPage::PARENT_NETWORK_SETTINGS, __('MultilingualPress', 'multilingual-press'), __('MultilingualPress', 'multilingual-press'), 'manage_network_options', 'multilingualpress', $container['multilingualpress.plugin_settings_page_view']);
};
$container['multilingualpress.plugin_settings_page_view'] = function (Container $container) {
return new PluginSettingsPage\View($container['multilingualpress.module_manager'], $container['multilingualpress.update_plugin_settings_nonce'], $container['multilingualpress.asset_manager']);
};
$container['multilingualpress.plugin_settings_updater'] = function (Container $container) {
return new PluginSettingsPage\PluginSettingsUpdater($container['multilingualpress.module_manager'], $container['multilingualpress.update_plugin_settings_nonce'], $container['multilingualpress.plugin_settings_page']);
};
$container['multilingualpress.post_request_data_manipulator'] = function () {
return new FullRequestDataManipulator(RequestDataManipulator::METHOD_POST);
};
$container['multilingualpress.relationship_control_search'] = function () {
return new RequestAwareSearch();
};
$container['multilingualpress.relationship_control_search_controller'] = function (Container $container) {
return new SearchController($container['multilingualpress.relationship_control_search_results_view']);
};
$container['multilingualpress.relationship_control_search_results_view'] = function (Container $container) {
return new StatusAwareSearchResultsView($container['multilingualpress.relationship_control_search']);
};
$container['multilingualpress.relationship_control_view'] = function (Container $container) {
return new RelationshipControlView($container['multilingualpress.relationship_control_search_results_view'], $container['multilingualpress.asset_manager']);
};
$container['multilingualpress.relationship_controller'] = function (Container $container) {
return new RelationshipController($container['multilingualpress.content_relations']);
};
$container->share('multilingualpress.request', function () {
return new ConditionalAwareRequest();
});
$container['multilingualpress.update_plugin_settings_nonce'] = function () {
return new WPNonce('update_plugin_settings');
};
}