
发表日期: 2021-04-26 15:26:56 浏览次数:183
泰兴微信公众号开发【泰兴网络推广】泰兴建站、泰兴网站维护、泰兴网页制作、泰兴微信小程序代运营公司
泰兴市位于江苏省中部、长江下游北岸。北纬31°58′12"~32°23′05",东经119°54′05"~120°21′56",是江苏省泰州市下辖市,是江苏省直管县三个试点之一,享有部分地级市职权。东接如皋市;南接靖江市;西濒长江,与扬中市、常州市新北区隔江相望;北邻泰州市姜堰区,东北与南通市海安市接壤;西北与泰州市高港区毗连。 [1-2]
泰兴置县于南唐升元元年(公元937年),寓意“国泰民安,百业兴旺”,有“教育之乡” [3] 、“银杏之乡” [4] 、“建筑之乡” [5] 、“提琴之乡” [6] 、“减速机之乡” [7] 之称。 [2]
2018年,泰兴市实现地区生产总值1040亿元。一般公共预算收入74.5亿元,增长18.1%,税占比84.1%,总量列全省县市第7位、增幅列第1位。财政管理工作连续两年获得国务院表彰奖励。固定资产投资增长14%,其中产业投资增长13%。实现社会消费品零售总额257亿元,增长7%。城乡居民人均可支配收入增长9.2%。全国县域经济基本竞争力排名前移至第29位。 [8-9]
泰兴属长江三角洲冲积平原,行政区划面积1172平方公里,泰兴东西最大直线距离为47.0千米,南北最大直线距离为43.5千米。2017年末户籍总人口118.56万人,比上年减少0.75万人。年末常住人口107.80万人。 [10] 2018年11月,入选中国工业百强县(市)。 [11] 2018年12月,入选全国县域经济综合竞争力100强、 [12] 投资潜力100强,中国最佳县级城市30强,2019全国营商环境百强县。2020年12月,社科院发布《全国县域经济综合竞争力100强》,泰兴排名第37 [13] 。
// Step 2. 执行 $rs = PhalApi_Helper_TestRunner::go($url, $params); // Step 3. 验证 $this->assertGreaterThan(0, $rs['id']); }复制代码
在上面测试用例中,模拟用户ID为1,即Aevit用户,发布一个日历事件,并期望发布后返回的事件ID大于0,表示新增数据库表纪录成功后返回的自增ID应大于0。这时,运行单元测试,可以看到这时是失败的。
WeTime$ phpunit ./Fun/Tests/Api/Api_Event_Test.php... ...1) PhpUnderControl_ApiEvent_Test::testPostFailed asserting that null is greater than 0.... ...复制代码
在明确了接口服务的需求,并且有失败的单元测试作为指明,要实现此日历事件发布功能就很简单了。关键的是如何把合理地组织代码,把代码放在最合适的位置上。
首先,先在接口类Api_Event中补充发布日历事件所需要的参数的规则配置。这时,可结合前面日历事件数据库表wt_event的表结构进行相应的配置,只需要稍微转换一下即可。
// WeTime$ vim ./Fun/Api/Event.phpclass Api_Event extends PhalApi_Api {
public function getRules() {
return array(
'post' => array(
'title' => array('name' => 'title', 'min' => 1, 'max' => 50, 'require' => true, 'desc' => '标题'),
'content' => array('name' => 'content', 'min' => 1, 'max' => 200, 'require' => true, 'desc' => '内容'),
'location' => array('name' => 'location', 'max' => 50, 'desc' => '位
置信息'),
'createTime' => array('name' => 'createtime', 'type' => 'date', 'desc' => '发布时间'),
'tousers' => array('name' => 'tousers', 'type' => 'enum', 'range' => array('0', '1', '2'), 'default' => '1', 'desc' => '事件的权限(0:私有;1:公开;2:共享)'),
),
);
}
... ...复制代码接着,实现接口类的调用功能。Api_Event接口类在发布日历事件时,主要需要进行的工作有:检测用户是否已登录,收集验证通过和解析的事件信息,最后调用日历事件领域类进行发布。以下是对应的实现代码。
// WeTime$ vim ./Fun/Api/Event.php
public function post() {
if ($this->userId <= 0) {
throw new PhalApi_Exception_InternalServerError('用户未登录');
}
$newEvent = array(
'uid' => $this->userId,
'title' => $this->title,
'content' => $this->content,
'location' => $this->location,
'createtime' => $this->createTime,
'tousers' => $this->tousers,
);
$domain = new Domain_Event();
$id = $domain->post($newEvent);
return array('id' => $id);
}复制代码上面有一个初学者很容易犯的错误,就是在需要进行检测用户登录态的场景中,并没有严格进行检测。如上面只是简单地判断用户ID是否大于0,而没有验证其真实性,更好的做法是进行会话判断。关于会话验证这块,暂时不做过多的介绍,以免分散日历事件模块的开发。
再次执行单元测试,会提示类Domain_Event未找到,这意味着要补充日历事件领域业务类。此领域业务类主要是完善日历事件的发面信息,如补充默认的状态值和发布时间,让事件信息更齐全。最终会调用数据模型类进行具体的数据持久化操作。
// WeTime$ vim ./Fun/Domain/Event.php<?php/**
* 日历事件领域业务类
*/class Domain_Event {
public function post($newEvent) {
$newEvent['state'] = '1';
if (empty($newEvent['createtime'])) {
$newEvent['createtime'] = date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']);
}
$model = new Model_Event();
$id = $model->insert($newEvent);
return $id;
}}复制代码请注意,在实现接口服务时,为了更快速完成代码的编写,初学者更容易产生一些临时、相对不符合规范的代码。例如这里对于state字段,使用了魔法字符串“'1'”(之所以是字符串类型,是因为wt_event表的state字段为枚举类型,不能用整型),虽然暂时知道1表示事件未完成,即激活状态,但一段时间后其他开发人员甚至原作者再来阅读这行代码时,就难以判断这个1为何物了。但继续功能开发,关于代码的重构,后面会专门讲到。
再次执行单元测试,会提示类Model_Event未找到。此时,可再添加与日历事件表wt_event的数据业务类。这个类暂时的实现很简单,只需要继承于PhalApi_Model_NotORM父类即可。
// WeTime$ vim ./Fun/Model/Event.php<?php/**
* 日历事件数据模型类
*/class Model_Event extends PhalApi_Model_NotORM {}复制代码添加Model类后,如果提示数据库连接失败,则应该检测数据库配置文件./Config/dbs.php的连接信息是否正确。如果提示数据库表不存在,则应该检测数据库表前缀是否设置为“wt_”,以及数据库表wt_event是否已创建。
// WeTime$ vim ./Config/dbs.phpreturn array(
'servers' => array(
'db_wetime' => array( //调整服务器标记
'host' => 'localhost',
'name' => 'wetime', //数据库名字为“wetime”
'user' => 'root',
'password' => '',
'port' => '3306',
'charset' => 'UTF8',
),
),
'tables' => array(
'__default__' => array(
'prefix' => 'wt_', //统一表前缀为“wt_”
'key' => 'id',
'map' => array(
array('db' => 'db_wetime'), //更改为对应的服务器标记
),
),
),);
服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878