1<?php
2/**
3 * php-mecab/examples
4 * show module dependencies, ini entries, constants, functions
5 * and methods provided by mecab extension (use ReflectionExtension)
6 * charset=utf-8
7 */
8
9require_once dirname(__FILE__) . '/common.inc.php';
10
11$linebreak = PHP_EOL . PHP_EOL;
12
13$reflector = new ReflectionExtension('mecab');
14$mapper = create_function('$m', 'return $m->getName();');
15
16border();
17
18echo 'Module dependencies:', $linebreak;
19print_r($reflector->getDependencies());
20
21border();
22
23echo 'INI entries:', $linebreak;
24print_r($reflector->getINIEntries());
25
26border();
27
28echo 'Constants:', $linebreak;
29print_r($reflector->getConstants());
30
31border();
32
33echo 'Functions:', $linebreak;
34print_r(array_keys($reflector->getFunctions()));
35
36border();
37
38echo 'Classes:', $linebreak;
39$classes = array();
40foreach ($reflector->getClasses() as $className => $class) {
41    $classes[$className] = array(
42        'interfaces'    => null,
43        'constants'     => $class->getConstants(),
44        'properties'    => $class->getProperties(),
45        'methods'       => array_map($mapper, $class->getMethods()),
46    );
47    if (method_exists($class, 'getInterfaceNames')) {
48        $classes[$className]['interfaces'] = $class->getInterfaceNames();
49    } else {
50        $classes[$className]['interfaces'] = array_keys($class->getInterfaces());
51    }
52}
53print_r($classes);
54
55border();
56