Welcome Guest, Not a member yet? Register   Sign In
Can I destroy Codeigniter library?
#1

(This post was last modified: 03-03-2023, 04:10 AM by CarmosKarrvx.)

I'm wondering if there's a way to destroy an instance of a Codeigniter library. I want to free up RAM memory while running a large script, so I need to find a developerbook chatrandom way to destroy the library instance. Is it possible to do something like this in the code:
$this->load->library('my_library');
/**
Code goes here
**/
$this->my_library->destroy_instance();

I'd really appreciate any help on this matter.
Reply
#2

Unless you clean up the html code in your posts no one will bother to try and help you!
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply
#3

There is no built-in method to destroy loaded library object. But you can do it by extending Loader class. And then load and unload library from that class. Here is my sample code ..

application/libraries/custom_loader.php

class Custom_loader extends CI_Loader {
public function __construct() {
parent::__construct();
}

public function unload_library($name) {
if (count($this->_ci_classes)) {
foreach ($this->_ci_classes as $key => $value) {
if ($key == $name) {
unset($this->_ci_classes[$key]);
}
}
}

if (count($this->_ci_loaded_files)) {
foreach ($this->_ci_loaded_files as $key => $value)
{
$segments = explode("/", $value);
if (strtolower($segments[sizeof($segments) - 1]) == $name.".php") {
unset($this->_ci_loaded_files[$key]);
}
}
}

$CI =& get_instance();
$name = ($name != "user_agent") ? $name : "agent";
unset($CI->$name);
}
}
In your controller ..

$this->load->library('custom_loader');
// To load library
$this->custom_loader->library('user_agent');
$this->custom_loader->library('email');

// To unload library
$this->custom_loader->unload_library('user_agent');
$this->custom_loader->unload_library('email');
Hope it will be useful.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB