summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2004-03-30 18:50:39 +0000
committerMarcus Boerger <helly@php.net>2004-03-30 18:50:39 +0000
commita5c94d01840fc68c1e07de286e3af6d4e5556f5c (patch)
tree262046b8bead4855a0eca4bf4a3038665d4cc286 /scripts
parentb4bc994680b87be8f6cb79f93a672f563f227e9e (diff)
downloadphp-git-a5c94d01840fc68c1e07de286e3af6d4e5556f5c.tar.gz
The test script to search for underscores
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/dev/search_underscores.php86
1 files changed, 86 insertions, 0 deletions
diff --git a/scripts/dev/search_underscores.php b/scripts/dev/search_underscores.php
new file mode 100755
index 0000000000..867642f174
--- /dev/null
+++ b/scripts/dev/search_underscores.php
@@ -0,0 +1,86 @@
+#! /usr/local/bin/php -n
+<?php
+
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2004 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.0 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_0.txt. |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Marcus Boerger <helly@php.net> |
+ +----------------------------------------------------------------------+
+ */
+
+/* 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 = 0;
+$err = 0;
+
+$classes = array_merge(get_declared_classes(), get_declared_interfaces());
+
+$extensions = array();
+
+foreach(get_loaded_extensions() as $ext) {
+ $cnt++;
+ if (strpos($ext, "_") !== false) {
+ $err++;
+ $extensions[$ext] = array();
+ }
+}
+
+$cnt += count($classes);
+
+foreach($classes as $c) {
+ if (strpos($c, "_") !== false) {
+ $err++;
+ $ref = new ReflectionClass($c);
+ if (!($ext = $ref->getExtensionName())) {;
+ $ext = $ref->isInternal() ? "<internal>" : "<user>";
+ }
+ if (!array_key_exists($ext, $extensions)) {
+ $extensions[$ext] = array();
+ }
+ $extensions[$ext][$c] = array();
+ foreach(get_class_methods($c) as $method) {
+ $cnt++;
+ if (strpos(substr($method, substr($method, 0, 2) != "__" ? 0 : 2), "_") !== false) {
+ $err++;
+ $extensions[$ext][$c][] = $method;
+ }
+ }
+ }
+ else
+ {
+ $cnt += count(get_class_methods($c));
+ }
+}
+
+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");
+printf("Names: %5d\n", $cnt);
+printf("Errors: %5d (%.1f%%)\n", $err, round($err * 100 / $cnt, 1));
+printf("\n");
+
+?> \ No newline at end of file