邳州网站建设【邳州网络公司】邳州做网站、邳州微信公众号开发、邳州网站设计、邳州小程序制作-网站制作-网站建设【企业网站制作|网页设计】- 高端网站建设 - 书生商友信息科技-

全国热线:400-111-6878

网站建设推广专家

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

发表日期: 2021-04-27 08:43:05 浏览次数:155

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

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

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

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

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

6.3.2 服务端开发规范

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

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

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

// 拦截式检测:如果未登录时,直接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);复制代码

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

接口参数:

// 正确的&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),复制代码

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

$ ./run_tests复制代码

运行效果类似:

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

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

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

6.3.3 多入口,多模块

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

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

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

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

由于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电话办理
网络推广
网站建设
网店装修
微信公众号开发
网页设计
网络公司
域名企业邮箱
服务器空间
网站案例报价
百科问答
编辑排版美工
App软件开发
百度推广
代运营托管
logo设计
网络全网营销
网站备案
网站定制
小程序开发公司
首页
电话
立即预约