Codeigniter 中类中的 API


api in a class in codeigniter

class Api extends CI_Controller {
   public function index()
   {
        show_error("You are not authorized to access this page", 401);
   }

我有一个 api 类class Api extends CI_Controller和另一个
class myproject extends,现在如果要在MyProject类中使用API类的功能。我是否必须创建一个 API 类的对象,或者只是使用 parent::API 类扩展 MyProject 类。请帮助我,因为我不擅长哎呀。

详细信息 - 我做了一个类"类MyProject扩展ci_controller",它具有用于用户注册和登录应用程序的不同功能。 使用单个控制器都可以正常工作。但是现在想使用一个 api 文件,它具有登录功能。如何从"类我的项目"调用 API 文件中的这些函数

您可以创建一个帮助程序,例如窗体并帮助程序并使用您的方法。然后你可以加载它:

$this->load->helper('api');

首先,这看起来更像是一个软件设计问题,而不是一个真正的代码问题。

CodeIgniter 基于 MVC 概念,控制器仅用于构建页面。您可能应该为所有 API 功能创建一个库,并让控制器调用该库并将数据转换为 JSON 或您希望转换为的任何内容。

对于我自己,我应用一个简单的规则:切勿编写/调用不生成任何形式的输出的控制器方法。

我建议您坚持使用CodeIgniter的编码方式,而不是试图避免它们。

你只需要扩展 API 类,如

class Myproject extends Api { ... }

但是还有一些其他问题,例如include_once("Api.php") ,例如,在 Myproject.php 文件中,以便子类可以"看到"超类声明。 codeigniter 论坛上的这个线程讨论了这些问题(很抱歉谷歌网络缓存版本,但论坛目前已关闭维护(。

首先,除非继承控制器,否则不能在控制器中调用控制器的函数。

最好

将 API 类创建为库,而不是控制器。

如果您有一些限制,只能将其用作控制器,则通过 curl 调用使用这些 API。

但最好的方法是将它们放在帮助程序中,如果您仅从自己的服务器访问它们。