Как стать автором
Обновить
48
0
Ян Иванов @franzose

Веб-разработчик

Отправить сообщение

Оптимизация OneToMany коллекций Doctrine

Время на прочтение13 мин
Количество просмотров5.1K

В этой статье будет показан пример того, как уменьшить количество запросов к базе данных до одного при работе с коллекциями сущностей иерархической структуры в контексте PHP и Doctrine ORM. Полный пример решения вы можете посмотреть в специальном репозитории. Статья основана на решении проблемы из обсуждения на StackOverflow.

Поехали!
Всего голосов 12: ↑12 и ↓0+12
Комментарии9

DDD на практике. Проектирование списка желаний

Время на прочтение19 мин
Количество просмотров58K

В интернете довольно много разрозненного материала по DDD. Если не считать синей книги, то в основном это короткие статьи с теорией, надёрганной из этой же книги, и которая мало пересекается с практикой. Возможно, конечно, что я просто плохо искал, но мне давно хотелось найти какой-нибудь цельный пример, что называется, «от и до». И я решил такой пример создать на Symfony 3 и VueJS. Сразу хочу сказать, что я изучаю DDD недавно, поэтому взял довольно простую предметную область — список желаний (wish list).

Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии56

Валидировали, валидировали… и вывалидировали! Сравниваем валидаторы данных в PHP

Время на прочтение12 мин
Количество просмотров20K

Изображение взято с сайта Michiana Stransportation (Bike Shops)


Если вы еще не в курсе, что такое Kontrolio, предлагаю прочесть первую часть — «Держите свои данные под контролем». Вкратце, это моя библиотека для валидации данных, написанная на PHP.

В предыдущей статье я обещал написать сравнение своей собственной библиотеки с другими имеющимися решениями, так что сегодня мы рассмотрим валидацию с помощью Aura.Filter, Respect Validation, Sirius Validation и Valitron.

Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии31

Как по маслу, или анимируем со скоростью 60 FPS на CSS 3

Время на прочтение5 мин
Количество просмотров61K

Изображения и текст принадлежат их авторам.


Анимация элементов в мобильных приложениях — это просто. Правильная анимация тоже может быть простой… если вы последуете представленным в статье советам.


Сегодня кто только не использует CSS 3 анимацию в своих проектах, тем не менее не только лишь все, но мало кто может делать это правильно. Даже описаны так называемые «лучшие практики», но люди продолжают делать всё по-своему. Скорее всего потому, что просто не понимают, почему всё устроено именно так, а не иначе.


Читать дальше →
Всего голосов 51: ↑49 и ↓2+47
Комментарии27

Держите данные под контролем

Время на прочтение7 мин
Количество просмотров12K
Не секрет, что пользовательским данным доверять нельзя. Поэтому однажды человек и придумал валидацию данных. Ну а я, интереса ради и пользы для, написал свою реализацию валидатора на PHP.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии32

Подписан закон о хранении персональных данных российских интернет-пользователей

Время на прочтение1 мин
Количество просмотров15K
Где? Ну, да, только на российских серверах. В этом и не стоило сомневаться. Этот закон обязывает почтовые сервисы, а также социальные сети размещать персональные данные российских пользователей исключительно на серверах, расположенных на территории России. Требования, изложенные в данном законе, вступят в силу 1 сентября 2016 года.

Вот что говорится в законе: «при сборе персональных данных, в том числе посредством информационно-телекоммуникационной сети Интернет, оператор обязан обеспечить запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение персональных данных граждан России с использованием баз данных, находящихся на территории России». К персональным данным предлагается, в частности, отнести адреса электронной почты, личную переписку и так далее.

На основе материала газеты «Коммерсантъ». Схожий материал можно найти на «Ленте».
Всего голосов 60: ↑54 и ↓6+48
Комментарии110

CSS 3 Timing Functions и с чем их едят

Время на прочтение15 мин
Количество просмотров105K


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


Окей, ваша кровь, конечно, вряд ли закипела от предмета данной статьи, но шутки в сторону: временные функции — своего рода скрытая жемчужина, когда дело касается CSS, и, вполне вероятно, вы удивитесь тому, сколько всего интересного с помощью них можно сделать.

Полетели!
Всего голосов 77: ↑74 и ↓3+71
Комментарии8

12 малоизвестных возможностей CSS

Время на прочтение8 мин
Количество просмотров137K
CSS — не очень сложный язык. Но даже если вы пишете таблицы стилей в течении многих лет, наверняка бывают моменты, когда вы узнаете еще что-нибудь новенькое: свойства или значения, которые вам не доводилось использовать, детали спецификации, о которых вы не имели понятия.

В процессе работы с CSS я постоянно нахожу что-нибудь интересненькое, так что решил написать пост и поделиться своими знаниями с вами. Правда, учитывайте, что не всё, о чем будет рассказано, имеет непосредственное практическое значение, но, на всякий случай, в хозяйстве пригодится.
Читать дальше →
Всего голосов 115: ↑99 и ↓16+83
Комментарии55

Одно из мнений о будущем PHP

Время на прочтение7 мин
Количество просмотров34K


В последнее время в сообществе разработчиков наблюдается весьма оживленное обсуждение всего того, что касается PHP и его будущего. Что радует — большинство подобных разговоров проходят в позитивном ключе. Популярны дискуссии на тему PHP 6 и того, каким он мог бы выглядеть. Народ задает очень много вопросов об HHVM и её роли в будущем языка и сообщества. Так что позвольте и мне поделиться с вами некоторыми своими мыслями по этому поводу.

Читать дальше →
Всего голосов 79: ↑56 и ↓23+33
Комментарии83

Хранение деревьев в базе данных. Часть первая, теоретическая

Время на прочтение4 мин
Количество просмотров131K
Полгода назад написал бандл ClosureTable для фреймворка Laravel 3. Поводом для написания стала вот эта замечательная презентация Билла Карвина о способах хранения и обработки иерархических данных в MySQL с использованием PHP.

Итак. Существует несколько шаблонов проектирования баз данных для хранения и обработки иерархических структур:
  • Adjacency List («список смежности»)
  • Materialized Path («материализованный путь»)
  • Nested Sets («вложенные множества»)
  • Closure Table («таблица связей»)

Читать дальше →
Всего голосов 47: ↑41 и ↓6+35
Комментарии66

Информация

В рейтинге
6 315-й
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer
Senior