Обновить
34.07

PHP *

Скриптовый язык общего назначения

Сначала показывать
Порог рейтинга
Уровень сложности

Пишем на картинках

Время на прочтение7 мин
Количество просмотров15K
В течение последнего времени что-то часто стали мелькать статьи про обработку изображений на php. Скругленные края уже были, тени были, мокрый пол был, еще куча всего было.

А вот надписей вроде еще не было. Значит будут. :-)

Представляю вашему вниманию не большой, но в тоже время достаточно богатый возможностями класс (на основе GD) написания текста на картинках TrueType-шрифтами.
Код и пример под катом

Отладка скриптов в Zend Studio

Время на прочтение2 мин
Количество просмотров7.2K
Не так давно, я обратился к хабро-общественности за помощью в этом топике. Тогда мне не только не помогли, но еще и заминусовали карму. Посему разбираться пришлось самому…
Читать дальше →

распараллеливаем выполнение задач с помощью stream_select()

Время на прочтение7 мин
Количество просмотров5.3K
Не так уж много кто знает о том, что некоторые задачи в PHP можно заставить выполняться параллельно — и для не этого не нужно прибегать к форкам. В PHP5 есть stream-functions, и среди них — stream_select().

Прочитав статью Cameron Laird (http://www.ibm.com/developerworks/opensource/library/os-php-multitask/index.html?S_TACT=105AGX44&S_CMP=EDU), каждый, кто еще этого не сделал, сможет научиться этой технике, я же в этом топике предлагаю вашему вниманию простой небольшой класс Parastreams, который собсно займется распараллеливанием — а уж что делать с полученными из потоков данными — вы решите сами, указав обработчики данных.

Читать дальше →

Делаем вебдванольные превьюшки с ImageMagick

Время на прочтение2 мин
Количество просмотров15K
Недавно, у меня случилась проблема с GD на сервере — он перестал понимать png, после получаса мытарств, решил посмотреть на ImageMagick и его PHP интерфейс IMagick
После недолгого гугления нашел замечательный блог посвященный Imagick. Там же нашел способ делать красивые превьюшки. Однако, способ, предложенный там, правильно отрабатывал только с png картинками. Я немного поковырялся и сделал свой.

Читать дальше →

Отрицательная сторона передачи значений по ссылкам

Время на прочтение3 мин
Количество просмотров12K
Без всякой лирики, прямо: использование ссылок для передачи значений снижает производительность. Мы думаем, что вместо того что бы передавать копию переменной, сценарий передает саму переменную, исходя из чего делаем вывод, что это должно работать быстрее. Увы, это заблуждение. Что бы понять почему давайте разберёмся с тем, как процессор Zend Engine обрабатывает значения.
Читать дальше →

Разделитель в пространствах имен в PHP

Время на прочтение1 мин
Количество просмотров1.5K
Рекомендую ознакомиться с php internals: endnamespacediscussion

После очередной дискуссии в IRC принято решение использовать символ \ в качестве разделителя в пространствах имен в PHP. Патч готовится, и неизвестно войдет ли он в PHP 5.3 или нет.

С аргументацией можно ознакомиться здесь или здесь

Основная проблема при использовании :: в качестве разделителя по мнению разработчиков заключается в том, что понять что происходит в строке кода
Foo::bar();

станет трудно (это вызов статического метода bar() из класса Foo или вызов функции bar() из пространства имен Foo?). Дополнительным ограничением также является сам интепретатор PHP, который не сможет отличить разрешение имени от вызова статического метода. Избавиться от такой неоднозначности предполагается при помощи символа \.
Читать дальше →

Помогите развиваться

Время на прочтение1 мин
Количество просмотров818
Добрый день. Так как на хабре нет возможности просто задать вопрос, поэтому пишу топик.
Я — программист на PHP. Учился сам с нуля ещё на мобильном телефоне (Siemens MC60 с поддержкой файловой системы, фтп) делая wap сайты. Сейчас пытаюсь делать сайты для «большого» интернета, но сомневаюсь в качестве своих разработок. Сейчас прошу кого-нибудь помочь мне в понятии моих ошибок (я уверен, их много) в моём коде путём просмотра его.
Если будет кто-то, кто согласится поучить меня немного — я выложу архивы (кстати, программирую процедурно).

P.S. Почему я прошу помощи? Потому что больше никто не может мне помочь. В университете на предмете Интернет-программирования я оказываюсь умнее преподавателей, из знакомых — никто таким не интересуется.

P.P.S. Прошу, если не нравится топик — заминусуйте его, но не минусуйте карму, так как из-за этого я не смогу даже комментировать нормально (а я считаю, что комментарии у мои не достойны быть опубликованными раз в пять минут).

P.P.P.S. Убрал.
Читать дальше →

Вышел alpha-релиз Smarty 3

Время на прочтение2 мин
Количество просмотров1.2K
Оказывается, третьего дня, то есть 17 октября сего года, вышел альфа-релиз многими любимого (и многими же презираемого) шаблонизатора Smarty.

Интерфейс шаблонизатора особо не изменился. Это всё те же display(), fetch() и assign(), которые покрывают процентов 99 всех потребностей. Монструознное assign_by_ref() почило в бозе. Туда ему и дорога ;)

Внутренности же претерпели более существенные изменения:
Читать дальше →

Анализатор логов PHP-на-Apache

Время на прочтение2 мин
Количество просмотров12K
Решил написать об одной полезной утилите, которую написал в августе и уже два месяца успешно использую.
Утилита сводит к минимуму усилия по слежению за логами ошибок PHP.
Читать дальше →

Закачка ролика на ruTube с использованием cURL

Время на прочтение6 мин
Количество просмотров4.1K
На хабре уже были топики, посвященные открытому API для работы с сервисом ruTube. В примере, который можно скачать с сайта ruTube (http://rutube.ru/partners/phpapi.html), отправка ролика осуществляется следующим образом (код взят из примера без правок):

Читать дальше →

О стиле программирования

Время на прочтение2 мин
Количество просмотров4K
В последнее время все чаще можно услышать такие мнения: «PHP — это язык для домохозяек» или «PHP и веб-программирование не имеют ничего общего». Собственно причиной, которая побудила меня написать этот топик, как раз является ссылка на ЖЖ, промелькнувшая на хабре, где сравнивается Perl и PHP. Сравнение, естественно, не в пользу последнего.
Читать дальше →

Компоненты Zend Framework отдельно

Время на прочтение1 мин
Количество просмотров1.3K
Яни Хартикайнен практикуясь в использовании Tokenizer-а PHP написал очень полезную штуку, позволяющую скачать в ZIP отдельные части Zend Framework со всеми зависимостями. Например, для Zend_Acl скачаются

Zend/Acl.php
Zend/Acl/Resource/Interface.php
Zend/Acl/Role/Registry.php
Zend/Acl/Role/Interface.php
Zend/Acl/Role/Registry/Exception.php
Zend/Acl/Exception.php
Zend/Exception.php
Zend/Acl/Assert/Interface.php


Пользуемся

Cakephp Sphinx behavior

Время на прочтение8 мин
Количество просмотров1.8K
По долгу службы мне приходится работать с Cake и Sphinx. Однажды мне надоело делать поиск к сфинксу ручками, и я решил написать небольшой behavior.
Код и примеры

Ближайшие события

php|architect снижает цены на подписку

Время на прочтение1 мин
Количество просмотров910
php|architect снизили цены годовой подписки на одноимённые журналы на 70%. Теперь можно получать журналы целый год за 40$ (и печатный вариант в том числе).

Уже подписавшихся тоже не обделили: их ждут подарки в виде бесплатных номеров из архива.

Подписаться можно тут

Очень надеюсь, что это поможет поднять общий уровень php программистов…

Типизация и PHP

Время на прочтение3 мин
Количество просмотров2.4K
Не знаю как вам, но мне не редко случается в ходе отладки приложения долго ковыряться в ядре и библиотеках, только для того чтобы выяснить что ошибка была на самой поверхности, скажем в неверно переданном параметре. И тогда думаешь «кабы не поленился добавить валидацию на входе функции, столько бы времени своего сэкономил!». Сделать то это не сложно, да не хочется портить прозрачность бизнес-логики кучей второстепенных условий. По сути это сквозная функциональность и здесь бы пригодился АОП-подход, но официально PHP по прежнему не поддерживает АОП. Что делать? Мне ныне видится следующее решение.

Читать дальше →

Индустрия it-велосипедов

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

Введение


Я точно не могу сказать, что заставило написать этот пост — может быть мой накопившийся опыт и принадлежность к php-программистам, которые, всемирно известны своим быдлокодом или недавний пост, в котором автор описывает проблему, появившуюся в его велосипеде и связанную с глобальными переменными в различных модулях. 

Почитав комментарии к которому, мне стало уж совсем плохо… Я просто не понимал как люди не видят сути проблемы, а видят только лишь ее последствия — проблему в велосипеде. А суть то заключается в том, что у автора напрочь отсутствуют какие-либо познания в «велосипедостроении». И что самое страшное — эти знания отсутствуют не у одного него. А практически у всей массы изобретателей которые сами велосипеды видели только на картинках. 

А если взять в расчет то, что они не хотят даже посмотреть на другие велосипеды…
 
Читать дальше →

Еще одна реализация многопоточности на PHP

Время на прочтение8 мин
Количество просмотров7K
Итак… Приступим.
В последнее время я встретил сразу 2 реализации многопоточности на Хабре. Немного подумав я решил написать и свой вариант.
Но так как у меня нет возможности использовать PCNTL библиотеку, то мне пришлось извратиться…

Задача: реализация многопоточности на PHP (threads)

Издержки: нет модуля PCNTL ( build w/o PCNTL )

Решение: чистый PHP + Unix ( pure PHP + Unix )

Читать дальше →

Многопроцессовые демоны на PHP

Время на прочтение3 мин
Количество просмотров44K
Зачем может понадобиться писать демоны на PHP?
  • Выполнение трудоемких фоновых задач;
  • выполнение задач, которые длятся больше, чем время ожидания при HTTP-запросе (30 секунд);
  • выполнение задач на более высоком уровне доступа, чем серверный процесс (читай — под рутом).

Читать дальше →

Smarty-плагин для Gravatar

Время на прочтение2 мин
Количество просмотров1.2K
Многим известно про популярный сервис — Gravatar. Кратко напомню его суть — любой пользователь может зарегистрироваться там, загрузить свой аватар и связать его со своим e-mail адресом. Сервис Gravatar предоставляет возможность получить аватар любого зарегистрированного пользователя. Данный плагин позволяет построить адрес для аватара пользователя в Smarty шаблонах.
Подробнее о плагине...