ФорумПрограммированиеПыхнуть хотите?Готовые решения → Велосипедные библиотеки

Велосипедные библиотеки

  • Абырвалг

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

    Spritz 9 мая 2010 г. 3:34, спустя 5 минут 29 секунд

    дело не в том, что нужно, а в том, что я не хочу напороться на ошибку "ololo, sasi bldjad, nested transactions detected!". {+++70+++} ну и контроллировать каждый раз isTransactionStarted желания тоже нет
  • Абырвалг

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

    Spritz 9 мая 2010 г. 3:54, спустя 20 минут 24 секунды

    Костян, вот смотри: у меня есть UserManager, через который я могу добавлять/удалять пользователей.

    // каждый раз при
    $_UM->add(array(/* userinfo */))
    // делать запрос в БД немного расточительно. Я хочу использовать транзакции


    как ты обойдешься нативной поддержкой тразакций при таком раскладе?
  • kostyl

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

    Spritz 9 мая 2010 г. 6:02, спустя 2 часа 7 минут 36 секунд

    как ты обойдешься нативной поддержкой тразакций при таком раскладе?

    ну, я тебя не особо понял, то где тут нужны две транзации какие то? какой запрос в базу данных? {+++167+++} вообще то, добавление в конце скрипта всех добавленных пользователей одним запросов решает Unit of Work паттерн. Но у него одна транзакция на это!
  • Абырвалг

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

    Spritz 9 мая 2010 г. 6:04, спустя 1 минуту 52 секунды

    в $_UM->add(); отложенная запись не покатит: мне нужно сразу знать ID'шнин добавленного пользователя.

    ну давай на переводах тогда
    $this->db()->query('INSERT INTO :translations_tokens SET [email protected] ON DUPLICATE KEY UPDATE is_plural=?i', $data, $isPlural);
    {+++53+++} про unit of work знаю, RDM (ORM'ка такая) будет его использовать
  • kostyl

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

    Spritz 9 мая 2010 г. 6:36, спустя 32 минуты 1 секунду

    мне нужно сразу знать ID'шнин добавленного пользователя

    я просто не знаю, а в MySQL нельзя зарезервировать ID ?
  • Абырвалг

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

    Spritz 10 мая 2010 г. 0:00, спустя 17 часов 24 минуты 33 секунды

    не знаю, не пробовал. Наверно можно, используя какой-то контейнер внутри класса.

    Скоро закоммичу изменения, потому как на гуглокоде версия месячной давности

    Вот как я конверчу переводы из Database драйвера в Array:
    function compileToArray($namespace, array $languages = array())
    {
    $driverDatabase = BL_Translate::instance($namespace, 'database')->getDriver();
    $driverArray = BL_Translate::instance($namespace, 'array')->getDriver();
    $languages || $languages = BL_Settings::get('application.languages');

    foreach ($languages as $langCode) {
    $translations = $driverDatabase->getTranslations($namespace, $langCode);
    $driverArray->injectTranslations($namespace, $langCode, $translations);
    }
    $driverArray->save();
    }


    обратно - тоже можно, но сложнее. Мне это не нужно просто. В админке редактируются переводы в Database-драйвере и компилятся в Array. Почему не могу сразу в Array'е редактировать? нужны фильтры, лимиты, оффсеты и тп.
  • Абырвалг

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

    Spritz 4 июня 2010 г. 23:54, спустя 25 дней 23 часа 53 минуты

    было
    	public static function moduleClass($moduleName)
    {
    $mm = explode('.', $moduleName);
    foreach ($mm as &$m)
    $m = ucfirst($m);

    return implode('_', $mm);
    }

    стало
    	public function moduleClass($moduleName)
    {
    return str_replace(' ', '_', ucwords(str_replace('.', ' ', $moduleName)));
    }


    неужели первый код я писал?)
  • Абырвалг

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

    Spritz 7 июня 2010 г. 12:31, спустя 2 дня 12 часов 37 минут

    переписал лоадер. Итого: теперь у нас один путь в include pathes, который к тому же совпадает с getcwd


    в bootstrap пишем:

    include_once BL_CORE_DIR . 'Loader.php';
    BL_Loader::autoloadRegister()
    ->registerVendor('Zend')
    ->registerVendor('Twig');


    и все работает {+++39+++} а, да, и при исключения нормально бросаются. Такого вроде даже Кохана не позволяет
  • Абырвалг

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

    Spritz 13 июня 2010 г. 2:24, спустя 5 дней 13 часов 53 минуты

    Итого: теперь у нас один путь в include pathes, который к тому же совпадает с getcwd

    ебаный зенд со своими ебаными `require_once` всю малину пересрал, придется все-таки 2 include pathes держать
  • kostyl

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

    Spritz 13 июня 2010 г. 2:49, спустя 25 минут

    ебаный зенд со своими ебаными `require_once` всю малину пересрал

    может создать отдельную тему - недостатки разных фреймворков, один хрен у всех есть!
  • phpdude

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

    Spritz 13 июня 2010 г. 3:09, спустя 19 минут 46 секунд


    ебаный зенд со своими ебаными `require_once` всю малину пересрал

    может создать отдельную тему - недостатки разных фреймворков, один хрен у всех есть!

    может лучше "Сопли - 1" по паттерну "Дом флудера"?
    Сапожник без сапог
  • Абырвалг

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

    Spritz 13 июня 2010 г. 3:16, спустя 7 минут 4 секунды

    вариант
  • Абырвалг

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

    Spritz 18 июня 2010 г. 6:09, спустя 5 дней 2 часа 52 минуты

    я устал, я ухожу (с) ЕБН

    Мне не нравятся BL в том виде, в котором они сейчас. Я думаю существенно переработать взаимодействие классов между собой, по минимуму использовать BL_Settings, все настройки задавать через конструктор. Разруливанием этого будет заниматься Context.

    Кроме того нужно что-то решить с обратной генерацией URL'ов.
    И сделать инсталляцию модулей "в один клик" (Привет, Маджента)
  • phpdude

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

    Spritz 18 июня 2010 г. 6:10, спустя 1 минуту 19 секунд

    И сделать инсталляцию модулей "в один клик" (Привет, Маджента)

    а там разве так?
    Сапожник без сапог
  • Абырвалг

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

    Spritz 18 июня 2010 г. 6:17, спустя 7 минут 11 секунд

    а там еще проще: заливаешь модуль, очищаешь кеш, обновляешь страничку - и он работает
    или через Magento Connect

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