类存在于外部文件中
如何检查课程的外部文件?
我正在尝试为我的模块设置安装功能,因此我尝试让它加载目录列表,然后检查模块文件是否具有名为 install 的方法。因此,只有具有此方法的模块才会显示在列表中。
到目前为止,这是我的代码:
$output .= '<div id="module-dialog" title="Add Widget"><form id="widget-list" name="widget-list">
<select name="widgets" size="12" id="widgets-list">';
$dirHandler = opendir('modules') or die ("Could not open module folder");
while ($dir = readdir($dirHandler)) {
if($dir!="." && $dir!=".."){
// Code to filter out modules with install class -- goes here
$output .='<option>'.$dir.'</option>';
}
}
$output .='</select></form></div>';
模块文件名与目录名相同。示例:文件夹:Admin,文件:Admin.php
如果这不能完成,那么我想我将仅为安装功能创建一个单独的文件。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我假设您的意思是“如何找出 PHP 文件是否定义了某个类?”
如果您可以包含要分析的每个 PHP 文件,
那就很简单:只需比较
get_declared_classes()
包含前后:如果无法包含 PHP 文件
(例如因为它们具有相同的类名)
这更棘手。如果您想正确执行,标记器函数 可以在 PHP 解析器级别分析文件。运行 token_get_all() 在您的文件上查找要查找的文件。
如果您的类遵循简单的约定,则只需使用正则表达式检查“类类名”可能就足够了。
I assume you mean "How can I find out whether a PHP file defines a certain class?"
If you can include each PHP files you want to analyze
it's easy: Just compare the results of
get_declared_classes()
before and after the inclusion:If you can't include the PHP files
(e.g. because they have the same class name)
This is more tricky. If you want to do it right, the tokenizer functions can analyze a file on PHP parser level. Run a token_get_all() on your file to find out which one to look for.
If your classes follow a simple convention, simply checking for "class classname" using a regular expression might be enough.