我想知道之间的区别:
$this->forward("module", "action");
Run Code Online (Sandbox Code Playgroud)
和
$this->redirect("module/action");
Run Code Online (Sandbox Code Playgroud)
我的第一个猜测是,一个意味着一个新的请求,而另一个不是,但我不确定.
我想要做的很简单:将数据存储在我想要稍后阅读的自定义配置文件中.
我创建something.yml了我放在全局config目录中的文件.它看起来像这样:
prod:
test: ok
dev:
test: ko
all:
foo: bar
john: doe
Run Code Online (Sandbox Code Playgroud)
然后我复制了config_handlers.yml并将其放在config目录中,并在文件顶部添加了以下内容:
config/something.yml:
class: sfDefineEnvironmentConfigHandler
param:
prefix: something_
Run Code Online (Sandbox Code Playgroud)
但如果我打电话,sfConfig::get("something_foo");我会继续NULL.
我做错了什么?我只想读取值,所以不需要创建一个自定义配置处理程序,对吧?
我已经阅读了这里的文档:http://www.symfony-project.org/book/1_2/19-Mastering-Symfony-s-Configuration-Files即使我正在运行1.4(我不认为改变了自那时候起).
编辑:当然我可以使用,sfYaml::load()但我想以更好的方式做事.
我想创建自己的帮助器,但无法在Google上找到任何有关Symfony 1.4/Doctrine的帮助.
我想这与创建myClassHelper.class.phpin lib/helpers/或者某事有关,但我不知道要实现什么,或者是否必须覆盖特定的方法.
任何帮助,将不胜感激!
我正在使用Symfony 1.4和Doctrine.
到目前为止,我使用Symfony运行任务没有问题.但是现在我必须导入相当多的数据并将它们保存在数据库中,我才得以臭名昭着
"致命错误:允许的内存大小为XXXX字节耗尽"
在导入过程中,我只创建新对象,设置几个字段并保存它们.
我很确定这与我在保存数据时创建的对象数量有关.但是,取消设置这些对象并没有做任何事情.
是否有任何最佳实践来限制Symfony中的内存使用?
到现在为止,我总是说CakePHP过于膨胀和缓慢.我真的不知道,我只看到了"一些"基准.我真正想知道的是,如果这两个框架(Symfony和CakePHP)太慢而无法以用户会感到沮丧的方式使用.我已经知道那些框架比其他替代方案慢,但这不是问题.
我问这个问题,因为我想创建一个项目管理Web应用程序,我仍然在几个框架之间犹豫不决.我在学习Zend方面遇到了一些麻烦,但是我还没有努力学习.
总而言之,除了上面的第一个问题,我还想问另一个问题:
如果我想创建一个项目管理工具(这是一个非常大的项目),考虑到开发时间,最终应用程序的速度以及最终产品的稳健性,您应该建议以下哪一项:
另外我应该提一下,我不知道任何这些框架,我想学习其中一个(至少).
如何在Symfony中为不同的模块设置不同的模板布局?
我有一个银行应用程序,包括登录屏幕和成员部分.因此,当用户访问我的网站时,他将看到一个登录屏幕.登录后,他将被重定向到会员部分,他可以满足银行的需求.
那么,如何为登录屏幕和成员部分内的页面设置不同的布局?Symfony似乎frontend/templates/layout.php用作所有页面的模板.是否可以定义不同的布局?
我使用symfony 1.4和doctrine 1.2将对象批量插入数据库时出现问题.
我的模型有一种称为"扇区"的对象,每个对象都有几个"Cupo"类型的对象(通常范围从50到200000).这些物体非常小; 只是一个短标识符字符串和一个或两个整数.每当用户创建一组扇区时,我需要自动将所有这些"Cupo"实例添加到数据库中.如果出现任何问题,我正在使用一个学说交易来回滚所有内容.问题是我只能在php耗尽内存之前创建大约2000个实例.它目前有128MB的限制,应该足以处理使用少于100个字节的对象.我已经尝试将内存限制增加到512MB,但是php仍然崩溃,但这并没有解决问题.
这是错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in /Users/yo/Sites/grifoo/lib/vendor/symfony/lib/log/sfVarLogger.class.php on line 170
Run Code Online (Sandbox Code Playgroud)
这是代码:
public function save($conn=null){
$conn=$conn?$conn:Doctrine_Manager::connection();
$conn->beginTransaction();
try {
$evento=$this->object;
foreach($evento->getSectores() as $s){
for($j=0;$j<$s->getCapacity();$j++){
$cupo=new Cupo();
$cupo->setActivo($s->getActivo());
$cupo->setEventoId($s->getEventoId());
$cupo->setNombre($j);
$cupo->setSector($s);
$cupo->save();
}
}
$conn->commit();
return;
}
catch (Exception $e) {
$conn->rollback();
throw $e;
}
Run Code Online (Sandbox Code Playgroud)
再一次,这个代码适用于少于1000个对象,但任何大于1500的代码都会失败.谢谢您的帮助.
我有一个简单的开发网站,我想学习PHP.我希望该网站安全,可扩展且易于维护.我应该同时学习框架和PHP吗?如果我构建一个框架,将会有许多不熟悉的代码.你会说这增加了安全隐患吗?
我有桌子测试:
Test:
id | name
1 | aaa
2 |
3 | ccc
4 | aaa
5 |
6 | ddd
Run Code Online (Sandbox Code Playgroud)
我想要名称为NOT NULL的结果:
aaa
ccc
aaa
ddd
Run Code Online (Sandbox Code Playgroud)
我怎么能得到:
Doctrine_Core::getTable('Test')->findBy('name', NOTNULL??) <-doesnt working
Run Code Online (Sandbox Code Playgroud)
在模型中:
$this->createQuery('u')
->where('name = ?', NOTNULL ???) <- doesnt working
->execute();
Run Code Online (Sandbox Code Playgroud) 我想知道如何在symfony中增加会话超时.仅调整symfony配置设置还是我还必须在php.ini文件中配置任何内容?
symfony1 ×10
php ×5
symfony-1.4 ×4
doctrine ×3
cakephp ×2
doctrine-1.2 ×1
helpers ×1
memory ×1
memory-leaks ×1
performance ×1
redirect ×1
scalability ×1
security ×1
session ×1
symfony ×1
timeout ×1
yaml ×1