Zend_Mail 中文主题乱码的原因主要是在编码后超长内容的设置上出现问题。
已经提交到 issues 上了:
http://framework.zend.com/issues/browse/ZF-2532
如果有朋友遇到主题乱码,可以尝试使用更短的主题。或者使用我在 issrues 上提到的方法临时解决一下。
据我所知,这个 bug 在 1.5 的 perview 版本中依然存在。
The Zend Framework is a framework!
Zend_Mail 中文主题乱码的原因主要是在编码后超长内容的设置上出现问题。
已经提交到 issues 上了:
http://framework.zend.com/issues/browse/ZF-2532
如果有朋友遇到主题乱码,可以尝试使用更短的主题。或者使用我在 issrues 上提到的方法临时解决一下。
据我所知,这个 bug 在 1.5 的 perview 版本中依然存在。
看到邮件列表上说,于 1 月 22 日冻结代码,计划 1 月 24 日正式发布。 增加了不少新的功能,正式发布的时候还可能有更多的一些功能: * Zend_Auth_Adapter_Ldap * Zend_Build/Zend_Console * Zend_Controller additional action helpers * ContextSwitch and AjaxContext * Json * AutoComplete * Zend_Form * Zend_InfoCard * Zend_Layout * Zend_OpenId * Zend_Search_Lucene improvements: * wildcard search * date range search * fuzzy search * Lucene 2.1 index file format support * Zend_View enhancements: * actions * partials * placeholders * Zend_Pdf UTF8 support * New Zend_Service consumables (final list TBD) * A whole lotta bug fixes and documentation improvements
发现不少人对此有迷惑,所以有通常的做法:设置 noViewRender,然后将 ajax 调用时的返回数据直接输出于 controller 中。
个人以为,这种做法不是不可以。但是在 Zend Framework 中这样使用,就有违 MVC 的分离原则。controller 不应该区分显示到客户端的是页面还是 json 或者 xml。
下面是我的做法,仅供参考。部分调用了 ninny project 中封装的功能凑合看吧:
———————–view script: index.php—————————
<?php echo $this->jquery();?>
<script language="javascript">
// jquery ajax 的 json
$().ready(
function(){
$("#load").click(
function() {
$.getJSON("/foobar/index/ajax",function(data){
$("#title").html(data.title);
content = "";
$.each(data.content, function(i, line){
content += line + "<br/>";
});
$("#content").html(content);
});
});
});
</script>
<div id="title"></div><div id="content"></div><input type="button" id="load" value="Load"/>
-----------------------view script: ajax.php---------------------------
<?php
// Zend_Json 处理输出的对象,如果这里不使用 Zend_Json,可使用其他编码器将 php 对象进行编码输出。
// 这样在需要修改输出类型时,仅需要修改视图部分。而不涉及数据模型或控制器。
echo Zend_Json::encode($this->content);
?>
———————–action controller: Foobar_IndexController.php—————————
<?php
class Foobar_IndexController extends Ifang_Controller_Action
{
public function indexAction()
{
}
public function ajaxAction()
{
$foobar = array(
'title' => 'This is a test!',
'content' => array(
'0' => 'This is the first line!',
'1' => 'This is the second line!',
'2' => 'This is the last line!',
),
);
// 传递一个普通的 php 对象(变量)到视图。
$this->view->content = $foobar;
}
}
My codes is:
public function testGetTextTw()
{
$t = new Zend_Translate(‘gettext’, ‘./_locale/’, ‘zh_TW’);
$this->assertEquals(‘n2’, $t->_(‘New’));
}
public function testGetTextCn()
{
$t = new Zend_Translate(‘gettext’, ‘./_locale/’, ‘zh_CN’);
$this->assertEquals(‘n1’, $t->_(‘New’));
}
But, the testGetTextCn() go into fail: expected string ‘n1’ but got string ‘n2’.
So, I read the codes in Zend_Translate_Adapter::__construct().
the param variable $local was covered by an other value.
I made this patch:
Now, it works fine!
The issue and the patch have been submited to issue tracker:
framework.zend.com/issues/browse/ZF-2205
Zend_Application – a general-purpose bootstrap class, optionally driven
by a configuration file.
http://framework.zend.com/wiki
Zend_Application – 通用的 bootstrap 类,通过配置文件设置选项。
貌似,跟 ninny project 的 IfangSite 类异曲同工。恩,是不是以后我可以从 Zend_Application 继承 IfangSite,希望迁移工作不要太麻烦。Zend_Application 配置文件的格式是固定的,如果跟我现在设计的差别很大,那就糗了。-_-!
许多人说 Zend_DB_Select 是一个丑陋的实现,同时是完全没有必要的。那么我想谈一下我的想法,为什么我们需要 Zend_Db_Select。 (more…)
原文在此:http://hi.baidu.com/thinkinginlamp/blog/item/6282d539d96198f13a87ced1.html
在这里对有效内容略做剖析,谈谈我的看法。另:为避免被“河蟹”,所以原文中那另外的 50% 的废话我就不说了。 (more…)
Bill 这个老家伙,这么多天,才指派了 issue 过来。
这个 charset 应该放在 config 的什么部分?
我个人倾向于跟 $config[‘port’] 一样,直接放在 config 数组中: $config[‘charset’]。实际上之前的修改也是这么做的。
但是还有一个选择是放在 $config[‘options’][‘charset’]。这样肯定更符合老外的胃口,他们很少用 charset 这个东东的。
Bill 发邮件说他想放到 $config[‘driver-options’][‘charset’],我是严重的不同意。这个肯定不是数据库特性的东西,而应该是跟 port 一样是每个数据库不同,但是每个都可以设置的东西。
恩,考虑考虑先~~反正无论如何,我不同意放到 driver-options 里去设置 charset。
在分析 Zend_Config 的代码的时候,感觉 Ini.php 和 Xml.php 中代码差异非常大。那么性能上是否有一个确定的优劣?于是做了以下比较和分析。 (more…)