Вкратце суть примерно такова: есть глобальные показатели (общие очки, общая разница мячей и т.д), но при равенстве глобальных показателей у группы команд используется подсчет показателей между этими командами. То есть понятно, что должен быть первый запрос, а заним второй запрос с горстью костылей. Чистый sql не пройдет, судя по всему.
Рубрика «php» - 211
Спорт. Турнирные таблицы с личными показателями при равентсве очков
2013-01-06 в 13:34, admin, рубрики: php, python, sql, Веб-разработка, ооп, спорт, метки: PHP, python, sql, ооп, спортDrupal: пишем свой парсер для Feeds
2013-01-04 в 11:48, admin, рубрики: drupal, drupal 7, Feeds, php, метки: drupal 7, Feeds, PHP Модуль Feeds является очень популярным среди Drupal-разработчиков. Но возникает вопрос, что делать если необходимо несколько расширить его функциональность. В этом нам поможет система плагинов модуля Feeds.
Существует 3 вида плагинов от которых необходимо наследовать новые:
- FeedsFetcher — плагин сборщика. Cтандартные: HTTP и File Upload. С помощью этого типа плагинов можно добавить новый источник данных.
- FeedsProcessor — плагин обработки сущностей. Cтандартные: Node processor, Taxonomy term processor, User processor. С помощью нового плагина можно добавить новый обработчик, который будет создавать особенные сущности, не вписывающиеся в стандартный набор.
- FeedsParser — плагин парсера. Стандартные парсеры в Feeds это XML, CSV и многие другие.
В этой статье я хотел бы остановиться именно на написании модуля парсера, так как довольно часто приходится иметь дело с импортом файлов со специфической структурой.
Читать полностью »
Пагинация страниц с помощью Ajax. Пишем компонент для Yii Framework. Часть 1 — Структура виджета
2013-01-02 в 15:23, admin, рубрики: ajax, html, javascript, php, yii, yii framework, Веб-разработка, метки: ajax, html, javascript, PHP, yii framework В первой части мы создадим виджет, который будет «жить» сам по себе, и не зависеть от проекта. Я имею ввиду, что у него будут свои css, js, рисунки и свое представление (вьюха). Для использования виджета необходимо добавить путь, где он будет лежать, в конфиг Yii (main.php) «раздел» import.
Читать полностью »
Скроллинг страницы вверх
2012-12-29 в 10:41, admin, рубрики: html, javascript, jquery, php, Веб-разработка, Песочница, метки: html, jquery, PHP С появлением удобной (на мой взгляд, на ваш может быть и нет) пагинции страниц с помощью скролинга (Scroll+Ajax), на многих сайтах, стало неудобно подниматься вверх (обратно к меню сайта), так как внедряя технологию некоторые программисты забывают о том, что меню сайта находится в шапке, и нет возможности быстро до него «достучаться». А ведь каждый знает, что одно из главных требований пользователей это удобство.
Расскажу как реализовать кнопку, при нажатии на которую пользователь поднимется вверх.
Читать полностью »
Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)
2012-12-28 в 15:04, admin, рубрики: composer, coroutine, phalcon, php, PHP-FIG, traits, yii, Zend Framework, Блог компании Zfort Group, Веб-разработка, дайджест, Новости, подборка, ссылки, метки: composer, coroutine, phalcon, PHP, PHP-FIG, traits, yii, zend framework, Веб-разработка, дайджест, новости, подборка, ссылки
Следуя традиции, мы решили подвести итоги уходящего года и выделить самые значимые события в мире PHP, которых, к счастью, было немало. И, конечно же, подборка с ссылками на свежие материалы.
Приятного чтения!
Читать полностью »
Генерация аватарок средствами PHP, глаза
2012-12-28 в 9:38, admin, рубрики: images, php, метки: images, PHPCoroutines в PHP и работа с неблокирующими функциями
2012-12-28 в 6:01, admin, рубрики: coroutine, phpОдним из самых больших нововведений в PHP 5.5 будет поддержка генераторов и корутин (сопрограмм). Генераторы уже достаточно были освещены в документации и в нескольких других постах (например в этом или в этом). Сопрограммы же получили очень мало внимания. Это гораздо более мощный, но и более сложный для понимания и объяснения, инструмент.
В этой статье я покажу как реализовать планировщик задач с использованием корутин, чтобы вы поняли, что с ними можно делать и как их применять. Начнем с нескольких вступительных слов. Если вы считаете, что вы уже достаточно хорошо знаете как работают генераторы и корутины, тогда можете сразу перейти к разделу «Совместная многозадачность».
Генераторы
Суть генератора в том, что это функция, которая возвращает не просто одно значение, а последовательность значений, где каждое значение выброшено одно за другим. Или, другими словами, генераторы позволяют вам реализовать итератор, без лишнего кода.
Читать полностью »
Как сэкономить память, если нужно обработать большое количество объектов-моделей
2012-12-27 в 10:38, admin, рубрики: iterator, php, оптимизация, потребление памяти, метки: iterator, PHP, оптимизация, потребление памяти Пост навеян статьей Сколько памяти потребляют объекты в PHP..., размышлениями над самописной ORM и книгой Мэтта Зандстра «PHP. Объекты, шаблоны и методики программирования» (ISBN 978-5-8459-1689-1).
Мэтт в главе «Шаблоны баз данных» пишет о том, что если нужно создать несколько тысяч объектов из базы, то для экономии памяти, нужно решать эту задачу не «в лоб», а генерировать объекты по требованию, используя интерфейс Iterator.
Первая мысль была: «Если мы достали 5000 записей из базы, значит мы хотим все их как-то обработать, и какая разница. сразу будут созданы объекты или по требованию?», но потом понял — если вся работа с каждым объектом происходит внутри цикла foreach или while( next() ), то создание объекта по требованию и автоматическое его уничтожение на следующем витке цикла даст существенную экономию памяти. На деле оказалось — очень существенную.
Читать полностью »
Опережающие и ретроспективные проверки в регулярных выражениях
2012-12-26 в 20:10, admin, рубрики: php, Веб-разработка, Регулярные выраженияНаткнулся на чрезвычайно простую но интересную задачку, потребовавшую немного выйти за рамки рабоче-крестьянского курса регулярных выражений — и надеюсь краткий рассказ о ней будет полезен тем, кто еще не стал регулярным джедаем.
Безусловно, читая документацию регулярных выражений по диагонали вы, как и я — наверняка не раз наталкивались на опережающие и ретроспективные проверки, но без осознания для какой задачи они могут быть нужны — мозг за них в последствии может и не уцепиться.
Задача банальная — заменить переводы строк на <br/>, за исключением случая, если перед этим шел html-тэг (для простоты только символ >). Отходя от темы — такой алгоритм замены нужен чтобы иметь и автоматическое добавление переводов строки внутри блоков текста в стиле хабра, и при этом не ломать обычную HTML верстку.Читать полностью »
Как устроены массивы в PHP
2012-12-23 в 17:56, admin, рубрики: array, internals, php, метки: array, internals, PHPВ прошлой статье я рассказывал о переменных, теперь пойдет речь о массивах.
Что такое массивы на уровне PHP?
На уровне PHP, массив — это упорядоченный список скрещенный с мэпом. Грубо говоря, PHP смешивает эти два понятия, в итоге получается, с одной стороны, очень гибкая структура данных, с другой стороны, возможно, не самая оптимальная, точнее, как выразился Anthony Ferrara:
PHP arrays are a great one-size-fits-all data structure. But like all one-size-fits-all <anything>, jack-of-all-trades usually means master of none.
(на картине изображен HashTable с Bucket-ами, автор неизвестен)
Читать полностью »