草庐IT

global-namespace

全部标签

php - 确定调用函数的 namespace

我想知道是否有可能在调用函数时确定当前命名空间是什么。我有这个函数声明:在另一个文件上:假设我将此作为程序代码:在这种情况下,假设Bar旨在解析为Foo\bar是有意义的,因为这是调用它的命名空间。又是一个很长的解释,是否可以确定从中调用Site\Action\add()的事件命名空间?提前致谢。 最佳答案 您要找的是:ReflectionFunctionAbstract::getNamespaceName如果你想知道你来自哪里debug_backtrace()是你的friend。以下应该可以解决您的难题:functionbackt

PHP 最佳实践 : repass variables from config file when calling functions or use global?

我有一个在多个站点上使用的程序。它使用require('config.php');设置任何站点相关变量,如mysql连接信息、路径等。假设我在一个函数中使用了这些依赖于站点的变量之一,例如$backup_path。这个变量最初是在config.php中声明的,并没有出现在主程序文件中。我需要在函数ma​​kebackup($table_name);中访问这个变量(也在一个单独的functions.php文件中)。是不是比较好说makebackup('my_table');然后在函数内部使用“global$backup_path”,还是调用函数更好makebackup('my_table

php - "global"Symfony函数应该放在哪里?

放置跨多个MVC层使用的函数的最佳做法是什么?我最近不得不编写一些在View和模型中都使用的统计函数。如果我将它们放在助手中,我就会卡在模型层中加载助手,这很烦人,看起来不正确,并且在从任务调用这些函数时完全中断(因为没有默认上下文)。如果我将它们放在顶级lib目录中,我将无法在View中进行类似Stats::normalPercentile的调用。还有其他选择吗?Symfony开发人员对这些函数应该放在哪里有什么意见吗?编辑:显然在View中进行静态调用没有问题。我推断这是基于Symfony没有将他们的助手写成类(即使在significantdiscussion之后)。在那种情况下,

php - 查找需要 register_globals 的 PHP 脚本

我继承了一个充满代码的网络服务器,需要register_globals才能打开。其中大部分是由多年来来来去去的随机人员编写的自定义代码。我已经在我知道的脚本中修复了大部分问题,但我的问题是找到我不知道的脚本。我正在考虑编写一个应用程序来扫描Web服务器上的每个目录,以识别需要register_globals的PHP脚本。这样做有什么好的策略吗?我考虑过的一种方法涉及以某种方式强制PHP报告所有错误、执行脚本和检查undefinedvariable通知。我可以为此构建一个读取STDERR流的应用程序。有什么更好的方法吗? 最佳答案 大

php - Symfony2 : Session Global variable in PHP template

Symfony文档说:Duringeachrequest,Symfony2willsetaglobaltemplatevariableappinbothTwigandPHPtemplateenginesbydefault.TheappvariableisaGlobalVariablesinstancewhichwillgiveyouaccesstosomeapplicationspecificvariablesautomatically:app.security-Thesecuritycontext.app.user-Thecurrentuserobject.app.request-T

php - 如何使用来自其他 namespace 的对象以及如何在 PHP 中导入 namespace

这两行之间的主要区别是什么?:$obj=newArrayObject();&$obj=new\ArrayObject();当我使用第一行时出现错误:"Fatalerror:Class'\Foo\Bar\ArrayObject'notfound..."我不太确定为什么我有这个错误?第二行似乎解决了问题。 最佳答案 如果您使用:$obj=newArrayObject();表示ArrayObject定义在当前命名空间中。您可以在全局命名空间(当前作用域中未定义命名空间)或ArrayObject定义在与当前作用域相同的命名空间中(示例Foo

php - 为什么 global 在函数中为 null?

我遇到了这个奇怪的问题....所有页面只有这个代码。全局$currentPage;为空,我不知道为什么...问题echo$currentPage;prints1functiondrawNumbers($from,$to){global$currentPage;echo$currentPage;printsnothing 最佳答案 我敢打赌,您是通过将此文件包含在另一个函数中来执行此代码的。因此您也需要将第一个变量出现标记为global。顺便说一句,全局变量很奇怪,将数据传递给函数的更简单正确的方法是使用函数参数。

php - 为什么 Eclipse PHP 无法识别 namespace 声明?

当我键入“namespaceORM;”时在Eclipse中,它用红色下划线表示ORM,并表示它需要一个括号。有没有办法让Eclipse识别namespace? 最佳答案 这可能是您的项目设置为5.1/5.2版本。您可以更改默认值:窗口>首选项>PHP>PHP解释器>PHP版本>5.3或者,您可以进入ProjectProperties(右键单击您的项目,然后单击Properties)然后PHPInterpreter,勾选Enableproject-specificsettings并在那里更改PHP版本。

php - 无法使用 PHP 的 SimpleXML 将 namespace 添加到属性

我正在创建一个Atom提要,当我在下面尝试添加xmlns:i作为属性时-$node->addAttribute("xmlns:i","http://www.w3.org/2001/XMLSchema-instance");我得到这个作为输出-i="http://www.w3.org/2001/XMLSchema-instance""xmlns:"部分被截断。我需要转义:字符吗?或者他们是否有任何其他方式来添加此命名空间? 最佳答案 如果你想从命名空间/前缀i中添加一个属性到$node,不要费心去事先声明命名空间。只需使用addAtt

php - DDD : Domain model namespaces convention

我正在用PHP编写一个带有域模型的应用程序,想知道我应该采用哪种命名约定。假设我有一个Customer,在其聚合根中有一个Address。我还有一个Product,在它的聚合根中有一个Option。我有两个选择:将聚合根保留在域模型的根中:CustomerCustomer\AddressProductProduct\OptionPro:我可以在同一个命名空间中同时使用Customer和Product缺点:Customer必须引用自己的Address作为Customer\Address/li>将所有聚合类分组在同一个命名空间中,包括聚合根:Customer\CustomerCustome