kagan Опубліковано: 20 червня 2016 Share Опубліковано: 20 червня 2016 Добрый вечер. Подскажите, если я работаю с кешем. Мне нужно его один раз дернуть и потом сохранить при изменениях. Через конструктор я его получаю, сохраняю в локальную переменную внутри класса. После, делаю разные манипуляции. Сохраняю обратно в кеш при __destruct(). Такой подход нормальный? (т.к. сейчас при любом изменении внутри функции работает обращение к кешу, а через описанный способ выше обращение будет только один раз) Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 Код в студию, а то непонятно для чего именно используется кэш. Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 (змінено) сохранить при изменениях. Это уже не нормально -> когда вы его получаете, генерируете данные, проверяете на изменения и потом сохраняете. По сути кэш нужен для того чтобы избежать ресурсоемких, повторяющихся или медленных функций. Т.е. если данные из кэша были получены, то нет необходимости запускать функцию получения данных. Если же кэш получили пустым, то запускаете функцию и ее результат сохраняете в кэш. Инвалидация кэша должна происходить только по времени, установленном в классе кэширования, а не по изменению данных. А так, да, можно использовать кэширование в конструкторах и деструкторах. Змінено 21 червня 2016 користувачем halfhope 1 Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 Это уже не нормально -> когда вы его получаете, генерируете данные, проверяете на изменения и потом сохраняете. По сути кэш нужен для того чтобы избежать ресурсоемких, повторяющихся или медленных функций. Т.е. если данные из кэша были получены, то нет необходимости запускать функцию получения данных. Если же кэш получили пустым, то запускаете функцию и ее результат сохраняете в кэш. Инвалидация кэша должна происходить только по времени, установленном в классе кэширования, а не по изменению данных. А так, да, можно использовать кэширование в конструкторах и деструкторах. Все верно, чтобы избежать "ресурсоемких, повторяющихся или медленных функций". У меня была задача, сделать склонение слов (названия категорий) в родительном падеже. Хостинг не позволяет устанавливать доп. библиотеки к PHP. (т.е. Morpher.so отпадает). Пробовал подключать доп. классы для работы со склонениями, но ничего нормально не склонялось (видимо из-за отсутсвия нормальных словарей). После, нашел сервис который может склонять через API, и возвращает обратные данные в формате json. Дальше с ним и работал. Мне нужно было сделать допил для плагина массовой генерации мета-тегов (типа title, description, h1, и т.д.). Решение сделал таким: class ModelModuleSeogen extends Model { public function __construct($registry) { parent::__construct($registry); require_once(DIR_SYSTEM . 'helper/morphy.php'); } // Для получения слов в род. падеже public function getStringInRodPadeg($string) { // Сервис не доступен if (is_null(checkServiceStatusForPadeg())) return $string; $cache_name = 'declensions.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'); $declensions = $this->cache->get($cache_name); // Кеш не создан if (!$declensions) $declensions = array(); // Если перевод в кеше не найден, добавляем его if (!array_key_exists($string, $declensions)) { $declensions[$string] = getRodPadeg($string); $this->cache->set($cache_name, $declensions); } return $declensions[$string]; } public function func1() { echo $this->getStringInRodPadeg('котлы'); } Но потом подумал что здесь я не очень хорошо описал работу с кешем, т.е. лучшем вариантом я думаю будет такой: private $declensions = array(); private $cache_name; public function __construct($registry) { parent::__construct($registry); $this->cache_name = 'declensions.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'); $this->declensions = $this->cache->get($this->cache_name); require_once(DIR_SYSTEM . 'helper/morphy.php'); } public function __destruct($registry) { $this->cache->set($this->сache_name, $this->declensions); parent::__destruct($registry); } // Для получения слов в род. падеже public function getStringInRodPadeg($string){ // Сервис не доступен if (is_null(checkServiceStatusForPadeg())) return $string; // Кеш не создан if (!$this->declensions) $this->declensions = array(); // Если перевод в кеше не найден, добавляем его if (!array_key_exists($string, $this->declensions)) { $this->declensions[$string] = getRodPadeg($string); } return $this->declensions[$string]; } Думаю, так будет работать более быстрее. :-) Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 Правильно думаете) 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Шутите?) Нет, мне просто нужно было только в родительном падеже (другие не нужны). Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутитьА че? офлайновые библиотеки морфуса уже не справляются? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутить А че? офлайновые библиотеки морфуса уже не справляются? Ну да, пришлось) Тестил одну оффлайновую, не справилась. Если есть годный линк, буду благодарен. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця Вопрос по __construct() и __destruct() при разработке Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення EasyMods Автор: kJlukOo PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
halfhope Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 Код в студию, а то непонятно для чего именно используется кэш. Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 (змінено) сохранить при изменениях. Это уже не нормально -> когда вы его получаете, генерируете данные, проверяете на изменения и потом сохраняете. По сути кэш нужен для того чтобы избежать ресурсоемких, повторяющихся или медленных функций. Т.е. если данные из кэша были получены, то нет необходимости запускать функцию получения данных. Если же кэш получили пустым, то запускаете функцию и ее результат сохраняете в кэш. Инвалидация кэша должна происходить только по времени, установленном в классе кэширования, а не по изменению данных. А так, да, можно использовать кэширование в конструкторах и деструкторах. Змінено 21 червня 2016 користувачем halfhope 1 Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 Это уже не нормально -> когда вы его получаете, генерируете данные, проверяете на изменения и потом сохраняете. По сути кэш нужен для того чтобы избежать ресурсоемких, повторяющихся или медленных функций. Т.е. если данные из кэша были получены, то нет необходимости запускать функцию получения данных. Если же кэш получили пустым, то запускаете функцию и ее результат сохраняете в кэш. Инвалидация кэша должна происходить только по времени, установленном в классе кэширования, а не по изменению данных. А так, да, можно использовать кэширование в конструкторах и деструкторах. Все верно, чтобы избежать "ресурсоемких, повторяющихся или медленных функций". У меня была задача, сделать склонение слов (названия категорий) в родительном падеже. Хостинг не позволяет устанавливать доп. библиотеки к PHP. (т.е. Morpher.so отпадает). Пробовал подключать доп. классы для работы со склонениями, но ничего нормально не склонялось (видимо из-за отсутсвия нормальных словарей). После, нашел сервис который может склонять через API, и возвращает обратные данные в формате json. Дальше с ним и работал. Мне нужно было сделать допил для плагина массовой генерации мета-тегов (типа title, description, h1, и т.д.). Решение сделал таким: class ModelModuleSeogen extends Model { public function __construct($registry) { parent::__construct($registry); require_once(DIR_SYSTEM . 'helper/morphy.php'); } // Для получения слов в род. падеже public function getStringInRodPadeg($string) { // Сервис не доступен if (is_null(checkServiceStatusForPadeg())) return $string; $cache_name = 'declensions.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'); $declensions = $this->cache->get($cache_name); // Кеш не создан if (!$declensions) $declensions = array(); // Если перевод в кеше не найден, добавляем его if (!array_key_exists($string, $declensions)) { $declensions[$string] = getRodPadeg($string); $this->cache->set($cache_name, $declensions); } return $declensions[$string]; } public function func1() { echo $this->getStringInRodPadeg('котлы'); } Но потом подумал что здесь я не очень хорошо описал работу с кешем, т.е. лучшем вариантом я думаю будет такой: private $declensions = array(); private $cache_name; public function __construct($registry) { parent::__construct($registry); $this->cache_name = 'declensions.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'); $this->declensions = $this->cache->get($this->cache_name); require_once(DIR_SYSTEM . 'helper/morphy.php'); } public function __destruct($registry) { $this->cache->set($this->сache_name, $this->declensions); parent::__destruct($registry); } // Для получения слов в род. падеже public function getStringInRodPadeg($string){ // Сервис не доступен if (is_null(checkServiceStatusForPadeg())) return $string; // Кеш не создан if (!$this->declensions) $this->declensions = array(); // Если перевод в кеше не найден, добавляем его if (!array_key_exists($string, $this->declensions)) { $this->declensions[$string] = getRodPadeg($string); } return $this->declensions[$string]; } Думаю, так будет работать более быстрее. :-) Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 Правильно думаете) 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Шутите?) Нет, мне просто нужно было только в родительном падеже (другие не нужны). Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутитьА че? офлайновые библиотеки морфуса уже не справляются? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутить А че? офлайновые библиотеки морфуса уже не справляются? Ну да, пришлось) Тестил одну оффлайновую, не справилась. Если есть годный линк, буду благодарен. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця Вопрос по __construct() и __destruct() при разработке Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення EasyMods Автор: kJlukOo PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
halfhope Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 (змінено) сохранить при изменениях. Это уже не нормально -> когда вы его получаете, генерируете данные, проверяете на изменения и потом сохраняете. По сути кэш нужен для того чтобы избежать ресурсоемких, повторяющихся или медленных функций. Т.е. если данные из кэша были получены, то нет необходимости запускать функцию получения данных. Если же кэш получили пустым, то запускаете функцию и ее результат сохраняете в кэш. Инвалидация кэша должна происходить только по времени, установленном в классе кэширования, а не по изменению данных. А так, да, можно использовать кэширование в конструкторах и деструкторах. Змінено 21 червня 2016 користувачем halfhope 1 Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 Это уже не нормально -> когда вы его получаете, генерируете данные, проверяете на изменения и потом сохраняете. По сути кэш нужен для того чтобы избежать ресурсоемких, повторяющихся или медленных функций. Т.е. если данные из кэша были получены, то нет необходимости запускать функцию получения данных. Если же кэш получили пустым, то запускаете функцию и ее результат сохраняете в кэш. Инвалидация кэша должна происходить только по времени, установленном в классе кэширования, а не по изменению данных. А так, да, можно использовать кэширование в конструкторах и деструкторах. Все верно, чтобы избежать "ресурсоемких, повторяющихся или медленных функций". У меня была задача, сделать склонение слов (названия категорий) в родительном падеже. Хостинг не позволяет устанавливать доп. библиотеки к PHP. (т.е. Morpher.so отпадает). Пробовал подключать доп. классы для работы со склонениями, но ничего нормально не склонялось (видимо из-за отсутсвия нормальных словарей). После, нашел сервис который может склонять через API, и возвращает обратные данные в формате json. Дальше с ним и работал. Мне нужно было сделать допил для плагина массовой генерации мета-тегов (типа title, description, h1, и т.д.). Решение сделал таким: class ModelModuleSeogen extends Model { public function __construct($registry) { parent::__construct($registry); require_once(DIR_SYSTEM . 'helper/morphy.php'); } // Для получения слов в род. падеже public function getStringInRodPadeg($string) { // Сервис не доступен if (is_null(checkServiceStatusForPadeg())) return $string; $cache_name = 'declensions.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'); $declensions = $this->cache->get($cache_name); // Кеш не создан if (!$declensions) $declensions = array(); // Если перевод в кеше не найден, добавляем его if (!array_key_exists($string, $declensions)) { $declensions[$string] = getRodPadeg($string); $this->cache->set($cache_name, $declensions); } return $declensions[$string]; } public function func1() { echo $this->getStringInRodPadeg('котлы'); } Но потом подумал что здесь я не очень хорошо описал работу с кешем, т.е. лучшем вариантом я думаю будет такой: private $declensions = array(); private $cache_name; public function __construct($registry) { parent::__construct($registry); $this->cache_name = 'declensions.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'); $this->declensions = $this->cache->get($this->cache_name); require_once(DIR_SYSTEM . 'helper/morphy.php'); } public function __destruct($registry) { $this->cache->set($this->сache_name, $this->declensions); parent::__destruct($registry); } // Для получения слов в род. падеже public function getStringInRodPadeg($string){ // Сервис не доступен if (is_null(checkServiceStatusForPadeg())) return $string; // Кеш не создан if (!$this->declensions) $this->declensions = array(); // Если перевод в кеше не найден, добавляем его if (!array_key_exists($string, $this->declensions)) { $this->declensions[$string] = getRodPadeg($string); } return $this->declensions[$string]; } Думаю, так будет работать более быстрее. :-) Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 Правильно думаете) 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Шутите?) Нет, мне просто нужно было только в родительном падеже (другие не нужны). Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутитьА че? офлайновые библиотеки морфуса уже не справляются? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутить А че? офлайновые библиотеки морфуса уже не справляются? Ну да, пришлось) Тестил одну оффлайновую, не справилась. Если есть годный линк, буду благодарен. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця Вопрос по __construct() и __destruct() при разработке Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення EasyMods Автор: kJlukOo PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 Это уже не нормально -> когда вы его получаете, генерируете данные, проверяете на изменения и потом сохраняете. По сути кэш нужен для того чтобы избежать ресурсоемких, повторяющихся или медленных функций. Т.е. если данные из кэша были получены, то нет необходимости запускать функцию получения данных. Если же кэш получили пустым, то запускаете функцию и ее результат сохраняете в кэш. Инвалидация кэша должна происходить только по времени, установленном в классе кэширования, а не по изменению данных. А так, да, можно использовать кэширование в конструкторах и деструкторах. Все верно, чтобы избежать "ресурсоемких, повторяющихся или медленных функций". У меня была задача, сделать склонение слов (названия категорий) в родительном падеже. Хостинг не позволяет устанавливать доп. библиотеки к PHP. (т.е. Morpher.so отпадает). Пробовал подключать доп. классы для работы со склонениями, но ничего нормально не склонялось (видимо из-за отсутсвия нормальных словарей). После, нашел сервис который может склонять через API, и возвращает обратные данные в формате json. Дальше с ним и работал. Мне нужно было сделать допил для плагина массовой генерации мета-тегов (типа title, description, h1, и т.д.). Решение сделал таким: class ModelModuleSeogen extends Model { public function __construct($registry) { parent::__construct($registry); require_once(DIR_SYSTEM . 'helper/morphy.php'); } // Для получения слов в род. падеже public function getStringInRodPadeg($string) { // Сервис не доступен if (is_null(checkServiceStatusForPadeg())) return $string; $cache_name = 'declensions.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'); $declensions = $this->cache->get($cache_name); // Кеш не создан if (!$declensions) $declensions = array(); // Если перевод в кеше не найден, добавляем его if (!array_key_exists($string, $declensions)) { $declensions[$string] = getRodPadeg($string); $this->cache->set($cache_name, $declensions); } return $declensions[$string]; } public function func1() { echo $this->getStringInRodPadeg('котлы'); } Но потом подумал что здесь я не очень хорошо описал работу с кешем, т.е. лучшем вариантом я думаю будет такой: private $declensions = array(); private $cache_name; public function __construct($registry) { parent::__construct($registry); $this->cache_name = 'declensions.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'); $this->declensions = $this->cache->get($this->cache_name); require_once(DIR_SYSTEM . 'helper/morphy.php'); } public function __destruct($registry) { $this->cache->set($this->сache_name, $this->declensions); parent::__destruct($registry); } // Для получения слов в род. падеже public function getStringInRodPadeg($string){ // Сервис не доступен if (is_null(checkServiceStatusForPadeg())) return $string; // Кеш не создан if (!$this->declensions) $this->declensions = array(); // Если перевод в кеше не найден, добавляем его if (!array_key_exists($string, $this->declensions)) { $this->declensions[$string] = getRodPadeg($string); } return $this->declensions[$string]; } Думаю, так будет работать более быстрее. :-) Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 Правильно думаете) 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Шутите?) Нет, мне просто нужно было только в родительном падеже (другие не нужны). Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутитьА че? офлайновые библиотеки морфуса уже не справляются? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутить А че? офлайновые библиотеки морфуса уже не справляются? Ну да, пришлось) Тестил одну оффлайновую, не справилась. Если есть годный линк, буду благодарен. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця Вопрос по __construct() и __destruct() при разработке Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення EasyMods Автор: kJlukOo PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
halfhope Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 Правильно думаете) 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Шутите?) Нет, мне просто нужно было только в родительном падеже (другие не нужны). Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутитьА че? офлайновые библиотеки морфуса уже не справляются? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутить А че? офлайновые библиотеки морфуса уже не справляются? Ну да, пришлось) Тестил одну оффлайновую, не справилась. Если есть годный линк, буду благодарен. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця Вопрос по __construct() и __destruct() при разработке Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення EasyMods Автор: kJlukOo PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Шутите?) Нет, мне просто нужно было только в родительном падеже (другие не нужны). Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутитьА че? офлайновые библиотеки морфуса уже не справляются? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутить А че? офлайновые библиотеки морфуса уже не справляются? Ну да, пришлось) Тестил одну оффлайновую, не справилась. Если есть годный линк, буду благодарен. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця Вопрос по __construct() и __destruct() при разработке Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення EasyMods Автор: kJlukOo PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut
kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 МаМа дорогая!!!! getStringInRodPadeg И так будет под каждый падеж? Шутите?) Нет, мне просто нужно было только в родительном падеже (другие не нужны). Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутитьА че? офлайновые библиотеки морфуса уже не справляются? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутить А че? офлайновые библиотеки морфуса уже не справляются? Ну да, пришлось) Тестил одну оффлайновую, не справилась. Если есть годный линк, буду благодарен. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця Вопрос по __construct() и __destruct() при разработке
chukcha Опубліковано: 21 червня 2016 Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутитьА че? офлайновые библиотеки морфуса уже не справляются? Надіслати Поділитися на інших сайтах More sharing options... kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутить А че? офлайновые библиотеки морфуса уже не справляются? Ну да, пришлось) Тестил одну оффлайновую, не справилась. Если есть годный линк, буду благодарен. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
kagan Опубліковано: 21 червня 2016 Автор Share Опубліковано: 21 червня 2016 ради родительного падежа такое мутить А че? офлайновые библиотеки морфуса уже не справляются? Ну да, пришлось) Тестил одну оффлайновую, не справилась. Если есть годный линк, буду благодарен. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts