草庐IT

symfony-dependency-injection

全部标签

php - PDO、准备好的语句和 SQL 注入(inject)

在阅读了几篇关于PDO和MySQLi准备语句的文章之后,也已经阅读了stackoverflow.com上关于准备语句和SQL注入(inject)的数十个问题,人们说通过正确使用准备语句,不再需要从中转义条目用户,但我认为我仍然担心存在安全问题。第一个问题:如果我在准备好的语句中使用它们之前仍然使用reg-exp和转义来清理条目,这是否就像我过度使用它一样?第二个问题:如果准备好的语句正在做关于SQL注入(inject)的工作-来自人们的评论和回答-为什么仍然有受损的数据库和越来越多的关于信用卡号码和密码的暴露数据,甚至来自“大”和知名网站?这是否意味着准备好的陈述本身并没有那么免疫,或

php - 在 Symfony2 中使用 Doctrine 和静态 YAML 数据库

我熟悉PHP,但只是学习Symfony2和Doctrine。我想知道静态数据的最佳做法是什么,因为只有在将新版本的Web应用程序部署到生产环境时才会更新数据。我更愿意在YAML中指定静态数据(而不是模式),因为这样修改该数据对每个人来说都很容易,无论他们是否了解任何PHP/Doctrine。我希望非开发人员能够通过修改.yml文件来添加成就。我想维护的静态YAML数据库的示例是:Achievements:Conservative:Difficulty:2Description:>DescriptionofConservativeAchievement.Dedicated:Difficu

php - Symfony2 - 强制用户完成个人资料

我正在努力为这个问题找到一个可重用的而不是硬编码的解决方案。在我的注册页面上,我要求尽可能少的信息来让用户注册。他们完成该步骤后,将创建一个用户。在他们可以使用应用程序的其他部分之前,我希望他们完成他们的个人资料。(我知道将它设为可选可能更好,但对于此用例,它是强制性的)。当他们注册时,我已经将标记profileComplete设置为false,但我觉得在每个Controller中执行此标记检查是强制完成配置文件的糟糕方法。在Symfony中是否有更面向对象的方式使用EventSubscriber或自定义角色(USER_PENDING)来解决这个问题?我将如何为该角色设置额外的防火墙?

php - Symfony2 PRE_SET_DATA $event->getData() 返回错误的对象

当我尝试从事件PRE_SET_DATA中获取数据时,我得到了具有良好值(value)的对象,但我无法使用它。这是我的测试代码:$builder->addEventListener(FormEvents::PRE_SET_DATA,function(FormEvent$event)use($factory){$data=$event->getData();print_r($data);});这会返回一个长文本:"YOU\CommercantBundle\Entity\LivraisonChoixObject([id:YOU\CommercantBundle\Entity\Livraiso

php - Symfony2 表单 - HTM/HTML 的文件类型验证 (mimeTypes)

我有一个用于上传文件的表单。我想验证文件是否为HTM/HTML格式。symfony中是否存在用于HTM文件的mimeType?谢谢。 最佳答案 您可以在FormType中为上传的MIME类型添加验证约束:'file'=>newFile(array('maxSize'=>'20M','mimeTypes'=>array("text/html")));您可以在这里阅读更多相关信息:File:mimeTypes 关于php-Symfony2表单-HTM/HTML的文件类型验证(mimeType

Php,依赖注入(inject) - 杀死静态方法,但不需要 instatize

这是一个基本的类构造,在使用DI之前(我知道,它的结构有点不正确,请尽量关注问题)classMobile{publicfunctiongetWeight(){return4;}}classUser{publicstaticfunctiongetWeight(){$mobile=newMobile();return$mobile->getWeight();}}更新后,使用DI:classUser{public$mobile;publicfunctiongetWeight(){return$this->mobile->getWeight();}}如果我们检查一下,使用getWeight()

php - Symfony2 保护所有子域

我正在使用动态子域在Symfony中创建应用程序。我想保护除www之外的每个子域(www不太重要)。例如:foo.mydomain.com重定向到foo.mydomain.com/login但不应重定向mydomain.com。在VHost我有这一行:ServerAlias:*.mydomain.com我使用FOSUserBundle通过自定义UserManager来管理用户。防火墙看起来像这样:firewalls:fos:pattern:^/host:^\.mydomain.comform_login:provider:fos_userbundlecsrf_provider:form

php - 如何在完整的 OO 应用程序中处理依赖注入(inject)

我在类设计上遇到了难题。我尽力遵守SOLID原则,但我不知道如何处理依赖注入(inject)。这是我的困境:我读到在类中实例化对象以避免引入依赖性是一种不好的做法。那么在一个完整的对象应用程序中,我们的依赖应该在哪里创建呢?在一个只负责依赖实例化的特殊对象中?如果是,这个对象的名称是什么以及如何定义它?就是我们所说的“控制者”吗?这个“Controller”,对它进行单元测试的正确方法是什么?我们应该对其进行单元测试吗?在完整的POO应用程序中,如何避免在类之间传递我们的对象(通常是相同的)?例如,一个DB对象,Log,...这样,我们冒着拥有带有许多参数的构造函数的风险,不是吗?为了

php - 使用 Symfony DomCrawler 在选择输入中选择不可能的值

如果我在表单的select输入中发送了错误的值,我想测试我的应用程序的行为。这是我的HTML表单:(...)text在我的测试中,使用爬虫获取表单并尝试“选择”不正确的值:$form['select_input']=9999999;$client->submit($form);/*EDIT*//*Iamexpectingtheusertonotberedirectedtotheuserpage,andtheservertorespondwiththesameform,containinganerrormessage*/$this->assertFalse($client->getRes

php - Symfony2 和 Twitter Bootstrap 字形图标

为了将TwitterBootstap包含到我的项目中,我创建了一个Bundle。我知道,有现成的bundle,但我不想自己控制它。这意味着我不想安装Less编译器之类的东西。如果我按如下方式将.js和.css文件包含到我的模板中,则可以很好地应用它们:{%blockjavascripts%}{%javascripts'@MyAssetBundle/Resources/public/js/jquery.min.js''@MyAssetBundle/Resources/public/js/bootstrap.js'%}{%endjavascripts%}{%endblock%}{%bloc