личноеI'm still alive!

Уф, вы наверно заметили что сначала мой домен был недоступен, а потом здесь крутилась заглушка-каталог? Это все потому что я забыл продлить свой домен и оплатить за хостинг. Из-за своей глупости я заплатил за восстановление в 2 раза больше!

Мой домен забрал регистратор и потребовал 1000р вместо стандартных 400р, пришлось переплачивать. Но мне кажется это стоило того ;)

Из последних новостей могу озвучить следующие:

  • Я разорвал все контакты с девушкой, которую любил. Этот шаг был очень сложным, но я понял что она не мой человек, и будет лучше если мы перестанем общаться.
  • Я снял наконец-то квартиру. Как и планировал это произошло в начале ноября, план выполняется нормально :) Я еще потом напишу пост как я искал квартиру. Теперь я живу один в двухкомнатной квартире за Филармонией. Толком еще не обустроился, надо много чего сделать по мелочам.
  • Проект который я сейчас разрабатываю скоро увидит свет, мы уже на финишной прямой. Мои ребята-негритята пока не очень понимают всей серьезности этого запуска, когда как для меня этот проект — дитё :)
  • Диджейская карьера пока не развивается, сыграл около 6-ти раз разную музыку. Азы освоены, надо тренироваться.

Есть еще пара моментов которые я хотел вам рассказать, но думаю это будет отдельный пост.

php, разработкаORM — это сложная штука

В пятницу днем узнал что моя реализация ORM дала сбой на большом кол-ве записей :) Пришлось ставить заглушку и выяснять что там случилось. Оказалось все просто — когда я делал ORM, я «пропустил» момент оптимизации. И так получилось что сначало все работало как надо, а потом записей стало так много, что скрипт просто не выдержал и вылетал с max execution time, нашел место проблемы (дуралей поставил получение всех записей, а потом только пагинатор убирал не нужные) и до вечера переписывал код :)

Второй вариант я сделал часа за 3. Работало отлично, hasMany, hasOne все в одном запросе через JOIN (Вася, я увидел это у тебя и мне понравилась реализация :) ) Разбор полученных данных и разброс в массивы.

Все круто, думал я :) А потом до меня дошло что когда мы используем hasMany, мы получаем 4 записи (к примеру) с одинаковыми данными текущей модели и с разными модели hasMany. Разбирается это все прекрасно, но вот пагинатор не сработал бы. Фактически мы после обработки получаем 1 запись. А LIMIT засчитал как за 4 записи.

Поэтмоу мне пришлось вернуть часть старого кода. Я оставил JOIN'ы, потому что с ними удобно было ставить запросы. Из-за запросов у меня были как раз проблемы в самом первом варианте. Там нельзя было фильтровать записи по полю из ассоциативной модели. Теперь можно, но пока пишу пост подумал что нада пару вещей проверить, на то как вложенности работают :) Но должны...

В итоге я получил работающий 3ий вариант, работает быстро. Записи берет только реально нужные через LIMIT. Жду когда протестим на основном сервере.