我们有一些遗留的Laravel项目在类中使用外观。useCache;LegacyClass{publicfunctioncacheFunctionOne(){$result=Cache::someFunction('parameter');//logictomanipulateresultreturn$result;}publicfunctioncacheFunctionTwo(){$result=Cache::someFunction('parameter');//differentlogictomanipulateresultreturn$result;}}我们最近的项目使用外观表
据我所知,当正确使用用户数据时,电子邮件的标题中只有一个漏洞?我正在使用下面的函数来清理我的数据,但是我在页面上有一些文本区域字段,因此这些字段可能包含换行符..所以想知道该用户数据是否只会放在电子邮件正文中,它能不被sanitizer打扰吗——当然除了剥离html之外?函数如下:functionis_injected($str){$injections=array('(\n+)','(\r+)','(\t+)','(%0A+)','(%0D+)','(%08+)','(%09+)');$inject=join('|',$injections);$inject="/$inject/i"
我使用PHPStorm作为我的IDE,但我相信其他IDE(例如Netbeans)也会有同样的问题,我将在下面解释。当使用像Symfony2这样的框架时,我们添加了依赖注入(inject)的美妙世界。因此,可以使用如下代码片段简单地实例化对象:$myThingy=$this->get('some_cool_service');这非常方便,因为对象已经预先配置好了。一个问题是,自动完成基本上在任何PHPIDE中都会完全中断,因为IDE不知道get()方法返回的是什么类型。有没有办法保留自动完成?例如创建Controller的扩展会是答案吗?例如:classMyControllerexten
通常,当我需要将一项或多项服务注入(inject)另一项服务时,我会显式地注入(inject)每一项。但是,我有一种情况,注入(inject)服务容器本身确实会让事情变得更容易。我知道这不是推荐的做法,但我很好奇阻止这种做法的技术原因是什么。它是合法的东西,比如它太耗费资源,还是更个人的感觉,它太乱了? 最佳答案 如果你注入(inject)容器,你并没有明确依赖关系。事实上,你比以前更能掩盖他们。如果你有这样的类(class)......classDocumentCreator(IFileNamerfileNamer,IReposi
目前,我采用“将所有东西都扔到墙上,看看有什么能粘住”的方法来阻止上述问题。下面是我拼凑的函数:functionmadSafety($string){$string=mysql_real_escape_string($string);$string=stripslashes($string);$string=strip_tags($string);return$string;}但是,我相信有更好的方法可以做到这一点。我正在使用FILTER_SANITIZE_STRING,这似乎并不完全安全。我想我是在问,你们采用了哪些方法,它们的成功率如何?谢谢 最佳答案
首先,我想将此问题仅限于Web开发。因此,只要该语言用于Web开发,这就是语言不可知的。就个人而言,我是从PHP背景而来的。通常我们需要使用来自多个作用域的对象。例如,我们可能需要在正常范围内使用数据库类,但也需要从Controller类中使用。如果我们在正常范围内创建数据库对象,那么我们无法从Controller类内部访问它。我们希望避免在不同的范围内创建两个数据库对象,因此需要一种无论范围如何都可以重用数据库类的方法。为此,我们有两个选择:将数据库对象设为全局,以便可以从任何地方访问。将数据库类以例如Controller构造函数的参数的形式传递给Controller类。这称为依
我们正在考虑将依赖注入(inject)容器集成到我们的项目中。我看过的每个DIC都使用关联数组和/或魔法方法。例如,这是来自Pimple页面的示例:$container['session_storage']=function($c){returnnew$c['session_storage_class']($c['cookie_name']);};$container['session']=function($c){returnnewSession($c['session_storage']);};这是有原因的吗?我讨厌在我的代码中将字符串作为将要显示在某处的文字字符串以外的任何内容。
这个问题在这里已经有了答案:InversionofControlContainerforPHP?[closed](7个回答)关闭9年前。PHP中是否有类似Guice或类似的依赖注入(inject)框架?如果没有,PHP中是否有任何好的依赖注入(inject)框架?我必须在PHP中实现我在Java中实现的相同代码,并且在我的Java项目中使用Guice。因此,如果使用类似的框架,则PHP版本的实现会更容易。 最佳答案 (发表我的评论作为回应)看看我名为Sharbat的Guice克隆(意思是果汁)。API与Guice的完全相同。它几乎拥
关于在另一个类中使用类对象的最佳做法是什么?在class_construct语句中传递类对象还是新建类对象?示例1:classFoo{private$bar;publicfunction__construct($bar){$this->bar=$bar;}}或者例子2:classFoo{private$bar;publicfunction__construct(){$this->bar=NEWbar;}}我知道显然类文件必须已经包含在其他地方是理所当然的,并且在第一个实例中,这种类型的类对象需要已经存在,但我想知道有什么优点每个方法都是,因为我有很多类,我需要编写使用数据库对象的代码,
DI背后的要点是让一个类从创建和准备它所依赖的对象并将它们插入的工作中解脱出来。这听起来很合理,但有时一个类并不需要所有被插入它的对象来执行它的功能。这背后的原因是“提前返回”发生在无效的用户输入或早期由所需对象之一抛出的异常或在代码块运行之前实例化对象所需的特定值不可用。更多实际例子:注入(inject)一个永远不会被使用的数据库连接对象,因为用户数据没有通过验证(假设没有触发器被用来验证这个数据)注入(inject)类似excel的对象(例如PHPExcel)来收集输入(加载和实例化很繁重,因为整个库被拉入并且从未使用过,因为验证会在写入发生之前抛出异常)在类中确定的变量值,而不是