Php 如何处理注释?
我使用自定义MVC框架。我想使用上述操作的注释在视图中显示标题,如:Php 如何处理注释?,php,annotations,Php,Annotations,我使用自定义MVC框架。我想使用上述操作的注释在视图中显示标题,如: class controller { /** * @title = some title */ public function action(){ } } 为此,我使用ReflectionMethod::getDocComment,然后使用简单的正则表达式解析注释,将title作为全局变量,并在我的视图中使用它。当然,这是一个解决方案,但确实很糟糕,因为将来我可能需要使用注释,而不仅仅
class controller {
/**
* @title = some title
*/
public function action(){
}
}
为此,我使用ReflectionMethod::getDocComment
,然后使用简单的正则表达式解析注释,将title
作为全局变量,并在我的视图中使用它。当然,这是一个解决方案,但确实很糟糕,因为将来我可能需要使用注释,而不仅仅是定义标题(例如,定义模型中的规则,就像Symphony那样)
我的问题是,我不知道在哪里保存元数据。我认为在docblock注释中存储前端/公共信息不是一个好主意,因为您发现它非常笨拙,对于您之后的其他开发人员来说也不是很直观。应保留有关系统内部工作的文档和元信息的注释
要存储这样的信息,您应该使用数据库、某种类型的类变量或外部配置/语言文件。更好的选择是使用某种模板库来处理诸如页面标题和视图加载之类的事情,然后您可以从控制器方法调用它们并在其中定义信息。我认为在docblock注释中存储前端/公共信息不是一个好主意,正如您所发现的那样,它非常笨拙,对于跟随您的其他开发人员来说也不是很直观。应保留有关系统内部工作的文档和元信息的注释
要存储这样的信息,您应该使用数据库、某种类型的类变量或外部配置/语言文件。更好的选择是使用某种模板库来处理诸如页面标题和视图加载之类的事情,然后您可以从控制器方法调用它们并在其中定义信息。为什么不使用现有的注释解析器呢?你会重新发明轮子吗?(当然我也可以问一下你的MVC框架;)@KingCrunch这个框架是我在业余时间做的项目,只是为了好玩和提高自己。注释解析器也是如此。为什么不使用现有的注释解析器呢?你会重新发明轮子吗?(当然我也可以问一下你的MVC框架;)@KingCrunch这个框架是我在业余时间做的项目,只是为了好玩和提高自己。注释解析器也是一样。+1表示建议使用模板库,但我希望在模型中积极使用注释,如MVC3.0中的属性。我在解析注释方面没有问题,只是不知道在哪里保存注释更好。+1用于建议模板库,但我希望在模型中积极使用注释,如MVC 3.0中的属性。我在解析注释方面没有问题,只是不知道在哪里保存注释更好。