From c4dd7a1a684490673e25aaf4fabec5df138854c4 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Thu, 14 Mar 2013 05:42:27 +0000 Subject: Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2. --- scripts/dev/search_underscores.php | 97 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100755 scripts/dev/search_underscores.php (limited to 'scripts/dev/search_underscores.php') diff --git a/scripts/dev/search_underscores.php b/scripts/dev/search_underscores.php new file mode 100755 index 0000000..445228b --- /dev/null +++ b/scripts/dev/search_underscores.php @@ -0,0 +1,97 @@ +#! /usr/local/bin/php -n + | + +----------------------------------------------------------------------+ + */ + +/* This script lists extension-, class- and method names that contain any + underscores. It omits magic names (e.g. anything that starts with two + underscores but no more). + */ + +$cnt_modules = 0; +$cnt_classes = 0; +$cnt_methods = 0; +$err = 0; + +$classes = array_merge(get_declared_classes(), get_declared_interfaces()); + +$extensions = array(); + +foreach(get_loaded_extensions() as $ext) { + $cnt_modules++; + if (strpos($ext, "_") !== false) { + $err++; + $extensions[$ext] = array(); + } +} + +$cnt_classes = count($classes); + +foreach($classes as $c) { + if (strpos($c, "_") !== false) { + $err++; + $ref = new ReflectionClass($c); + if (!($ext = $ref->getExtensionName())) {; + $ext = $ref->isInternal() ? "" : ""; + } + if (!array_key_exists($ext, $extensions)) { + $extensions[$ext] = array(); + } + $extensions[$ext][$c] = array(); + foreach(get_class_methods($c) as $method) { + $cnt_methods++; + if (strpos(substr($method, substr($method, 0, 2) != "__" ? 0 : 2), "_") !== false) { + $err++; + $extensions[$ext][$c][] = $method; + } + } + } + else + { + $cnt_methods += count(get_class_methods($c)); + } +} + +$cnt = $cnt_modules + $cnt_classes + $cnt_methods; + +printf("\n"); +printf("Modules: %5d\n", $cnt_modules); +printf("Classes: %5d\n", $cnt_classes); +printf("Methods: %5d\n", $cnt_methods); +printf("\n"); +printf("Names: %5d\n", $cnt); +printf("Errors: %5d (%.1f%%)\n", $err, round($err * 100 / $cnt, 1)); +printf("\n"); + +ksort($extensions); +foreach($extensions as $ext => &$classes) { + echo "Extension: $ext\n"; + ksort($classes); + foreach($classes as $classname => &$methods) { + echo " Class: $classname\n"; + ksort($methods); + foreach($methods as $method) { + echo " Method: $method\n"; + } + } +} + +printf("\n"); + +?> \ No newline at end of file -- cgit v1.2.1