
发表日期: 2021-04-26 15:28:24 浏览次数:106
泰兴400电话办理【泰兴网站公司】泰兴百度优化、泰兴域名注册、泰兴网店美工、泰兴微信公众号托管
泰兴市位于江苏省中部、长江下游北岸。北纬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] 。
先来看下需要配置哪些接口参数,主要有用于分页显示的每页数量perpage和表示当前第几页的page,以及用于用于过滤发布时间的createtime。结合前面的2.1.2 参数规则,不能得出下面这样的参数规则配置。
// WeTime$ vim ./Fun/Api/Event.php
public function getRules() {
return array(
'post' => array(
... ...
),
'space' => array(
'perpage' => array('name' => 'perpage', 'type' => 'int', 'default' => 20, 'min' => 1, 'max' => 100, 'desc' => '分页数量'),
'page' => array('name' => 'page', 'type' => 'int', 'default' => 1, 'min' => 1, 'desc' => '当前第几页'),
'createTime' => array('name' => 'createtime', 'type' => 'date', 'desc' => '发布时间'),
),
);
}复制代码查看日历事件列表的接口服务,返回的数据可以分为两组,一组是用于协助客户端进行分页的数据,另一组是事件列表的业务数据。在接口类开发时,可以将这两组数据的获取分别进行实现。如同前面的发布接口,这里也使用了不严格的登录态检测。
// WeTime$ vim ./Fun/Api/Event.php
public function space() {
if ($this->userId <= 0) {
throw new Phalapi_Exception_InternalServerError('用户未登录');
}
$domain = new Domain_Event();
$total = $domain->getSpaceTotal($this->userId, $this->createTime);
$list = $domain->getSpaceList($this->userId, $this->createTime, $this->perpage, $this->page);
return array(
'total' => $total,
'perpage' => $this->perpage,
'page' => $this->page,
'list' => $list );
}复制代码通过日历事件领域业务类的Domain_Event::getSpaceTotal($userId, $createTime)类方法可以获取列表的总数量,这时不需要分页参数。而通过Domain_Event::getSpaceList($userId, $createTime, $perpage = 20, $page = 1)类方法获取事件列表时则需要在后面添加分页参数。编写好接口层的实现后,运行一下单元测试,会提示调用了未定义的类方法Domain_Event::getSpaceTotal()。由于这种开发模式更倾向于深度优先的实现,因此我们先来实现获取列表总数量,再实现获取事件列表。
根据失败的提示,需要在Domain_Event类中补充对应方法的实现。考虑到要能同时查看用户自己和用户所关注的好友的事件,所以我们需要先取到用户关注了哪些其他用户。这将涉及到与事件获取不同的另一块业务规则,根据亲密性,这块功能的实现应该通过委托交由关注领域业务类来负责。因此就有了下面这样的代码:
// WeTime$ vim ./Fun/Domain/Event.php
public function getSpaceTotal($userId, $createTime) {
$domainFollow = new Domain_Follow();
$followUids = $domainFollow->getFollowUids($userId);
}复制代码这里发生一段小插曲,在开发查看日历事件列表这一主要功能的过程中,我们调用了尚未存在功能——获取用户关注的用户ID列表。为了解决这个问题,需要根据目前已有的数据库表结构、业务需求以及当前上下文场景需要的数据,填补这一空缺。好吧,原来我们走的是一条笔直的大道,现在要走一条小道了……
使用我们喜欢的编辑器,创建上面需要的关注领域业务类Domain_Follow。然后添加获取关注用户ID列表的方法,并调用对应的数据模型类,完成具体的数据获取。
// WeTime$ vim ./Fun/Domain/Follow.php<?php/**
* 关注领域业务类
*/class Domain_Follow {
public function getFollowUids($userId) {
$model = new Model_Follow();
return $model->getFollowUids($userId);
}}复制代码或许已经有读者开始觉得厌烦了,因为我又要重复强调需要执行单元测试了。但是作为专业的开发工程师,应该有意识地进行这些实践。即每一次添加一段代码或者修改一段代码后,都应该执行一下单元测试。如果这时执行单元测试,你会发现有这样的错误提示:“PHP Fatal error: Class 'Model_Follow' not found in……”。此时此刻,从一开始获取事件列表,到现在提示类Model_Follow未找到,仿佛我们已渐行渐远,仿佛我们已失去了最初的关注点。尤其如果这时,正当我们还在思考下一步要做什么时,被外界打断了,例如被产品经理拉去开了长达1小时的会议,又或者是刚好下班了。当再回到屏幕前,我们还能记得明确需要做什么吗?常问路的人不会迷路。如果觉得迷茫或者没有方向时,可以来问一下单元测试,它会告诉你方向。

服务热线
顶部
备案号: 苏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