我正在开发一个应用程序(Symfony1.4/Doctrine),该应用程序的一些页面加载起来非常繁重。其中一个页面包含一个非常复杂的表单,其中包含很多关系(嵌入式表单)。该页面执行如下操作:获取所有对象、创建表单(使用对象)、呈现表单。这导致每页加载时间约为1.5秒。MySQL似乎不是瓶颈,查询大约需要0.01秒。然而,水化结果需要更多时间:大约0.3秒。创建和嵌入所有子表单也需要很多时间(0.5秒)。其余时间花在常规的Symfony/Doctrine方法上。所有这些时间都是通过Symfony计时器和/或xdebug找到的。我希望我可以通过使用APC进行操作码缓存来加快我的生产服务器
我正在使用Twig循环生成对于多个图像。我最终使用此代码是为了在框架配置中利用带有base_url的CDN。下面是Twig代码:{%forkey,mobjinproductmedia.getImages%}{%endfor%}{%forkey,mobjinproductmedia.getImages%}{%endfor%}我希望,至少在输出中会有一些一致性......但似乎SF2有时会使用一个base_url有时不使用一个。为什么会这样?下面是输出。正如您在第一个循环中所见..有些继承了base_url..有些则没有..我已经清除了所有缓存..完成了所有一般调试步骤..这没有意义不一致
我在使用Symfony在每个页面加载时创建一个新session而不是跨请求传输数据时遇到问题。config.yml中session部分的auto_start设置为false,常规phpsession工作正常。只有在symfony中运行时我才遇到问题。例如,我创建了测试Action:publicfunctionsessionTestAction(){$s_Response='Foo';//Initializeresponseandheaders$a_Headers=array();$i_StatusCode=200;$oSession=$this->get('session');var_
我在Symfony2中加载Propel固定装置时遇到问题。我有以下架构:模型构建正确。当我尝试加载以下装置时出现问题:Acme\MyBundle\Model\Application:first_app:name:"MyFirstApp"descendant_class:"IphoneApplication"Acme\MyBundle\Model\IphoneApplication:first_app_iphone:id:first_appstore_id:2342Acme\MyBundle\Model\IphoneApplicationIdentifier:first_app_iden
我一直在为一个新项目使用Symfony2,但遇到了一个相当愚蠢的问题。我的两个Doctrine实体Item和Comment之间存在OneToMany关系。我现在有一个表单供用户为给定项目创建新评论。当创建一条新评论时,这条评论当然有一个属性Item,它应该被设置为当前正在评论的项目。当单击项目上的评论链接时,一个id作为参数发送到表单页面,我的计划是让这个id填充一个隐藏字段,然后使用DataTransformer在回发时将其转换为一个项目。但实际上我该如何实现呢?我如何将此id放入表单的隐藏字段中,以便DataTransformer可以正确处理它?或者在Symfony2中使用表单时是
我想将我的Symfony2.1.1(trunk)更新到2.1.2,但是运行composerupdate会删除包含.svn文件的文件夹。如何正确更新它? 最佳答案 Cyprian是对的,vendor文件夹的内容应该从SVN中排除。您可以通过在供应商文件夹上将svn:ignore属性设置为值“*”或忽略供应商文件夹来完成此操作。由于您已经在存储库中拥有这些文件夹,因此可以使用svn(svnrm)删除vendor文件夹的内容,然后提交该更改。之后,添加ingore属性并提交。当您以后运行composerinstall或update时,这不
我正在开发一个CRM,它将具有高级授权和在系统中具有特定角色的组中管理用户的功能。基本上,我想做的是:管理(领域)模型/Controller/操作的动态授权管理对象和字段的动态授权。我知道security.yml文件中的ROLE_xxxx,但我不想对角色进行硬编码。例如,我想要一种矩阵/网格,super管理员可以在其中创建自定义授权角色。其中一个角色可能是:“团队负责人”可以查看和编辑员工的电子邮件地址,但不能查看或编辑Employee_Wage字段。另一个用例是用户组“Accounting”中的用户可以调用操作generateInvoiceAction()但他无法访问操作create
我有一个使用TranslatableDoctrineextension翻译的Doctrine实体:locale=$locale;}publicfunctiongetTranslations(){return$this->translations;}publicfunctionaddTranslation(PropertyTranslation$t){if(!$this->translations->contains($t)){$this->translations[]=$t;$t->setObject($this);}}}现在,我想呈现一个表单,其中包含我翻译中可用的每种语言的“名称”
我有一个带有sfGuardUser插件的symfony1应用程序。我需要在我的新symfony2应用程序中使用相同的数据库。我应该如何定义密码编码器以匹配symfony1编码的密码? 最佳答案 如果您当时没有提供不同的编码算法,那么Symfony1.x将使用sha1($salt.$rawPassword)。所以你的PasswordEncoder应该是这样的:useSymfony\Component\Security\Core\Encoder\PasswordEncoderInterface;classPasswordEncoderi
假设我的公司有不同的项目。关于symfony2的最佳实践是什么?1.在同一个symfony2框架中为每个项目添加新的包(一个项目可能有多个包:甚至在不同的项目之间共享包)2.为一个项目添加一个新的Symfony2框架(一个项目可能有多个包)如果方式1是可以接受的,一个symfony2框架是否有最大束数? 最佳答案 Bundle是您网站中的逻辑组件,如后端或菜单。您应该构建全局包,以便在新项目中使用它。我更愿意创建更多实例并构建包含在您的项目(供应商文件夹)中的包。然后你就有了单一的组件,可以在新项目中使用它。好处是可以在不同的项目中