Closed xavieryang007 closed 5 years ago
这个是因为采用Xaop的自定义注解的时候,Xaop会自动调用自动加载功能,如果你框架里面没有实现怎么自动这个类的话,那么Xaop会报错提示无法找到这个注解。
Xaop在第一个版本自带一个自动加载功能函数,但是由于现阶段都采用第三方框架,所以去掉了自动加载功能,现阶段的自动加载需要用户自己实现,Xaop会在找不到注解的时候,自动调用php的自动加载函数来完成加载。
我意思是function 是我自定义的 可能是一个无意义的tag 但是也会被解析,然后报错
另外,目前在两个框架进行了测试,一个框架正常,一个框架仅可以加载自己的类中的方法作为AOP切面使用,其他类就无法使用,采用composer标准加载的框架
只要定义了注解模式,Xaop就会当作注解解析,不会判断是否有效与否,符合注解的规范如下: 每一行 “*”之后除了空白符 与制表符之外的符号如果是 “@”符号,那么就会当作注解解析,如果满足注解格式,那么就会加载这个类,用户除非手工移除这个注解。
至于两个框架中一个框架的其他类无法作为AOP使用,这个是由于这个composer类没有进入自动加载的范畴,Xaop不会自动加载您需要的注解类,需要用户自己处理这个加载问题。
还要注意的是,框架的自动加载类必须要在Xaop使用注解之前定义,否则Xaop会报错。
自定义注解的格式是下面的这几种样式:
/**
* @api
*/
或者
/**
* @api(a="hello,world", b="tt")
*/
下面的都是无效注解:
/**
* @api a b c
*/
或者
/**
* hello world@api
*/
好的
有时可能会写一些自定义的注解,比如框架生成文档用的,但是采用xaop后就无法使用了,会直接报错