Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ООП PHP + Сессии 
V
    Опции темы
Zorak
Дата 8.8.2014, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Всем здраствуйте. Честно говоря гуглил, так как материала много по этой теме, но ниче толком для себя не нашол. И так: я решил заново найти велосипед и написать собственный класс для собственных нужд для работы с сессиями... Вот и накидал за 5 минут:
Код

class Session
{
    public function __construct()
    {
        session_set_save_handler
        (
            array(&$this, 'SessOpen'),
            array(&$this, 'SessClose'),
            array(&$this, 'SessRead'),
            array(&$this, 'SessWrite'),
            array(&$this, 'SessDestroy'),
            array(&$this, 'SessGC')
        );
        session_start();
    }

    private function SessOpen()
    {
        return true;
    }

    private function SessClose()
    {
        return true;
    }

    private function SessRead()
    {
        return true;
    }

    private function SessWrite()
    {
        return true;
    }

    private function SessDestroy()
    {
        return true;
    }

    private function SessGC()
    {
        return true;
    }
}


В итоге Ворнинг: 
Код

Warning: Invalid callback Session::SessWrite, cannot access private method Session::SessWrite() in Unknown on line 0

Warning: Unknown: Failed to write session data (user). Please verify that the current setting of session.save_path is correct (D:\xampp\tmp) in Unknown on line 0

Warning: Invalid callback Session::SessClose, cannot access private method Session::SessClose() in Unknown on line 0


В чем суть ? Спасибо

З.Ы. Если я вызываю session_start() где нибудь на странице а не в классе то все ок.


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
baldina
Дата 8.8.2014, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



Цитата(Zorak @  8.8.2014,  16:50 Найти цитируемый пост)
cannot access private method Session::SessWrite()

все же ясно: нет доступа к приватному члену. вы не сами его вызываете, а даете вызывать кому-то, кто не является функцией-членом класса

можно придумать такой костыль
Код

public function __construct()
    {
      $delegate = function ($member_fnc) {
        return function () use ($member_fnc) {
          call_user_func_array(array($this,$member_fnc), func_get_args());
        };
      };
        session_set_save_handler
        (
            $delegate ('SessOpen'),
            $delegate ('SessClose'),
            $delegate ('SessRead'),
            $delegate ('SessWrite'),
            $delegate ('SessDestroy'),
            $delegate ('SessGC')
        );
        session_start();
    }



а вообще велосипед странноватый)))
PM MAIL   Вверх
Zorak
Дата 19.8.2014, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Да, дошел до консенсуса.. большое спасибо baldina.....


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0413 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.