Могу ли я __destruct () библиотечный объект в CodeIgniter 2.1? - PullRequest
2 голосов
/ 23 января 2012

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

1 Ответ

3 голосов
/ 23 января 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...