一点背景信息:
我最近一直在看几个PHP框架,它归结为两个.Zend Framework或CodeIgniter.
我更喜欢CodeIgniter,因为它设计简单.这是非常裸露的骨头,它只是保持简单.我不喜欢的是弱模板系统.模板系统对我很重要,因为我将与另一位设计师合作.能够给他一个好的模板系统是一个很大的优点.
Zend是第二选择,因为内置了更好的模板系统.与CodeIgniter相比,Zend是一种不同的野兽.它强调"模块之间的松散耦合",但它是一个更大的框架.我不喜欢觉得我有很多东西在我从不使用的引擎盖下运行.在我看来,这是不必要的开销,所以我考虑将模板系统放入CodeIgniter:Smarty.
问题:将Smarty集成到CodeIgniter的过程有多容易/困难?从我最初的CodeIgniter文档扫描中,我可以看到框架的布局很容易理解,我预计没有问题.我想知道是否有人以前曾经使用过它,因此我知道你所经历的任何"陷阱"会使这更难以实现或不可能实现.我也想知道这是否是一件好事.CodeIgniter中的模板系统是否足以正常使用?除了Smarty之外,还有其他适用于CodeIgniter的模板模块吗?我最好使用Zend Framework吗?这个轮子是在这里发明的吗?谢谢您的帮助!
我正在使用Zend框架发送邮件.一旦配置完成并且代码写入,所有内容归结为一个调用:
$Mail->send($Transport)
Run Code Online (Sandbox Code Playgroud)
如何检查此邮件是否已正确发送?我在某地读过Zend Mail引发异常,但其他人说这有时并非如此.
使用Zend_Mail时,确保邮件正确发送的防弹程序化方法是什么?
编辑:当我的意思是发送,我的意思是发送到SMTP服务器.
我正在寻找一些很好的资源来学习如何在Zend Framework中实现内部服务层.这是 Bookie Link的有趣帖子,但没有具体的代码示例.
/application/modules/modulename/services/?);我正在Zend应用程序中从Doctrine 1.1.4升级到Doctrine 2.0.6.
目前,我正在研究实体之间的关联.在Doctrine 2的文档中,它说'关系可能是双向的或单向的.我很困惑这些术语在给定的上下文中意味着什么.
如何确定关系是单向还是双向?
感谢帮助.
在Zend Framework中有没有办法获取用户最后访问过的页面的网址?
我真的不想用$_SERVER['HTTP_REFERRER'].
所以你可以使用这样的东西:
$query = $db->select();
$query->from('pages', array('url'));
echo $query->__toString();
Run Code Online (Sandbox Code Playgroud)
检查Zend Db Framework将用于该SELECT查询的sql.是否有一种等效的方法来查看SQL以进行更新?
$data = array(
'content' => stripslashes(htmlspecialchars_decode($content))
);
$n = $db->update('pages', $data, "url = '".$content."'");
??
Run Code Online (Sandbox Code Playgroud) 我将一个select元素添加到Zend_Form实例,如下所示:
$user = $form->createElement('select','user')->setLabel('User: ')->setRequired(true);
foreach($users as $u)
{
if($selected == $u->id)
{
$user->addMultiOption($u->id,$u->firstname.' '.$u->lastname);
//*** some way of setting a selected option? selected="selected"
}
else
$user->addMultiOption($u->id,$u->firstname.' '.$u->lastname);
}
Run Code Online (Sandbox Code Playgroud)
我一直在搜索文档,但找不到一种简单的方法来将select元素的选项预先设置为"selected".
我安装了memcached.这是来自phpinfo():

但是当它像这样使用时:
private static function getZendCacheMemcachedObject()
{
$frontendOpts = array(
'caching' => true,
'lifetime' => 3600,
'automatic_serialization' => true
);
$backendOpts = array(
'servers' =>array(
array(
'host' => 'localhost',
'port' => 11211,
'weight' => 1
)
),
'compression' => false
);
return Zend_Cache::factory('Core', 'Memcached', $frontendOpts, $backendOpts);
}
public function foo($id)
{
$cache = self::getZendCacheMemcachedObject();
$cacheKey = 'foo_'.$id;
$xml = $cache->load($cacheKey);
if (false === $xml) {
$xml = $this->httpClient->foo();
$cache->save($xml, $cacheKey);
}
return $xml;
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
The memcache extension must be …Run Code Online (Sandbox Code Playgroud) 我厌倦了编写三元表达式来清理数据,例如:
$x = isset($array['idx']) ? $array['idx'] : null;
// and
$x = !empty($array['idx']) ? $array['idx'] : null;
Run Code Online (Sandbox Code Playgroud)
是否有本机方式或ZF访问器/过滤器来获取某些给定数组的数组元素值,而不:
error_reportingisset/ empty支票@就像是:
$x = get_if_set($array['idx']);
// or
$x = Zend_XXX($array, 'idx')
Run Code Online (Sandbox Code Playgroud) 我目前正在使用Zend Framework,我对它非常满意.我想知道的是,使用像Joomla或Drupal这样的CMS更好的是什么样的要求.
考虑到我目前的项目,它是一个门户应用程序.它完全是从Zend开始制作的.然后一些人来评论说它是在drupal中实现的,你可以通过辛苦努力为你建立的东西获得插件.
所以我需要一个如何在启动阶段选择CMS和A Framework的指南?
zend-framework ×10
php ×7
codeigniter ×1
doctrine-orm ×1
email ×1
html-select ×1
mapping ×1
memcached ×1
models ×1
smarty ×1
verification ×1
zend-db ×1
zend-form ×1