Недавно решил оптимизировать один из своих сайтов под Google PageSpeed Insights. Конечно, хочется максимального результата 100/100, но не все так просто. Далее расскажу как добиться такого результата.
Symfony 2 и 3. Как использовать сервис-контейнер в конструкторе контроллера
Бывают ситуации, когда в конструкторе контроллера нужно вызвать сервис-контейнер, но выводится ошибка:
Error: Call to a member function get() on null in vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php at line 350
Есть простое решение данной проблемы.
Как убрать scroll на iOS
Мобильная версия сайта на iOS всегда отображается со скроллом, даже если страница имеет высоту 100vh и в css скролл отключен. Для отключения этого скролла пропишите в javascript следующую строку:
document.addEventListener('touchmove', function(e) {e.preventDefault();}, true);
Сортировка массива объектов по свойству
Если есть массив объектов и необходимо его отсортировать по полю (или нескольким), то то для этого существует функция usort ([массив], callable функция).
Ниже описан пример сортировки массива объектов с помощью статического метода в классе объекта. (далее…)
Symfony 2 и 3. Древовидный вывод сущностей.
На этот раз будем делать древовидный вывод пунктов навигации сайта. Данный способ будет работать на Symfony 2.4 и выше, включая Symfony 3.
Symfony 2. Мультиязычность контента
Недавно передо мной стояла задача сделать мультиязычность контента у сайта, написанного с использованием фреймворка symfony 2. Из мануалов было ясно, что встроенная мультиязычность подходит только для перевода интерфейсов. Мне нужна возможность определения у каких полей сущностей будет перевод, а у каких не будет перевода.
Нашел библиотеку Doctrine2 Behaviors от KnpLabs. В документации есть инструкция по использованию с анотациями. Но у меня сущности описываются в yml файлах. С yml файлами, как оказалось тоже все работает, главное — правильно описать. (далее…)
Yii2 проверка на уникальность сочетания полей
Как то мне понадобилось сделать такую валидацию, что бы уникальными были не поля по отдельности, а комбинация полей.
Когда в контролер приходят данные из формы с ними надо что-то сделать — загрузить в соответствующую модель, проверить на валидность, как-нибудь так:
$model->load(Yii::$app->request->post()); $model->validate();
Важное замечание: при этом в модель загружаются только те поля (так называемые безопасные), для которых указаны валидация.
При создании в Yii форм, с наследованием от класса Model ( use yii\base\Model), правила валидации задаются функцией rules:
Как сделать адаптивную masonry сетку только на css
В данной заметке описать адекватный способ создания адаптивной masonry сетки на чистом css.