AzaAjaxChat笔记-框架

1个月没有动PHP了,新装的系统甚至还没有配置PHP环境,今天看到BooguNote上有一个boo是专门记录AzaAjaxChat开发时候遇到的问题和解决办 法。于是把一些东西整理记录一下。

1. 从ThinkPHP开始

最早的AzaAjaxChat是基于ThinkPHP的,我当时在OpenSouce上看到ThinkPHP的介绍,有很多优点,看的我很心动:MVC模型,Ajax 支持,详细的文档和案例,国人开发的框架。我作为一个PHP新人一下子就被他吸引住了,决定用ThinkPHP做框架。

image

随着系统开发的推进,我却感觉到一些不自在,遇到一些问题却找不好太好的解决办法。比如ThinkPHP的模块和分组两个概念,让我比较疑惑,花费了大量时间重组目录 结构,两种方法各有优劣,让我很难选择(有选择了反而难办了 ^_^)。

最让我恼火的是相对目录带来的路径混乱,在JSP开发中,静态内容习惯性放在webcontent文件夹中,而ThinkPHP的CSS、图片、JS引用让我很疑惑, 要区分App的和Model的静态文件。

在开发过程中,我也遇到过框架本身的Bug,让我对这个框架失去信心。在这里我没有贬低ThinkPHP或者ThinkPHP开发者的意思,他们的“大道至简、开发由 我”的理念很值得欣赏。只是作为初学者因为遇到的一些问题,带来了一定的开发难度,不得已放弃。

2 …

more ...

Cakephp的国际化和poEdit的使用

原文出处:在Cakephp中使用i18n本地化程序,并使用poedit编辑语言文件 | 程序如此灵动!

alswl: 官方的帮助手册都没有这篇文章来的详细,太赞了。这篇文章不仅介绍了CakePHP的使用,更多的介绍了PoEdit的使用,图文并茂,着实详细,感谢原作者苏南。

—– 以下为原文 —–

Cakephp的很强大的i18n功能就是用来实现本地化和国际化的。他通过使用语言配置文件使得程序能够很好的适应变化进行本地化。通过新建locale/chi/ LC_MESSAGES/default.po文件,并指定语言选项为“chi”实现。本文中说的就是如何实现这个本地化过程,当然本文中的poedit并不是必须的 ,但是他可以使得工作效率更高。

一、关于i18n和L10n

这2个东东其实头一次我看到的时候也是一头雾水,但是经过百度的一通搜索,得出的结论就是,不管是几个n,最终的目的就是实现程序本地化就好了,说白了,就是由很多的 语言配置文件,反正我是这么理解的。大家也可以去看看,http://baike.baidu.com/view/372835.htm 这里有很详细的说明。

二、在Cakephp里面,实现本地化的方法

目前为止 …

more ...

CakePHP的全局变量

毕业设计AzaAjaxChat 中有一个功能,记录当前在线用户,直观的看,用Application对象就可以解决。

忙了一会发现,原来PHP没有Application对象这个概念,于是我想到了全局变量,噩梦便开始了。(Application 和全局变量其实完全不是同一个概念)

我使用的框架是CakePHP,查找资料后,找到了几种CakePHP中使用全局变量的方法。

一、使用bootstrap.php文件

在app/config 下面,有一个bootstrap文件,从名字就可以看出,这个是在控制器之前加载的文件,根据官方的描述,有下面几个用法。

  • 定义方便的函数
  • 注册全局常量
  • 定义新增的控制器,视图,控制器路径

通过这个文件可以实现全局变量的声明。

if (!isset ($globalAAC)) {
    global $globalAAC;
    $globalAAC = array (
        'currentMessageId' => -1,
        'onlineUsers' => array()
    );
}

在其他文件中就可以调用这个全局变量了。

二、通过Configure 类

Configure类是CakePHP用来进行配置文件的地方,通过write() 和read()方法 …

more ...