草庐IT

反射面

全部标签

php - laravel 5.7 类不存在反射异常报错

我的api.phpRoute::get('getProducts','ProductController@getProducts');ProductController.phpproductService=$productService;}publicfunctiongetProducts(){return$this->productService->get_products();}publicfunctionaddProduct(Request$request){$all_data=array('product_name'=>$request['product_name'],'pro

php - PHP 中的命名空间反射

我正在尝试检查命名空间中存在哪些类,并且有人暗示我要使用反射。但似乎PHP只是缺少执行命名空间反射的类/函数。有什么建议吗? 最佳答案 乍一看文档表明您是正确的。因此,您可能必须枚举所有(get_declared_classes),然后针对每个类调用ReflectionClass::inNamespace() 关于php-PHP中的命名空间反射,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

PHP 方法链 - 反射?

是否有可能反射(reflection)一连串的方法调用以确定您在调用链中的哪个位置?至少,是否可以辨别一个方法是否是链中的最后一个调用?$instance->method1()->method2()->method3()->method4()是否可以使用返回对象实例的属性来做同样的事情?$instances->property1->property2->property3->property4 最佳答案 如果您调用的所有方法都返回相同对象来创建流畅的界面(而不是将不同的对象链接在一起),那么在对象本身。例如:classEg{prot

php - 什么是反射类?

我熟悉反射的概念(给忽略问题的人强调)并且我知道什么是ReflectionClass,ReflectionMethod,ReflectionObject等做。但是在查看PHP文档时,我偶然发现了Reflection类,除以下内容外没有更多文档:Thereflectionclass.这个类没有构造函数,没有已知的子类,并且是可实例化的。它的用途是什么? 最佳答案 这个类似乎专门为其export()方法而存在,没有实现Reflector接口(interface)。来自PHP5Recipes(通过aslightlyannoyingGoog

php - $_COOKIE[] 似乎没有反射(reflect)设置后的变化

我不记得过去使用Cookies时遇到过很多问题,但我一直在尝试并遇到了一些意想不到的结果。(我在本地主机上运行,​​因此我的域设置)";echo"Cookieequals:".$_COOKIE["crav_auto_login_cookie"]."";echo"shouldequal:".$sessionCookie;?>这将产生以下输出:曲奇饼集Cookie等于:457718770应该等于:318511886我显然遗漏了一些东西,但不确定为什么值不同。是不是因为cookie是在页面调用时加载的,$_COOKIE["crav_auto_login_cookie"]返回的是打开页面时调用

php - 在生产代码中使用反射不好吗?

我有一个Validator创建Validations实例的类类,其中包含所有验证方法。执行验证时,__call在Validator用于调度调用Validator->validate_method至Validations->method.例如,Validations中有一个方法称为length_of.当运行以下代码时:$v=newValidator();$v->validate_length_of(...);length_of在Validations中验证类被执行。为了保证__call不会尝试发送到无效或非公开的Validation方法,我使用ReflectionMethod检查指定的方

PHP 反射 : get constant's doc comment

检索方法和属性的文档注释很容易。但是常量呢?没有允许我对它们调用getDocComment()的ReflectionConstant类。可以使用ReflectionClass::getConstants获取常量列表及其值作为字符串,但仅此而已。有解决方法吗? 最佳答案 据我所知,没有内置函数或类允许您检索类常量文档注释。但是,您可以使用token_get_all($classContent)并编写自己的解析器。以下是我在需要此功能后得出的结论:/***SimpleDocCommentsupportforclassconstants.

PHP 反射 : How to know if a ReflectionMethod is inherited?

在ReflectionMethoddocumentation,我找不到任何信息可以知道某个方法是从其父类继承的还是在反射类中定义的。编辑:我使用ReflectionClass::getMethods().我想知道每个方法是在被反射(reflect)的类中定义的,还是在父类中定义的。最后,我只想保留当前类中定义的方法。classFoo{functiona(){}functionb(){}}classBarextendsFoo{functiona(){}functionc(){}}我想保留a和c。 最佳答案 您应该可以调用Reflect

php - 使用反射查找某个方法所属的类

我在Magento工作,但这更像是一个一般的PHP问题。情况是在Magento中,有些类扩展类,类扩展类。我希望能够快速找到哪个类实际包含方法的定义和/或该方法是否实际上是magic.例如,如果我深入10个类来扩展其他类,并且这10个类中有4个有一个名为getHtml的方法,我希望能够找出其中的哪一个当我调用$this->getHtml()时,方法实际上被调用了。我还想知道getHtml是否真的是一个神奇的方法。我如何使用PHP反射类或任何其他编程方式来做到这一点? 最佳答案 (下面未经测试的代码——如果您发现任何错误,我将不胜感激

php - PHP 反射获取动态实例变量失败

我无法通过PHP的反射获取动态实例变量示例代码:getProperties();var_export($props);die;}}$foo=newFoo();$foo->a="a";$foo->b="b";$foo->bar();//Failedtoprintoutvariableaandb有什么想法吗? 最佳答案 ReflectionClass::getProperties()仅获取类显式定义的属性。要反射(reflect)您在对象上设置的所有属性,请使用ReflectionObject它继承自ReflectionClass并适用