澳门新葡萄京官网首页 1

澳门新葡萄京官网首页PHP的神经网络 PHP-ML库 PHP 的机器学习库

澳门新葡萄京官网首页 1

通过前面4章教程的学习,我们已经完成了APP接口开发环境的搭建工作。「PHP开发APP接口实战000」项目需求分析说明书「PHP开发APP接口实战001」开发环境搭建「PHP开发APP接口实战002」Phalcon入口文件「PHP开发APP接口实战003」自定义异常处理示例代码下载链接:
密码:qj7n

前面,我们已经准备好 Output 类,本章接着讲如何调用 Output
类来实现基础示例接口。「PHP开发APP接口实战004」响应参数基础说明「PHP开发APP接口实战005」基础示例接口的实现一

BaseController
类是所有接口控制器的基类。主要实现验证签名,身份认证等一些公共操作。

PHP-ml
是 PHP
的机器学习库。同时包含算法,交叉验证,神经网络,预处理,特征提取等。 

本章主要讲解接口响应参数的基本意义。

澳门新葡萄京官网首页,在 /app/controllers 目录下创建一个基类控制器
BaseController.php,基类控制器继承自PhalconMvcController
并创建一个初始化函数 initialize()

PHP-ML
要求 PHP >= 7.0。
示例
简单的分类示例:

参数 类型 是否必填 描述 示例值
status Int 状态:1 成功, 2 失败 1
value String 用于返回字符串数据 Hello World.
item Object 用于返回对像数据 {"id":"1","name":"item1"}
list Object 用于返回列表数据
error_code Int 错误代码:500 系统错误, 300 验证错误
error_message String 错误信息
<?phpuse PhalconMvcController;class BaseController extends Controller{ // 初始化的函数 public function initialize() { }}
use PhpmlClassificationKNearestNeighbors;
$samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];
$labels = ['a', 'a', 'a', 'b', 'b', 'b'];

$classifier = new KNearestNeighbors();
$classifier->train($samples, $labels);

$classifier->predict([3, 2]);
  1. 返回字符串数据接口示例调用接口地址:

PhalconMvcController 中提供了初始化函数
initialize(),它是最先执行的,并且会优先于任何控制器的其他action。参考资料

github项目地址:

  1. 在 /app/controllers 目录下创建控制器
    IndexController.php,继承BaseController, 并创建初始化函数
    initialize()

文章由爱资料原创本文地址:

{ "status": "1", "value": "Hello World."}

  1. 返回对像数据接口示例调用接口地址:
<?phpclass IndexController extends BaseController{ // 初始化的函数 public function initialize() { parent::initialize(); }}

  1. 添加函数 indexAction(),
    实现返回字符串数据接口示例。接口地址:
{ "status": "1", "item": { "id": "1", "name": "item1" }}

应用场景:通常用于返回实体对象数据。如:用户个人信息。

 public function indexAction() { Output::instance($this->response)->success('Hello World.'); }
  1. 返回列表数据接口示例调用接口地址:

注意: $this->responsePhalconMvcController
内置的控制器响应实例参数。这里将其传给了 Output 类。

接口返回结果:

{ "status": "1", "list": { "page": "1", "limit": "10", "count": "100", "items": [ { "id": "1", "name": "item1" }, { "id": "2", "name": "item2" }, { "id": "3", "name": "item3" } ] }}
{ "status": "1", "value": "Hello World."}
参数 类型 是否必填 描述 示例值
page Int 当前页码 1
limit Int 分页大小, 0 表示返回所有数据 10
count Int 总记录条数 100
items Array 对象数组
  1. 添加函数 itemAction(), 实现返回对象数据接口示例。接口地址:

应用场景:通常用于返回分页列表数据。如: 行程列表。

  1. 返回错误数据接口示例调用接口地址:
 public function itemAction() { $item = ['id' => 1, 'name' => 'item1']; Output::instance($this->response)->success$item); }

这里先创建了一个数组对象 $item = ['id' => 1, 'name' => 'item1'],再将
$item 强转为 Object, 并传给函数 success()

{ "status": "0", "error_code": "300", "error_message": "错误来啦"}

注意:必须将数组对象强转为 Object 。接口才能正常返回对象数据。

应用场景:通常用于系统错误或接口调用失败。如:登陆失败。

接口返回结果:

  1. 返回H5页面接口示例调用接口地址:
{ "status": "1", "item": { "id": "1", "name": "item1" }}

  1. 添加函数 listAction(), 实现返回列表数据接口示例。接口地址:
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>This is main layout!</h1> <h2>This is the "index" controller layout!</h2> <h3>This is show view!</h3> <p>I have received the parameter 测试</p> </body></html>

应用场景:通常用于返回内容经常更改,布局灵活的协议内容或活动页面。

注意:JSON接口响应数据,INT型参数也加有引用,如 {“status”:
“0”},APP开发中,按字符串接收,再根据实际需要做数据类型转换。

 public function listAction() { $items = [ ['id' => 1, 'name' => 'item1'], ['id' => 2, 'name' => 'item2'], ['id' => 3, 'name' => 'item3'], ]; $list = [ 'page' => 1, 'limit' => 10, 'count' => 3, 'items' => $items, ]; Output::instance($this->response)->success; }

下一章,将讲解这些示例接口的具体实现。

列表数据接口主要用于返回列表数据,如果有分页,需要返回
page 当前页码 , limit 分布大小, count 数据总条数 等分页参数。

接口返回结果:

{ "status": "1", "list": { "page": "1", "limit": "10", "count": "3", "items": [ { "id": "1", "name": "item1" }, { "id": "2", "name": "item2" }, { "id": "3", "name": "item3" } ] }}
  1. 添加函数 errorAction(), 实现返回错误数据接口示例。接口地址:

 public function errorAction() { Output::instance($this->response)->fail('错误来啦', 300); }

接口返回结果:

{ "status": "0", "error_code": "300", "error_message": "错误来啦"}
  1. 添加函数 exceptionAction(),
    自动捕获异常并返回异常信息接口示例。接口地址:

在前面的章节里我们已经讲了自定异常处理方法。「PHP开发APP接口实战003」自定义异常处理

 public function exceptionAction() { throw new Exception; }

为了演示,这里直接抛出异常。我们还可以结合
try{} catch{}来处理异常信息。

接口返回结果:

{ "status": "0", "error_code": "300", "error_message": "异常消息", "track": "D:\Fox\Demo\API\app\controllers\IndexController.php, line : 47"}

<?phpclass IndexController extends BaseController{ // 初始化的函数 public function initialize() { parent::initialize(); } public function indexAction() { Output::instance($this->response)->success('Hello World.'); } public function itemAction() { $item = ['id' => 1, 'name' => 'item1']; Output::instance($this->response)->success$item); } public function listAction() { $items = [ ['id' => 1, 'name' => 'item1'], ['id' => 2, 'name' => 'item2'], ['id' => 3, 'name' => 'item3'], ]; $list = [ 'page' => 1, 'limit' => 10, 'count' => 3, 'items' => $items, ]; Output::instance($this->response)->success; } public function errorAction() { Output::instance($this->response)->fail('错误来啦', 300); } public function exceptionAction() { throw new Exception; }}

示例代码下载:链接: 密码:mmt7

发表评论

电子邮件地址不会被公开。 必填项已用*标注