中文文档翻译

不少朋友要求提供中文文档,很遗憾,我因为实在分配不出来时间,只能做少量的翻译。因此我恳请各位一起来助翻译"The definitive guide to Yii"。我已经为此开设了一个专门的Goolge项目:http://code.google.com/p/yiidoc/

如果你能参与,请PM我你的Gmail帐号。

谢谢!


以下朋友已经报名参与了。为了避免重复工作,希望大家协调一下工作的分配。另外,最好能翻译一部分就check in,而不是等完全翻译好了再check in。这样可以避免check in冲突,也可以给大家review的机会。谢谢!

Leric

tangniyuqi

nowgoo

sharehua

dofy

thaiki

dreaminto

kran

moho

cr0909

imdong

可惜我刚刚接触,还不是很熟,要不我就加入了,希望以后能尽点力

不知道是基于wiki的方式,

还是用docbook。

用的markdown格式,参见:http://code.google.com/p/yii/source/browse/trunk/docs/guide/basics.controller.txt

我不会写makedown格式。我先试着翻译了Development Workflow这章。

开发流程(Development Workflow )

已经描述了yii的基本概念,现在我们看看用yii开发一个web程序的基本流程。前提是我这个程序我们已经做了需求分析和必要的设计分析。

1 创建目录结构。在前面的章节《Creating First Yii Application》写的yiic工具可以帮助我们快速完成这步。

2 配置application。就是修改application配置文件。这步有可能会写一些application组件(例如:用户组件)。

3 每种类型的数据都创建一个model类来管理。同样,yiic可以为我们需要的数据库表自动生成active record类。

4每种类型的用户请求都创建一个controller类。依据实际的需求对用户请求进行分类。一般来说,如果一个model类需要用户访问,就应该对应一个controller类。yiic工具也能自动完成这步。

5实现acitons和相应的views。这是真正需要我们编写的工作。

6在controller类里配置需要的action filters。

7如果需要主题功能,编写themes。

8如果需要国际化功能,编写翻译语句。

9使用caching技术缓存数据和页面。

10最后调整程序和发布。

以上每个步骤,有可能需要编写测试案例来测试。

编写action (Creating Action)

一旦有了model,我们可以开始编写操作model的逻辑。我们把这些逻辑放在controller action里面。用录入登陆表单这个例子来说明,如下是需要的代码:

public function actionLogin()

{

    $form=new LoginForm;

    if(isset($_POST['LoginForm']))

    {

        // 收集用户输入的数据

        $form->attributes=$_POST['LoginForm'];

        // 验证用户输入,如果无效则重定位到前个页面

        if($form->validate())

            $this->redirect($this->user->returnUrl);

    }

    // 显示登陆表单

    $this->render('login',array('user'=>$form));

}

上面写的是,我们编写LoginForm实例;如果请求是POST方式(意味着登陆表单是submit),我们产生一个$form,里面放着提交过来的数据 $_POST['LoginForm'];然后验证输入,如果成功,把用户请求url定位到相应需要授权的页面。如果验证失败,或者是第一次访问login页面的,把用户请求url定位到login的页面,login页面具体怎么写会在下一个小节里描写。

秘诀: 在login action里面,我们用$this->user->returnUrl获取之前需要验证的url。 因为CController正好有一个CWebUser的实例叫做user,用来存放用户session信息的(例如:用户名,状态等)。想要了解更多,看《Authentication and Authorization》这章。

大家注意这段在login action里面的php语句:

真如我们提到,这句话只是创建一个model存放用户提交来的数据。CModel里面以name-value数组形式定义了attributes属性,每个value被分配到相应的name属性上。所以如果$_POST['LoginForm']给了我们这样的数组,上面的代码将等同于后面的这长串代码(假设每个需要的属性这个数组都提供):

$form->username=$_POST['LoginForm']['username'];

$form->password=$_POST['LoginForm']['password'];

$form->rememberMe=$_POST['LoginForm']['rememberMe'];

提示:为了让$_POST['LoginForm']不提供字符串而是数组,根据惯例view页面的输入字段应该写model相应的名字。记住是,一个页面输入字段对应model(简称C)里面的一个属性C[a]。例如,我们用 LoginForm[username]去命名页面username输入字段。

剩下的工作是编写login view了,编写里面的html表单和相应的输入字段。

非常感谢!

SVN服务器上能不能放上英文原版的 markdown 这样,大家就可以避开格式直接对内容翻译了!

有的啊,/guide/source下就是原版的。你翻译出来的东西也必须是markdown格式的。

哈 看到了 … ;D ;D ;D

刚把 views 弄了下  签入了 …

多谢啦!

发现 guide/source 下也有写语言文件夹, 这些是干嘛用的?

翻译的文件是否应该放到 guide/<lang> 下?

还有, 发现有的朋友把 > Note 和 > Tip 也翻译了, READEME 里有说明不用翻译这些标识, 翻译了就没有样式了 ;)

如果翻译 guide 是不是就把 source 下的 copy 到 guide/<lang> 下进行翻译然后 check in 就行了?

不用管guide/source下的语言文件夹。整个source目录用的是外部SVN,实际上是yii svn trunk里的内容。

翻译的文件应该放在guide/zh_cn下。

"> Note"应该翻译成"> Note|注意"。现有的翻译是对的。

另外,yiidoc下有个index.php,你可以通过浏览器来访问这个script。它可以显示你正在进行的guide翻译。

明白了 :D

嗯, 本地环境建好了, 可以访问.

我看到 svn 里有朋友把 > Note 翻译成了 > 注意, 这样样式就没有了.

Quote

多谢啦!

应该的 应该的 …  ;D ;D ;D  不能让作者一个人全顶着不是…自己用框架的话 也是受益者!哈哈

:o :o :o

大强 我用TortoiseSVN找不到/guide/source

但是用ZDE的SVN可以…

应该可以的啊。我也用的是tortoseSVN.

如果实在不行,你也可以用yii trunk里的docs/guide。两个是一样的。

还是看不到 … :o :o :o

没事我在公司有英文版的 ,  :D :D :D

刚弄好一篇  大强包夜宵不  ;D ;D ;D ;D

多谢啦。你在哪里工作啊?在美国的话我一定请!