收藏此站 联系我们 网站
当前位置:首页» 公司新闻 » 【建站服务】邳州网站建设【邳州网络公司】邳州做网站、邳州微信公众号开发、邳州网站设计、邳州小程序制作-域名申请

【建站服务】邳州网站建设【邳州网络公司】邳州做网站、邳州微信公众号开发、邳州网站设计、邳州小程序制作-域名申请

作者: 风兰 . 阅读量: 4 . 发表时间:2022-09-20 15:25:45

网站建设

上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


邳州网站建设【邳州网络公司】邳州做网站、邳州微信公众号开发、邳州网站设计、邳州小程序制作

邳州,简称“邳”,江苏省徐州市代管县级市, [1-2]  古称良城、邳国、下邳、邳县,位于苏鲁交界,东接新沂市,西连徐州市铜山区、贾汪区,南界睢宁县,北邻山东省兰陵县。 [3]  1992年撤县设市。

邳州历史悠久,境内大墩子文化遗址距今6000年,是江苏文明最早的起源之一。境内有邳州市艾山风景名胜区、沙沟湖水杉公园、国家银杏博览园、小萝卜头纪念馆等旅游景点。邳州的城市精神是“创新、争先、开放、包容”。 [4] 

邳州发展的目标是东陇海产业带重要的水陆交通枢纽、新兴工贸城市,京杭运河沿岸具有水乡特色和历史文化底蕴的生态宜居城市。

2019年7月,邳州入选国家知识产权强县工程试点县(区)。2019年,邳州位居全国综合实力百强县市第37位、经济竞争力百强第40位、全国投资潜力百强县市第18位、全国绿色发展百强县市第33位、全国科技创新百强县市第36位、全国新型城镇化质量百强县市第51位。

6.3.2 服务端开发规范

除了制定了客户端接入规范,我们在Family 2.0 项目中还制定了服务端开发规范。希望此开发规范,能约束开发人员产出更优质的代码,并作为快速开发教程,为新加入的团队成员提供指引和帮助,降低学习成本。

  • 1、Git代码签出

新项目成员需要与项目经理申请Git帐号和权限,并创建各自对应的个人开发分支或者协同开发分支,然后在本地开发环境进行代码签出和部署。

  • 2、开发流程

    • a、测试先行
      根据PhalApi框架所推荐的TDD一般开发步骤,在编写产品代码前,先编写测试代码。可使用phalapi-buildtest命令来生成单元骨架代码。

    • b、实现接口服务
      在测试驱动开发的指导下,根据从Api接口层、Domain领域层再到Model数据源层的顺序进行开发。

    • c、提供文档
      除了提供PhalApi在线接口文档外,还需要参考附录A,编写提供接口服务文档。

    • d、与客户端联调
      当接口服务开发完成并自测通过后,与客户端开发人员进行必要的开发联调。

    • e、数据库变更
      当有数据库变更时,如服务器迁移、新加表或字段等,请将变更的SQL语句保存到./Config/sql目录下,并同步外网环境。

  • 3、常用操作

对于登录态验证,可以有两种检查方式,一种是在失败时直接抛出异常的拦截式检测,另一种是在失败时返回检测结果的温柔式检测。分别如下:

// 拦截式检测:如果未登录时,直接400返回DI()->userLite->check(true);// 温柔式检测:获取登录的情况,为不同的业务提供不同的选择DI()->userLite->check();复制代码

对于原始的数值型的用户ID,由于其可遍历性,为了保障用户信息的安全性,需要将数字转换成不可遍历、更复杂的字符串。对于这两者之间的互相转换,可以使用:

// UUID --> userId$userId = Domain_User_Helper::UUID2UserId('AAAD56B5460339234A4A2492680171A88818B96B8D8DA687FB');// userId --> UUID$UUID = Domain_User_Helper::userId2UUID(187);复制代码
  • 4、约定编程

接口参数、返回字段、数据库的字段,这些外部可见的数据全部使用下划线分割的格式,如:

接口参数:

// 正确的&user_id=888// 错误的&userId=888复制代码

返回字段:

// 正确的"device_type": "cube",// 错误的"deviceType": "cube",复制代码

数据库字段:

-- 正确的`user_id` bigint(20) DEFAULT '0' COMMENT '创建者的用户ID',-- 错误的`userId` bigint(20) DEFAULT '0' COMMENT '创建者的用户ID',复制代码

内部PHP代码变量则使用驼峰命名法,如:

接口参数规则:

// 正确的'otherUserId' => array('name' => 'other_user_id', 'type' => 'int', 'min' => 1, 'require' => true),// 错误的'other_user_id' => array('name' => 'other_user_id', 'type' => 'int', 'min' => 1, 'require' => true),复制代码
  • 5、一键测试

在测试环境上,执行以下命令可进行一键测试:

$ ./run_tests复制代码

运行效果类似:

图6-2 一键测试的运行效果

图6-2 一键测试的运行效果

一键测试,作为持续集成的一部分,应该随时、频繁执行,以校验接口服务的正确性,最大限度保证项目质量。如果做不到持续集成,至少在以下场景中应当执行一键测试: 发布版本到生产环境前;更新PhalApi框架后;进行大范围改动,或底层修改后。

6.3.3 多入口,多模块

Family 2.0 业务模块主要有原有的业务线智能电子相框,以及新增的业务线母婴营养称。需要服务的客户端除了安卓、iOS移动设备外,还有PC版的客户端和PC端的管理后台系统,除此之外,还有电子相框和营养称这些硬件设备。为清晰划分这些不同的模块,经过不断迭代,最终创建的项目有:

  • Fami项目 提供重写原有接口系统后的接口服务,包括原有的用户模块、家庭圈模块、动态模块和电子相框模块。并且作为整个系统的基础项目,提供公共接口服务。

  • Scale项目 提供新增的母婴营养称业务线的接口服务,包括了秤模块、体重模块、食谱模块等。可结合营养秤上报的体重进行分析,然后提供改善建议。

  • Admin项目 主要针对管理后台系统提供接口服务,用于实现下订购买、售后服务、后台运营等功能。

  • Task项目 负责用于计划任务的耗时接口服务的实现,如为商家生成一系列设备信息,进行消息推送等。

  • PC项目 针对PC版客户端提供AJAX接口,由于此场景不适宜采用签名加密,所以需要自定义接口服务白名单,以便前端能正常调用指定的接口服务。

上面所说的项目,是指放置源代码的项目,类似默认的Demo项目,每个项目都是可作为单独的子系统。这些项目都位于根目录的Apps目录下。

Family-2.0$ tree ./Apps/./Apps/├── Admin├── Fami├── Pc├── Scale└── Task复制代码

经过综合考虑,决定对外提供多个访问入口,这些入口与上面划分的项目对应,但又有所变化,主要有:

  • 电子相框访问入口/fami 对外提供Fami项目的接口服务。

  • 母婴营养秤访问入口/scale 对外提供Scale项目的接口服务,但内部实现依赖于Fami项目。

  • 管理后台访问入口/admin_28***4 为管理后台提供Admin项目的接口服务,但内部实现依赖于Fami项目和Scale项目。增加数字后续是为了避免外界简单地猜测到此入口路径。

  • PC端访问入口/web 对外提供Fami项目和Scale项目的部分接口服务,并且不需要任何签名验证。

由于Task计划任务的接口服务都是本地调用,故不需要对外提供访问入口。

6.3.4 通过系统变量维护服务器配置

原有的系统,使用硬编码的方式配置数据库连接等配置信息。一如常见的:

    'servers' => array(
        'db_demo' => array(                         //服务器标记
            'host'      => 'localhost',             //数据库域名
            'name'      => 'phalapi',               //数据库名字
            'user'      => 'root',                  //数据库用户名
            'password'  => '',                      //数据库密码
            'port'      => '3306',                  //数据库端口
            'charset'   => 'UTF8',                  //数据库字符集
        ),
    ),复制代码

为了更方便在不同环境下,在不改动任何代码的情况下实现快速部署,在Family 2.0 系统中全部数据库链接、Memcache链接等配置信息采用系统环境变量的方式配置。例如,上面的配置换为:

    'servers' => array(
        'db_A' => array(                         //服务器标记
            'host'      => $_ENV['FAMILY_V2_DB_HOST'],                   //数据库域名
            'name'      => $_ENV['FAMILY_V2_DB_NAME'],                   //数据库名字
            'user'      => $_ENV['FAMILY_V2_DB_USER'],                   //数据库用户名
            'password'  => $_ENV['FAMILY_V2_DB_PASS'],                   //数据库密码
            'port'      => $_ENV['FAMILY_V2_DB_PORT'],                   //数据库端口
            'charset'   => $_ENV['FAMILY_V2_DB_CHARSET'],                //数据库字符集
        ),
    ),复制代码

下面分别简单介绍,对于本书的开发环境,对于cli命令行和php-fpm这两种模式如何配置这些系统变量。

php-fpm下如何配置系统变量

首先,确保在php.ini配置文件中已经开启$_ENV全局变量。可打开/etc/php5/fpm/php.ini配置文件,并确保variables_order值为“EGPCS”,其中首字母E表示$_ENV全局变量。即:

# vim /etc/php5/fpm/php.inivariables_order = "EGPCS"复制代码

其次,在php-fpm相应的配置文件中添加相应的env配置,如:

# vim /etc/php5/fpm/pool.d/www.confenv[FAMILY_V2_DB_HOST]=$FAMILY_V2_DB_HOSTenv[FAMILY_V2_DB_NAME]=$FAMILY_V2_DB_NAMEenv[FAMILY_V2_DB_USER]=$FAMILY_V2_DB_USERenv[FAMILY_V2_DB_PASS]=$FAMILY_V2_DB_PASSenv[FAMILY_V2_DB_PORT]=$FAMILY_V2_DB_PORTenv[FAMILY_V2_DB_CHARSET]=$FAMILY_V2_DB_CHARSET复制代码

接着,在/etc/profile中,添加相应的系统变量。即:

# vim /etc/profileexport FAMILY_V2_DB_HOST=localhost     
export FAMILY_V2_DB_NAME=phalapi        
export FAMILY_V2_DB_USER=root        
export FAMILY_V2_DB_PASS=''        export FAMILY_V2_DB_PORT=3306        export FAMILY_V2_DB_CHARSET=UTF8复制代码

为了让php-fpm每次重启时能自动加载系统变量,可以修改php-fpm的启动脚本,并在合适的位置添加source操作,即:

# vim /etc/init.d/php5-fpm. /etc/profile

c51c866ffa1ab3457f2021e8bbdbcc1.jpg

邳州网站建设邳州网络公司邳州做网站、邳州微信公众号开发、邳州网站设计、邳州小程序制作


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站

全国服务热线
18114747181
二维码
手机端二维码
上往建站
地址:全国各地都有驻点商务 |  网站建设上往建站
在线咨询QQ:1120768800
 
QQ在线咨询
售前咨询热线
18114747181
营销顾问
营销顾问
售后服务热线
400-000-1116
售后服务
售后服务