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

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

  • Абырвалг

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

    Spritz 25 января 2010 г. 23:36, спустя 3 минуты 12 секунд


    на тебе простой код


    class MyClass{
    public function __constructor(){
    /*тут ничего писать не надо*/
    }
    public function myMethod($id){
    return Database::instance()->fetch('SELECT id, name, mail FROM :users WHERE id=?i', $id);
    }
    }

    class Database {
    $driver;
    public function execute($sqlQuery)
    {
    /*магия*/
    // а тут у нас будет
    $this->driver->execute($sqlQuery)

    return $result;
    }

    class Database_Driver_Adodb implements Database_Driver_Interface
    {
       public function execute($sqlQuery);
    }



    напиши мне метод который получит из БД пользователя не ставя класс MyClass в зависимость от класса Database
    потому что я потом захочу поменять Database на Adodb // меняешь драйвер и используешь Adodb
  • Абырвалг

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

    Spritz 25 января 2010 г. 23:44, спустя 7 минут 59 секунд

    слив… Я не знал, что такое Adodb а сейчас поискал (думал, что это аналог PDO или MySQLi). Ну такой вариант тоже ж возможен, да?
  • Абырвалг

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

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

    Ага, я оказывается еще не знал что PDO поддерживает много разных баз.
  • soul

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

    Spritz 26 января 2010 г. 0:02, спустя 4 минуты 24 секунды


    soulgarden,

    какое тогда отличие синглтона от регистри, кроме как в реализации?

    синглтон позволяет получить только один инстанс


    то есть если я хочу 2 объекта глобальными сделать мне не удастся и надо регистри юзать? или в смысле что нельзя два экземпляра одного и того же объекта сделать?
  • phpdude

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

    Spritz 26 января 2010 г. 0:11, спустя 8 минут 31 секунду

    Спустя 38 сек.
    то есть если я хочу 2 объекта глобальными сделать мне не удастся и надо регистри юзать? или в смысле что нельзя два экземпляра одного и того же объекта сделать?
    нельзя две инстанции одного класса создать при сингтоне
    Сапожник без сапог
  • Абырвалг

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

    Spritz 26 января 2010 г. 0:12, спустя 1 минуту 5 секунд

    Но если очень хочется, то можно:

    Database::instance('db1');
    Database::instance('db2');
  • adw0rd

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

    Spritz 26 января 2010 г. 0:13, спустя 58 секунд

    Правительство в расход!
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

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

    Spritz 26 января 2010 г. 0:15, спустя 1 минуту 56 секунд


    Правительство в расход!
    +1
    Сапожник без сапог
  • mario

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

    Spritz 26 января 2010 г. 0:22, спустя 6 минут 35 секунд


    Правительство в расход!
    +1
    PS думаю тут щас фсб уже шуршат во всю :))))
    Спустя 13 сек.
    черт не успел первым :)
    Спустя 146 сек.
    phpdude, а ведь то что на плакате написано правда…
    Хотя так всегда было в истории и будет. Власть меняется сначала жесткая, потом раздолбайная подхватившая какие то "ноухау"…
  • soul

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

    Spritz 26 января 2010 г. 0:22, спустя 34 секунды

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

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

    Spritz 26 января 2010 г. 0:27, спустя 4 минуты 26 секунд

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

    по русски

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

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

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

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

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

    Spritz 26 января 2010 г. 0:28, спустя 1 минуту 23 секунды

    soulgarden, эм на сколько я понимаю понятие синглотана, как раз и есть реализация что бы у класса был только один экземпляр, и предоставлять к нему глобальную точку доступа.
  • soul

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

    Spritz 26 января 2010 г. 0:29, спустя 43 секунды

    как считаете, есть ли смысл на своих проектов использовать pdo или adodb, чтоб в будущем поменять мускул на более производительную и менее затратную по ресурсам дб( не знаю какую) и оправдываются ли ресурсы затраченные на эти библиотеки
  • phpdude

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

    Spritz 26 января 2010 г. 0:30, спустя 1 минуту 10 секунд


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

    а знаешь почему поржал? по простой причине - запросы один хуй переписать придется почти все, исключая конечно select * from table where id=
    Сапожник без сапог
  • Trej Gun

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

    Spritz 26 января 2010 г. 0:32, спустя 2 минуты 9 секунд

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

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