Могу ли я уничтожить() библиотечный объект в 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();