Coding standards
Security in ResourceSpace
Developer reference
- Project structure
- Database schema
- Fixed list fields
- Debugging ResourceSpace
- Writing your own plugins
- Context help links
- Custom fields ("user" defined)
- Query caching
- All user permissions
- Client side API calls
- Modals
- Sending user notifications
- Progressive Web App
- Managing (PHP) code dependencies
- Managing (JS) code dependencies
- OpenAPI documentation
- Automated Testing
Database
- Table: activity_log
- Table: annotation
- Table: annotation_node
- Table: api_log
- Table: collection
- Table: collection_keyword
- Table: collection_log
- Table: collection_resource
- Table: collection_savedsearch
- Table: comment
- Table: daily_stat
- Table: dash_tile
- Table: dynamic_tree_node
- Table: external_access_keys
- Table: filter
- Table: filter_rule
- Table: filter_rule_node
- Table: ip_lockout
- Table: job_queue
- Table: keyword
- Table: keyword_related
- Table: mail_log
- Table: message
- Table: node
- Table: node_keyword
- Table: plugins
- Table: preview_size
- Table: report
- Table: report_periodic_emails
- Table: report_periodic_emails_unsubscribe
- Table: request
- Table: research_request
- Table: resource
- Table: resource_alt_files
- Table: resource_custom_access
- Table: resource_dimensions
- Table: resource_keyword
- Table: resource_log
- Table: resource_node
- Table: resource_related
- Table: resource_type
- Table: resource_type_field
- Table: resource_type_field_resource_type
- Table: search_log
- Table: site_text
- Table: slideshow
- Table: sysvars
- Table: tab
- Table: user
- Table: user_collection
- Table: user_dash_tile
- Table: user_message
- Table: user_preferences
- Table: user_rating
- Table: user_report
- Table: user_userlist
- Table: usergroup
- Table: usergroup_collection
- Table: usergroup_dash_tile
User api session functions
Geolocation functions
Storage test functions
storage_test_cleanup()
Description
Delete only fixed manifest entries, children first. Never recursively delete enumerated content.Unknown files or symlinks block cleanup and preserve recovery state for an administrator.
Parameters
| Column | Type | Default | Description |
|---|---|---|---|
| &$state | array | ||
| $deadline: | float | ||
| array_reverse$manifest['dirs'] | |||
| ['']; | 0; while $state['cleanup_cursor'] < count$paths && $count++ < 16 && hrtimetrue / 1e9 < $deadline | ||
| $state | array | Mutable state, including a resumable cleanup cursor. | |
| $deadline | float | Monotonic request deadline, in seconds. |
Return
| bool | True once the private directory has been removed. |
Location
include/storage_test_functions.php lines 296 to 319
Definition
function storage_test_cleanup(array &$state, float $deadline): bool
{
$manifest = storage_test_manifest();
$paths = array_merge(array_keys($manifest['files']), array_reverse($manifest['dirs']), ['']);
$count = 0;
while ($state['cleanup_cursor'] < count($paths) && $count++ < 16 && hrtime(true) / 1e9 < $deadline) {
$relative = $paths[$state['cleanup_cursor']];
$path = storage_test_path($state, $relative);
if (file_exists($path)) {
$directory = is_dir($path);
$metric = $directory ? 'directory_remove' : 'file_delete';
storage_test_measure($state, $metric, static function () use ($path, $directory): int {
if ($directory ? !rmdir($path) : !unlink($path)) {
throw new RuntimeException('storage_test_cleanup_error');
}
return 1;
});
$state['last_operation'] = ['kind' => $directory ? 'directory_removed' : 'file_deleted',
'path' => $relative === '' ? '.rs-storage-test-' . $state['id'] : $relative];
}
++$state['cleanup_cursor'];
}
return $state['cleanup_cursor'] === count($paths);
}
This article was last updated 13th November 2026 13:05 Europe/London time based on the source file dated 13th November 2026 11:40 Europe/London time.