Могу ли я уничтожить() библиотечный объект в CodeIgniter 2.1?


Я использую фреймворк CodeIgniter 2.1 PHP. У меня есть файл библиотеки, который управляет объектом пользователя. Объект ссылается на конкретную запись пользователя в моей базе данных. Я хочу иметь возможность удалить эту запись и уничтожить объект, чтобы к нему нельзя было получить ошибочный доступ после его уничтожения. Обычно используется функция __destruct(), но после моего первоначального исследования я не уверен, что смогу использовать эту функцию в объекте библиотеки CI. Возможно ли это? Есть ли причины, по которым я не должен использовать функция __destruct()?

1 2

1 ответ:

Когда вы загружаете библиотеку, она расширяется на контроллер (затем на CI_base и затем на CI_loader). CI_Loader длится бесконечно (вплоть до конца скрипта) и не освобождает свои указатели, поэтому __destruct никогда не будет вызван.

Я предлагаю вручную включить файл, чтобы вы могли использовать классы PHP по своему назначению. get_instance() уже доступен, как только контроллер доступен, так что у вас все еще есть доступ к CI, если вы поместите include в свой класс выше класса контроллера, и вы не будете ограничено $this->load->library();