【问题标题】:PHP REST based web service providing currency conversion functions基于 PHP REST 的 Web 服务,提供货币转换功能
【发布时间】:2011-12-30 14:07:23
【问题描述】:

我正在尝试构建一个提供货币转换功能的基于 REST 的 Web 服务。

请注意,我是 OO PHP 的初学者,所以这对我来说是全新的并且相当混乱。

我希望服务接收编码为:

http://www.mysite.com/conv/?amnt=7.15&from=GBP&to=USD

我希望它在浏览器中以 XML 消息的形式返回结果。显然也需要考虑错误处理。

我已阅读大量在线教程并了解我将使用 GET 来实现我想要实现的目标。最让我困惑的是如何构造我的 PHP 文件(OO 格式)以及如何在默认索引页面上实际输出这些结果。

【问题讨论】:

    标签: php rest get currency


    【解决方案1】:

    这里需要 OOP 做什么?

    仅当它是一个自学项目时。我认为您应该使用类似 MVC 模式的东西,那里有很多文档,只需 (here) 将该模型转换为 OOP php 类,然后将其以如下方式进行:

    • 库/
      • core/ - 控制器、请求、响应等核心类
      • hepler/ - 分配 hepler 函数文件的位置
    • config/ - 为您的数据库连接和其他配置进行配置
    • model/ - 你的 OOP 模型
    • view/ - html 模板
    • web/ - DOCUMENT_ROOT,其中分配了 css、js、图像和您的控制器访问点
    • log/ - 日志目录,如果你需要的话
    • cache/ 不过,如果你需要的话。

    文件,为了方便浏览应该命名为*.class.php,如果有继承,它会是*.base.class.php,或者*.module.class.php

    基本规则是:

    • 每个文件一个类
    • 如果您使用命名空间(推荐),那么您应该以与命名空间相同的方式分配文件,以便轻松自动加载 (spl_register_autoload())
    • 每个功能的独立库

    在您的索引文件中只有 3-4 行,您在其中构建项目根类(控制器),然后在控制器内部处理请求,然后转到您请求的模块,然后转到查看,您的系统输出结果的位置。

    Symfony 等 MVC 框架对 OOP 有很大的覆盖,你应该看看那里。

    【讨论】:

    • 谢谢。这在结构方面有很大帮助。我也很困惑我想要实现的目标需要哪些类。我猜第一类是检测它是否是 GET 请求,如果消息编码正确,则运行货币转换功能。我该如何布局以及如何将错误管理集成到其中?抱歉,我对此很陌生,所以请原谅我的问题太简单了。
    • 基础类必须是Controller(controller.class.php)、Request(request.class.php)、Response(response.class.php)。在入口点你应该创建 $controller = new Controller('index');在 __construct() 方法中,您需要初始化一个 Request 类的实例。会有一个方法,names is($type),它可以回答这个请求是什么类型的问题。 howto 如果一切正常,请将 $_GET var 放入本地类存储中以使用。您还需要方法 get($what) 来获取参数。
    【解决方案2】:

    作为 Restler(基于 PHP 的 RESTful API 服务器)框架的作者,我建议您尝试使用 Restler。它采用不同且更简单的方法,完全符合您的要求。它将您的类的公共方法公开为 API。

    BMI Example 和其他活生生的例子应该让你立即开始

    【讨论】:

      猜你喜欢
      • 2014-07-02
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 2012-01-22
      相关资源
      最近更新 更多