summaryrefslogtreecommitdiff
path: root/scripts/dev/search_underscores.php
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /scripts/dev/search_underscores.php
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'scripts/dev/search_underscores.php')
-rwxr-xr-xscripts/dev/search_underscores.php97
1 files changed, 97 insertions, 0 deletions
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
+<?php
+
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2006 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.01 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_01.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_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() ? "<internal>" : "<user>";
+ }
+ 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