ФорумПрограммированиеPHP для идиотов → класс registry применительно к мемкешу

класс registry применительно к мемкешу

  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 25 января 2010 г. 13:33, спустя 1 минуту 17 секунд


    как считаете, есть ли смысл на своих проектов использовать pdo или adodb, чтоб в будущем поменять мускул на более производительную и менее затратную по ресурсам дб( не знаю какую) и оправдываются ли ресурсы затраченные на эти библиотеки
    нет, есть смысл писать свой билдер запросов, но все равно его необходимо потом "дописывать"/расширять под определенную дб.
    Спустя 74 сек.
    и писать его нужно с учетом всех бд которые будут использоваться… т.е. отказываться от каких то навороченых функций бд, которых может и не быть в других бд.
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 25 января 2010 г. 13:34, спустя 37 секунд


    soulgarden, нельзя дважды создать инстанции одного класса

    по русски

    нельзя вот такое провернуть

    $obj1 = new MyObject();
    $obj2 = new MyObject();

    при хорошей реализации такая "попытка" тебя прямым текстом нахуй отправит :)



    я хочу сделать глобальными класс мемкеша + добавить в конструкт подключение к мемкешу и класс пользователя. а 2 раза вызывать один и тот же объект я вроде бы не собираюсь.
    но я пиздец как запутался. надо сделать 2 синглтона, один для мемкеша с конструктом, другой для юзверей. либо один, но с параметр передавать, какой из классов чтоб знать подключать мемкеш или нет. хуевая реализация на мой взгляд
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 января 2010 г. 13:38, спустя 4 минуты 16 секунд

    парни, я иногда хуею с нашего языка: билдер, юзать, апдейтить, селекти, чмодни, синглтон, билдни, рефрешни, дб, мержни,

    бля вот так всегда, когда собираюсь написать чтото подобное, в голове сотни слов, начинаю писать, все пиздец, все вылетают :D

    пиздец) ну вы мою идею поняли наверное, в общем тяжело нам с людьми общаться
    Спустя 44 сек.

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

    LIMIT from, to

    ага, mario ;)
    Спустя 80 сек.
    soulgarden, ты даже мне мозг перевернул … нарисуй что хочешь
    Сапожник без сапог
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 25 января 2010 г. 13:40, спустя 1 минуту 24 секунды


    парни, я иногда хуею с нашего языка: билдер, юзать, апдейтить, селекти, чмодни, синглтон, билдни, рефрешни, дб, мержни,

    бля вот так всегда, когда собираюсь написать чтото подобное, в голове сотни слов, начинаю писать, все пиздец, все вылетают :D

    пиздец) ну вы мою идею поняли наверное, в общем тяжело нам с людьми общаться
    Спустя 44 сек.

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

    LIMIT from, to

    ага, mario ;)
    по первому - согласен полностью, но таковы мы есть. Что делать? А не чего, какой толк будет если я и ты перейдешь на "правильный" язык, а остальные не перейдут, то мы будет понимать только друг друга, для этого есть "корпоративная политика", "групповая политика" общения.
    по второму - ;)
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 25 января 2010 г. 13:43, спустя 3 минуты 26 секунд


    soulgarden, тебе стоит сначала пхп выучить а потом базы по производительности сравнивать


    я не хочу потом всь проект свой переписывать, надо заранее думать.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 января 2010 г. 13:45, спустя 2 минуты 24 секунды



    soulgarden, тебе стоит сначала пхп выучить а потом базы по производительности сравнивать


    я не хочу потом всь проект свой переписывать, надо заранее думать.
    мускуль учи :)
    Сапожник без сапог
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 25 января 2010 г. 13:57, спустя 11 минут 58 секунд

    LIMIT from, to

    soulgarden, ты даже мне мозг перевернул … нарисуй что хочешь


    ага, сейчас в контакте на стене нарисую и скриштон сделаю :D

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

    есть еще один класс, который нужно сделать глобальным. это класс мемкеша. это нужно для того, чтобы в каждом модуле не приходилось создавать объект мемкеша. то есть я хочу создать его один раз, а потом обращаться к его методам из любой точки сайта, из любого класса. но есть отличие одно от класса пользователей. я хочу чтобы при каждом обращении к объекту мемкеша подключение к серверу мемкеша создавалось автоматически, через конструктор. вот так.

    я могу и все модули засунуть в один класс модулей, но структура сайта потеряется нынешняя и трудно будет разобраться в 600 строк кода. в итоге мне нужно сделать глобальными 2 разных класса, но для одного из них реализовать конструктор, подключающий к серверу мемкеша. понятно?
    Спустя 43 сек.



    soulgarden, тебе стоит сначала пхп выучить а потом базы по производительности сравнивать


    я не хочу потом всь проект свой переписывать, надо заранее думать.
    мускуль учи :)

    я его не прекрасно, но очень хорошо знаю.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 января 2010 г. 14:05, спустя 7 минут 15 секунд

    ебана, прости я чето не воспринимаю в виде текста столько информации, без 100 грам как говорится )))))))
    Спустя 29 сек.
    я его не прекрасно, но очень хорошо знаю.
    на палцах можешь перечислить что знаешь? :)
    Сапожник без сапог
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 25 января 2010 г. 14:09, спустя 4 минуты 17 секунд

    да стандартный набор. всевозможные объединения таблиц, всякие функции, ну и совсем обычные вещи, условия. сумничаю (как ты), типа столько всего знаю, но мысли разбежались.

    ты не понимаешь, а я вообще не знаю как делать :( разберусь
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 января 2010 г. 14:09, спустя 31 секунду

    регистри используй ..

    везде в модулях != мемкешу

    $cache = Registry::get("mem");

    и все, а в самом начале скриптов (init.php)

    Registry::put("mem", Memcache::instance());

    Сапожник без сапог
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 25 января 2010 г. 14:19, спустя 9 минут 59 секунд

    спасибо друг.

    еще вопрос когда-то был. после запроса к бд доступ к данным выглядит как-то так: $this->post['id'], а как представить это в удобочитаемом виде, как переменную класса?

    можно вручную присваивать $this->id = $this->post['id'], но если таких переменных 20?

    я хирил и делал так



    __get($key) {

    return $this->post['$key'];

    }


    а как нормально сделать? вот у меня штук 10 таких тупых вопросов, которые мне не давали всё время покоя и на которые нигде не находил ответа
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 января 2010 г. 14:30, спустя 10 минут 33 секунды

    ахуенно ты хуярил :)

    __get($key) {

    return $this->post['$key'];

    }
    не, реально ахуеннО!
    Спустя 27 сек.
    post[$key];

    в ' - имена переменных не разрешаются)
    Спустя 39 сек.
    реально я както так же бы хуярил
    __get($key) { 
    return $this->post[$key];
    }
    Сапожник без сапог
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 25 января 2010 г. 14:35, спустя 4 минуты 51 секунду

    ну я не думаю что нормальные люди так делают, наверно есть красивый способ :D
    Спустя 141 сек.
    и при такой реализации по идее не получится обратиться к обычным переменным с закрытым доступом. хотя получалось.
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 25 января 2010 г. 15:39, спустя 1 час 4 минуты 27 секунд

    н

    регистри используй ..

    везде в модулях != мемкешу

    $cache = Registry::get("mem");

    и все, а в самом начале скриптов (init.php)

    Registry::put("mem", Memcache::instance());




    можешь подробней? стал разбирать и не понял. видно не до конца понимаю синглтон и регистри. или 3 часа ноччи сказывается
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 25 января 2010 г. 15:50, спустя 10 минут 19 секунд


    н

    регистри используй ..

    везде в модулях != мемкешу

    $cache = Registry::get("mem");

    и все, а в самом начале скриптов (init.php)

    Registry::put("mem", Memcache::instance());




    можешь подробней? стал разбирать и не понял. видно не до конца понимаю синглтон и регистри. или 3 часа ноччи сказывается
    они самые :)
    ну есть скрипт init.php он выполнятся грубо говоря один из первых скриптов при обращении к приложению. Вот в нем ты Регистрируешь мемкеш как одиночку. Потом когда тебе его необходимо вызвать используешь $cache = Registry::get("mem");
    Вот мы получили из registry класс мемкеша.
    Спустя 297 сек.
    естественно все остальное (класс registry,singleton) тут разобрали

Пожалуйста, авторизуйтесь, чтобы написать комментарий!