Могу ли я уничтожить() библиотечный объект в CodeIgniter 2.1?
Я использую фреймворк CodeIgniter 2.1 PHP. У меня есть файл библиотеки, который управляет объектом пользователя. Объект ссылается на конкретную запись пользователя в моей базе данных. Я хочу иметь возможность удалить эту запись и уничтожить объект, чтобы к нему нельзя было получить ошибочный доступ после его уничтожения. Обычно используется функция __destruct()
, но после моего первоначального исследования я не уверен, что смогу использовать эту функцию в объекте библиотеки CI. Возможно ли это? Есть ли причины, по которым я не должен использовать функция __destruct()
?
1 ответ:
Когда вы загружаете библиотеку, она расширяется на контроллер (затем на
CI_base
и затем наCI_loader
). CI_Loader длится бесконечно (вплоть до конца скрипта) и не освобождает свои указатели, поэтому__destruct
никогда не будет вызван.Я предлагаю вручную включить файл, чтобы вы могли использовать классы PHP по своему назначению.
get_instance()
уже доступен, как только контроллер доступен, так что у вас все еще есть доступ к CI, если вы поместите include в свой класс выше класса контроллера, и вы не будете ограничено$this->load->library();