mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-12-28 16:30:58 +01:00
81976ff2ff
Summary: The `phutil_analyzer.php` script currently analyzes entire modules and is fairly complex. We don't need or want this in a post-__init__.php world. This is basically a simplified version of `phutil_analyzer.php`, which takes one file and emits symbols. Test Plan: ```$ ./scripts/phutil_symbols.php resources/test/diverse_symbols.php { "have" : { "function" : { "f" : 348 }, "class" : { "L" : 308, "A" : 497, "C" : 509, "D" : 531, "CLocal" : 627 }, "interface" : { "ILocal" : 593 } }, "need" : { "function" : { "g" : 402, "h" : 462 }, "class" : { "B" : 519, "INonlocal" : 642, "U" : 552, "X" : 421, "V" : 557, "W" : 565, "P" : 572 }, "interface" : { "IForeign" : 608 } } }``` Reviewers: vrana, nh, btrahan Reviewed By: vrana CC: aran Maniphest Tasks: T1103 Differential Revision: https://secure.phabricator.com/D2561
72 lines
No EOL
1.4 KiB
Text
72 lines
No EOL
1.4 KiB
Text
<?php
|
|
|
|
/*
|
|
* Copyright 2012 Facebook, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
// This file has diverse symbol declarations and requirements, and can be used
|
|
// to test changes to phutil_symbols.php.
|
|
|
|
/**
|
|
* @phutil-external-symbol function ext_func
|
|
* @phutil-external-symbol class ExtClass
|
|
* @phutil-external-symbol interface ExtInterface
|
|
*/
|
|
ext_func();
|
|
new ExtClass();
|
|
class L implements ExtInterface { }
|
|
|
|
function f() { }
|
|
|
|
(function () {
|
|
// Anonymous function.
|
|
});
|
|
|
|
g();
|
|
$g();
|
|
$$g();
|
|
|
|
X::f();
|
|
call_user_func();
|
|
call_user_func('h');
|
|
call_user_func($var);
|
|
|
|
class A { }
|
|
class C extends B { }
|
|
class D extends C { }
|
|
|
|
new U();
|
|
V::m();
|
|
W::$n;
|
|
P::CONST;
|
|
|
|
interface ILocal extends IForeign { }
|
|
class CLocal extends INonlocal { }
|
|
|
|
strtoupper('');
|
|
|
|
|
|
// Various magic things.
|
|
|
|
die($x);
|
|
empty($x);
|
|
isset($x);
|
|
echo($x);
|
|
print($x);
|
|
exit($x);
|
|
include($x);
|
|
include_once($x);
|
|
require($x);
|
|
require_once($x); |