function _registry_parse_file

7.x registry.inc _registry_parse_file($filename, $contents, $module = '', $weight = 0)

Parse a file and save its function and class listings.

Parameters

$filename: Name of the file we are going to parse.

$contents: Contents of the file we are going to parse as a string.

$module: (optional) Name of the module this file belongs to.

$weight: (optional) Weight of the module.

Related topics

2 calls to _registry_parse_file()
RegistryParseFileTestCase::testRegistryParseFile in drupal-7.x/modules/simpletest/tests/registry.test
testRegistryParseFile
_registry_parse_files in drupal-7.x/includes/registry.inc
Parse all files that have changed since the registry was last built, and save their function and class listings.

File

drupal-7.x/includes/registry.inc, line 163
This file contains the code registry parser engine.

Code

function _registry_parse_file($filename, $contents, $module = '', $weight = 0) {
  if (preg_match_all('/^\s*(?:abstract|final)?\s*(class|interface)\s+([a-zA-Z0-9_]+)/m', $contents, $matches)) {
    foreach ($matches[2] as $key => $name) {
      db_merge('registry')
        ->key(array(
          'name' => $name,
          'type' => $matches[1][$key],
        ))
        ->fields(array(
          'filename' => $filename,
          'module' => $module,
          'weight' => $weight,
        ))
        ->execute();
    }
    // Delete any resources for this file where the name is not in the list
    // we just merged in.
    db_delete('registry')
      ->condition('filename', $filename)
      ->condition('name', $matches[2], 'NOT IN')
      ->execute();
  }
}