📜  Codeignitor 中的库

📅  最后修改于: 2022-05-13 01:56:18.962000             🧑  作者: Mango

Codeignitor 中的库

任何类型的框架都是可重用代码的集合,这些代码分为类,所以如果我们谈论 OOPS 或 MVC,我们会在类中完成所有任务,例如电子邮件发送、表单验证或分页类工作。这些类的集合在 Codeignitor 中称为库。 Codeignitor 中有很多库可以在它的文档 Codeignitor Libraries 中找到,并且可以根据要求使用。所以如果我们需要发送一封电子邮件,我们不需要从头开始创建整个函数,我们可以使用它的电子邮件库来实现,其他任务也是如此。现在让我们看看如何在 CI 中使用库。

加载库以使用它。创建控制器用户。 PHP然后使用下面的代码发送电子邮件。

控制者:用户。 PHP

load->library('email');
  
        // Use the inbuilt methods to send an email
        $this->email->from('abc@gmail.com', 'your name');
        $this->email->to('xyz@gmail.com');
        $this->email->subject('Test');
        $this->email->message('Welcome to GeeksforGeeks');
        $this->email->send();
    }    
}
?>

如果我们需要加载多个库,我们可以创建一个数组,然后在该数组中定义所有库名称。

$this->load->library(array('form_validation', 'email'));

自定义库:我们看到 CI 已经有很多内置库。如果我们需要一些 CI 库中没有的功能,那么我们可以创建自己的自定义库。让我们看看如何在 CI 中创建自定义库。
系统文件夹中提供了内置库,但需要在 application/libraries 文件夹中创建自定义库。我们需要记住,文件名应该与类名相同,文件名和类名的第一个字母也应该大写。创建文件测试。应用程序/库文件夹中的PHP文件。下面是在我们的自定义库中创建功能的示例。

自定义库:测试。 PHP


自定义库可以像控制器中的内置库一样使用。所以在我们的用户中。 PHP控制器使用下面的代码来检查这一点。

控制者:用户。 PHP

load->library('test');
    
        // Use the function of custom library
        $this->test->abc();
    }    
}
?>

输出:

Welcome to GeeksforGeeks

扩展库:在本节中,我们将了解如何扩展 CI 的内置库。就像我们为自定义库所做的一样,它也创建在同一文件夹应用程序/库中。现在我们需要记住,我们需要在为我们的库文件命名时添加MY_前缀,还要使用extends关键字来继承电子邮件库的所有属性。因此,创建一个文件MY_Email. PHP在 application/libraries 文件夹中并使用下面的代码。

扩展库:MY_Email。 PHP


扩展电子邮件库后,我们可以在控制器中使用它的附加函数“测试”。所以在控制器用户中。 PHP使用下面的代码从电子邮件库中调用“测试”函数。

控制者:用户。 PHP

load->library('email');
          
        // Call the function 
        $this->email->test();
   }    
}
?>

输出:

This is test function for extended Email library

到现在为止,扩展我们的库并添加我们自己的功能,现在如果我们想完全覆盖内置库函数并且不想使用内置库中的任何函数,那么我们也可以这样做。我们只需要在应用程序/库中创建一个文件名为电子邮件的文件。 PHP (或任何需要覆盖的库),然后编写自己的函数。这里我们不需要使用 extends 关键字。下面是代码……

覆盖的库名称:电子邮件。 PHP


加载这个库并调用函数将与我们之前在控制器用户中所做的相同。 PHP
输出:

This is test function for overridden Email library

get_instance():Codeignitor创建一个超级对象,然后创建子对象。我们使用$this关键字来访问对象。除了控制器、模型和视图,我们不能使用$this关键字。因此,如果我们需要在自定义库中加载另一个内置帮助程序或库, $this将不起作用,因为这些自定义库超出了超对象的范围。为了解决这个问题,我们需要在我们的自定义库中使用 get_instance() 方法。首先,我们需要在变量中获取超级对象的实例。下面是我们的自定义库获取原始 codeignitor 对象引用的行。

$CI =& get_instance();

我们需要注意的是,我们使用“&”而不是创建副本来获取原始 codeignitor 对象的引用或地址。之后,我们可以加载任何帮助程序、库或模型。下面是自定义库测试的完整代码。 PHP

自定义库:测试。 PHP

load->helper('array');
   }
}
?>