С появлением удобной (на мой взгляд, на ваш может быть и нет) пагинции страниц с помощью скролинга (Scroll+Ajax), на многих сайтах, стало неудобно подниматься вверх (обратно к меню сайта), так как внедряя технологию некоторые программисты забывают о том, что меню сайта находится в шапке, и нет возможности быстро до него «достучаться». А ведь каждый знает, что одно из главных требований пользователей это удобство.
Расскажу как реализовать кнопку, при нажатии на которую пользователь поднимется вверх.
Читать полностью »
Рубрика «php» - 220
Скроллинг страницы вверх
2012-12-29 в 10:41, admin, рубрики: html, javascript, jquery, php, Веб-разработка, Песочница, метки: html, jquery, PHPЛучшее в мире 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, Веб-разработка, дайджест, новости, подборка, ссылки .png)
Следуя традиции, мы решили подвести итоги уходящего года и выделить самые значимые события в мире 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-ами, автор неизвестен)
Читать полностью »
Используем «Яндекс.Чистый Веб» для защиты от спама
2012-12-23 в 3:28, admin, рубрики: php, спам, Спам (и антиспам), яндекс, Яндекс API, метки: спам, яндекс, яндекс apiУже достаточно долгое время Яндекс предоставляет бесплатный сервис обнаружения спама в сообщениях под названием «Яндекс.Чистый Веб», однако до сих пор он остаётся малопопулярным.
В этом посте я продемонстрирую основные методы работы с API «Яндекс.Чистый Веб» на примере PHP-класса.
Easyweb — XSLT-движок для веба
2012-12-18 в 10:14, admin, рубрики: easyweb, php, sql, xhtml, xslt, Веб-разработка, метки: easyweb, PHP, sql, xhtml, xsltEasyweb — это верстальный движок общего назначения, написанный на PHP, и предназначенный для выдачи XML-ответа по HTTP-запросу. В его основе лежит шаблонизатор XSLT, а сам движок представляет собой набор решений основных задач в вебе: роутинг запросов, разграничение прав доступа, разделение способов получения данных и способов их представления, локализация, вспомогательные PHP классы и фасилити, и так далее. Проект является сборником архитектурных и концептуальных идей, накопившихся за шесть-семь лет разработки для веба.
Если говорить о классификации, то Easyweb, вероятно, больше всего похож на Content Management Framework. Он, в некотором смысле, немного выше уровнем, чем большинство программных фреймворков, поскольку основная часть продукта, созданного на Easyweb, выстроена на XML-технологиях. В то же время он гораздо ниже уровнем, чем привычные CMS — в нем нет встроенного пользовательского интерфейса, готовых шаблонов страниц или предустановленного набора SQL-запросов.
В двух словах, сайт или XML-сервис на Easyweb — это XML-конфиг, набор шаблонов страниц, база данных, а также скрипты для обработки POST-запросов. Все перечисленное создается вебмастером самостоятельно в его любимом текстовом редакторе, а также админке его любимой СУБД. Easyweb будет интересен тем, для кого выполняются все перечисленные условия:
- Если вас по каким-либо причинам не устраивают существующие CMS;
- Если вы задумываетесь о том, что нужно «написать все самому»;
- Если вас пугает сложность существующих программных фреймворков;
- Если вы любите XHTML, а также дружное семейство XML-технологий.
Расскручиваем сообщество через API ВКонтакте — разоблачение изнутри
2012-12-17 в 16:33, admin, рубрики: api, php, Вконтакте, Вконтакте API, Песочница, метки: api, PHP, ВконтактеПролог
В больших сообществах стало популярным делать рекламу в виде wiki-страниц, что и смогло расскрутить сообщество до 100 000 подписчиков, меньше чем за месяц. В сообществах стало популярным публиковать половину цытаты, а продолжение делать уже на самой wiki-странице, вот тут уже и пошло дело.

