摘要:
最近在一个PHP产品中需要加入对数据状态进行监控的功能集。当数据符合或不符合某种预设规则时,需要自动通知用户,通知的形式可以是email、短信、主页推送等。这样的规则有多个,随着需求的演化,QP和老常会增加新的规则。此时产品已基本成型,要增加该功能,不能对原有实现的其他功能、系统状态有影响。系统对于监控功能来说,是只读的。经设计决策,监控功能采用observer模式的变种来实现。原理如下图。DataCollector:负责收集需要监控的数据,并对所有数据遍历,执行预订规则检验。targets 属性: 被监控的数据对象集合,其中每个元素均属于Target类型的对象;iterate 方法:遍历ta 阅读全文
摘要:
这是一个应用所应具有的基本功能之一,不用从零开发。Yii Extensions有现成的东西直接可用,或者在其基础上进行定制。以Yii-UserModule为例。该扩展Module用于用户注册与管理。有用户注册、账号激活、密码修复、profile配置、用户CRUD功能。使用方法参见官网上的Yii-User extension。1 数据表结构 该module的维护的用户数据有三张数据表,如下图: users表为基本表,profiles表中的字段数由profiles_fields表动态生成。 通过UI维护profiles_fields表中的数据,详细定义了每个profile的名称、类型、验证、... 阅读全文
摘要:
应用的行为定制大多在config/main.php中进行,该文件返回key-value数组,用于配置web app的初始状态。一、将 yii framework 包含在应用目录内 Yii Based Web Application通过 Yii::createWebApplication创建;默认地,该Yii类包含在Yii Root目录下的framework目录,位于当前Web Application之外。这种配置适合在一个服务器上部署多个基于Yii的应用,Web App均指向这个Yii Root目录,也利于升级。 当仅有一个Yii Based 应用,或者需要开发用于发布的WebApp时... 阅读全文
摘要:
使用 Yii Framework 开发 PHP web 应用,先用Yii自身的yiic命令行工具创建web app框架(参见Creating Your First Yii Application),创建后的应用目录结构如下图。assets: 这个目录开发者可不关注。包含用户可公开访问的资源文件。web app运行时需要yii框架支持,但该框架在webapp之外,由框架内widget的图片等资源需要在web app内部可见,因此,assets目录就是将这些资源发布到的目标位置。里面的子目录由yii framework创建,都是一些十六进制的标识,内含各种css、image、js资源。css、im 阅读全文
摘要:
需要用户下载安装的 Web 应用应具有自动安装功能。安装主要涉及数据库的安装、管理员帐号的创建工作,自动完成这些工作是用户友好的一个最初体验,毕竟,不能指望用户懂sql文件操作。根据QP和老常的需求,在产品中实现了自动安装功能。逻辑结构如下图所示。流程中涉及两个重要的文件:the config file:保存安装过程中用户输入的database信息,后续运行时使用该文件信息访问数据库。the installation flag file:安装过程成功完成后,在系统中指定位置设置的标记文件。该流程实现在系统的默认入口页上,对系统的请求先经过该流程。当管理员首次访问系统时,无config file 阅读全文