Все же наверно знаете что можно из длинной ссылки получить маленькую?
Например, с помощью сервиса tinyurl.com, просто вводите свою большую ссылку и получается короткую, и сервис просто вас редиректит на нужную. Все просто.
Сервисов уже сделано довольно много таких. Есть даже русские.
А вчера я вечером не знал что делать, гулять и ехать на open air было рано (я так и не уехал, поздно спохватился и все транспорты ушли
), я решил попробовать поработать с CURL. Не буду объяснят что это такое
Вобщем я добился такого, что из php скрипта получать короткие ссылки с разных сервисов. Ввожу свою ссылку, жму кнопку и получаю штук 8 других. 8 — потому что гугл мне показал 10 штук примерно их, но 2 сервиса отпали, так как были не рабочие.
Решил все это оформить как сервис, но вот беда — я не очень хороший верстальщик и у меня не получилсь сделать чтобы footer (подвал) был всегда внизу. Пока оставил, может придет вдохновение и доделаю. А получать весь набор ссылок через AJAX уже есть + есть проверка от спам-бота. Не серьезная конечно, но все равно от простых ботов защитит.
В пятницу днем узнал что моя реализация ORM дала сбой на большом кол-ве записей
Пришлось ставить заглушку и выяснять что там случилось. Оказалось все просто — когда я делал ORM, я «пропустил» момент оптимизации. И так получилось что сначало все работало как надо, а потом записей стало так много, что скрипт просто не выдержал и вылетал с max execution time, нашел место проблемы (дуралей поставил получение всех записей, а потом только пагинатор убирал не нужные) и до вечера переписывал код
Второй вариант я сделал часа за 3. Работало отлично, hasMany, hasOne все в одном запросе через JOIN (Вася, я увидел это у тебя и мне понравилась реализация
) Разбор полученных данных и разброс в массивы.
Все круто, думал я
А потом до меня дошло что когда мы используем hasMany, мы получаем 4 записи (к примеру) с одинаковыми данными текущей модели и с разными модели hasMany. Разбирается это все прекрасно, но вот пагинатор не сработал бы. Фактически мы после обработки получаем 1 запись. А LIMIT засчитал как за 4 записи.
Поэтмоу мне пришлось вернуть часть старого кода. Я оставил JOIN'ы, потому что с ними удобно было ставить запросы. Из-за запросов у меня были как раз проблемы в самом первом варианте. Там нельзя было фильтровать записи по полю из ассоциативной модели. Теперь можно, но пока пишу пост подумал что нада пару вещей проверить, на то как вложенности работают
Но должны...
В итоге я получил работающий 3ий вариант, работает быстро. Записи берет только реально нужные через LIMIT. Жду когда протестим на основном сервере.
На IBM developerWorks появилась первая часть из 5 посвященная выбору фреймворка для разработки сайтов.
Немного о каждой серии:
- вступление, коротко о каждом фреймворке, почему выбрали именно их, короткое руководство по установке.
- шаги по созданию приложения, различия в каждом фреймворке
- расширения тестового приложения и как фремфорки работают с не стандартными задачами.
- поддержка AJAX, поддержка сторонних библиотек для AJAX
- работа не в фреймворке, например, скрипт ежедневного обновления
Как обычно статьи у IDM developerWorks очень интересны, stay tuned!
Не забуду ссылку на статью.