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

全国热线:400-111-6878

网站建设推广专家

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

发表日期: 2021-04-26 09:20:04 浏览次数:130

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


如皋市,简称“如”或“皋”,江苏省辖县级市,由南通市代管,江苏省历史文化名城。地处长江三角洲北翼,位于南通、泰州、苏州三市交界处,南与张家港市隔江相望,北与海安市、东与如东县连接、东南与南通市通州区毗邻,西与泰兴市、西南与靖江市接壤。全市总面积1477平方公里(不含长江水面),长江水面99平方千米。如皋长江岸线全长48千米,可直接利用长江深水岸线18.6千米。

如皋市被国际自然医学会评为世界六大长寿乡之一。 [1]  如皋市户籍人口约142万。截至2021年1月1日,全市80周岁以上高龄老人68031人,90周岁以上高龄老人10150人,百岁老人达525位,其中105岁以上达16位。 [2] 

2019年6月17日,如皋被中华人民共和国住房和城乡建设部选取作为开展规范城市户外广告设施管理工作试点城市。 [3]  2019年10月8日,被评为2019年度全国综合实力百强县市、2019年度全国绿色发展百强县市、2019年度全国新型城镇化质量百强县市、2019全国营商环境百强县。 [4-6]  2020年12月,社科院发布《全国县域经济综合竞争力100强》,如皋排名第31 [7]  。


2.2.4 扩展你的项目

如何定制接口服务的传递方式?

虽然我们约定统一使用?service=Class.Action的格式来传递接口服务名称,但如果项目有需要,也可以采用其他方式来传递。例如使用斜杠而非点号进行分割:?service=Class/Action,再进一步,使用r参数,即最终接口服务的参数格式为:?r=Class/Action

如果需要采用其他传递接口服务名称的方式,则可以重写PhalApi_Request::getService()方法。以下是针对改用斜杠分割、并换用r参数名字的实现示例:

// $ vim ./Shop/Common/Request/Ch1.php<?phpclass Common_Request_Ch1 extends PhalApi_Request {

    public function getService() {
        // 优先返回自定义格式的接口服务名称
        $service = $this->get('r');
        if (!empty($service)) {
            return str_replace('/', '.', $service);
        }

        return parent::getService();
    }}复制代码

实现好自定义的请求类后,需要在项目的入口文件./Public/shop/index.php进行注册。

// $ vim ./Public/shop/index.php//装载你的接口DI()->loader->addDirs('Shop');DI()->request = new Common_Request_Ch1();复制代码

这样,除了原来的请求方式,还可以这样请求接口服务。

表2-5 使用?r=Class/Action格式定制后的方式

原来的方式

现在的方式

/shop/?service=Default.Index

?r=Default/Index

/shop/?service=Welcome.Say

?r=Welcome/Say

这里有几个注意事项:

除了在框架编写代码实现其他接口服务的传递方式外,还可以通过Web服务器的规则Rewirte来实现。假设使用的是Nginx服务器,那么可以添加以下Rewrite配置。

    if ( !-f $request_filename )
    {
        rewrite ^/shop/(.*)/(.*) /shop/?service=$1.$2;
    }复制代码

重启Nginx后,便可得到以下这样的效果。

表2-6 使用Nginx服务器Rewrite规则定制后的方式

原来的方式

现在的方式

/shop/?service=Default.Index

/shop/default/index

/shop/?service=Welcome.Say

/shop/welcome/say

此外,还有第三种指定传递方式的方案。使用第三方路由规则类库,然后通过简单的项目配置,从而实现更复杂、更丰富的规则定制。这部分后面会再进行讨论。

小结一下,不管是哪种定制方式,最终都是转换为框架最初约定的方式,即:?service=Class.Action

更自由的数据源

何为数据源?这里说的数据源是指PhalApi从客户端接收参数的来源,主要分为三种:主数据源、备用数据源、其他数据源。下面分别对这三种数据源进行介绍,以及如何扩展定制。

主数据源是指作为默认接口参数来源的数据源,即在配置了接口参数规则后,PhalApi会比主数据源提取相应的参数从而进行验证、检测和转换等。默认情况下,使用$_REQUEST作为主数据源,即同时支持$_GET和$_POST参数。但在其他场景如单元测试,或者使用非HTTP/HTTPS协议时,则需要定制主数据源,以便切换到其他的途径。

指定主数据源有两种方式,一种是简单地在初始化DI()->request请求服务时通过PhalApi_Request的构造函数参数来指定。例如,假设要强制全部参数使用POST方式,那么可以:

DI()->request = new PhalApi_Request($_POST);复制代码

又或者,在单元测试中,我们经常看到这样的使用场景:

// 模拟测试数据$data = array(...);DI()->request = new PhalApi_Request($data);复制代码

这样,就可以很方便模拟构造一个接口服务请求的上下文环境,便于模拟进行请求。

另一种方式是稍微复杂一点的,是为了应对更复杂的业务场景,例如出于安全性考虑需要对客户端的数据包进行解密。这时需要重写并实现PhalApi_Request::genData($data)方法。其中参数$data即上面的构造函数参数,未指定时为NULL。

c51c866ffa1ab3457f2021e8bbdbcc1.jpg


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

上一条:章丘企业微信公众号小程序开发公司、章丘企业网页设计方案、章丘做网站开发价格、章丘微信公众号制作运营报价明细表、章丘网站设计公司费用、章丘网站推广大概需要多少钱
下一条:如皋网站制作【如皋网站优化】如皋建网站、如皋微信公众号运营、如皋网页设计、如皋微信小程序商城
网站制作
小程序制作
网站优化
网站开发
400电话办理
网络推广
网站建设
网店装修
微信公众号开发
网页设计
网络公司
域名企业邮箱
服务器空间
网站案例报价
百科问答
编辑排版美工
App软件开发
百度推广
代运营托管
logo设计
网络全网营销
网站备案
网站定制
小程序开发公司
首页
电话
立即预约