Метка «PHP» - 84

в 16:22, , рубрики: php, метки:

PHP / PHP 6 не будет, не осилили
Забавно, но не нашёл на хабре упоминания об этом даже в комментариях. Пора устранить этот недостаток, ведь многие используют только хабр, как источник информации.
Так вот PHP 6 не будет, вообще. 11 марта 2010 команда разработчиков приняла решение об отмене выпуска PHP 6 в текущем его виде. В результате транк с PHP 6 был перенесён в бранч, а в транке образовалась новая версия — 5.4, в которую разработчики перенесли все наработки из PHP 6, кроме юникода.
Ниже приведен краткий пересказ презентации (pdf), сделанной Andrei Zmievski на PHP Community Conference в 2011 году.
Но для начала рассмотрим как юникод поддерживается сейчас
В исходном коде:
Читать полностью »

Если вы PHP-разработчик, и по разным обстоятельствам тесты для своих приложений не пишете, то эта статья для вас. В ней я постараюсь вкратце показать с чего начать и что делать, чтобы написание тестов приносило вам радость, а вашему приложению стабильность.
Итак, первый совет. Забудьте всё что вы знаете о юнит-тестах. Швырните табуреткой в человека, который сказал вам, что без них не обойтись. Попробуем разобраться, в каких случаях нужно их использовать, а в каких — нецелесообразно.
Я абсолютно уверен, что PHP-программисты редко пишут тесты, потому что начинают не с того конца. Все знают, что тесты это хорошо и клево. Но открыв сайтЧитать полностью »

PHP / [Из песочницы] Создание “API-Centric” Web Application на PHP
Что такое “API-Centric” Web Application?
Это веб приложение которое большая часть функционала реализуется через API. Например: если вы авторизовываетесь, то вы отправляете свои данные через функции API, а API уже возвращает результат success или же ошибку. Другой характеристикой API является то что API не зависит от состояния пользователя.Зачем это нужно ?
Как веб разработчики мы видим, что технологии развиваются каждый день. И все знают, что люди используют не только браузеры на pc, но и android, apple, windows phone и прочие гаджеты для доступа в интернет к своим любимым сайтам.Так причём же тут API ?
Одним из преимуществ создания api-centric приложения этоЧитать полностью »

в 19:18, , рубрики: php, фреймворк, метки: ,

PHP / Бэкдор в Horde
В open source PHP-фреймворке Horde обнаружен бэкдор. Расследование показало, что злоумышленник проник на FTP сервер и изменил три дистрибутива для неавторизованного исполнения PHP-кода. Уязвимость зарегистрирована как CVE-2012-0209.
Затронутые релизы:Horde 3.3.12, скачанный с FTP с 15 ноября по 7 февраля

Horde Groupware 1.2.10, скачанный с FTP с 9 ноября по 7 февраля

Horde Groupware Webmail Edition 1.2.10, скачанный с FTP со 2 ноября по 7 февраля

Horde 4 не затронут, репозитории на CVS и Github тоже. Проверить наличие вредоносного кода можно с помощью поиска сигнатуры в /path/to/horde:
$m[1]($m[2])

Всем пользователям перечисленных версийЧитать полностью »

Веб-разработка / Облегчаем php.ru на 1000%

Он был приобретен у Артемия Лебедева в далёком 2004 году, до этого момента, на нем около 5 лет красовалась вот такая замечательная картинка:
Но вдруг времени заниматься развитием домена не стало, на него был повешен редирект на php.net и все успокоилсь примерно на год.
Через год, собравшись с силами слепили кой чего из того что было и по неопытности, и получилось вот такое чудо:
Чудо работало, люди общались, хакеры хакали, недовольные обижались — в общем всё шло своим чередом.
Очередной позыв произошел в 2009, когда был создан и даже свёрстан новый дизайн портала.
Продумана стратегия развития, кучаЧитать полностью »

PHP / [Из песочницы] Панель инструментов Xdebug для отладки PHP в Opera
Инструкция по настройке тулбара Xdebug — для тех, кто хочет отлаживать код непременно в Опере (а также для тех, кого жизнь заставила).
Для отладки в Опере я нашёл три способа:
Букмарклет-генератор от JetBrains. Нажимаете «Generate», перетаскиваете ссылки на свой тулбар и, в зависимости от своих настроек, получаете либо длиннющие кнопки с текстом вроде «xdebug This page» (что занимает слишком много места), либо совершенно одинаковые безымянные кнопки с иконками странички (невозможно использовать).

Плагин для Оперы, упомянутый в документации Xdebug, который добавляет кнопку для переключения отладки. Судя поЧитать полностью »

Для чего получать доступ ко всем свойствам объекта и при этом не менять его интерфейс? Например, для того, чтобы написать свою сериализацию. Или чтобы передать объект в приемлемом виде используя http. Или для чего-нибудь ещё.
Возьмём для эксперимента простой класс.
class aClass
{
protected $protected_property = 'protected_value';
private $private_property = 'private_value';
public $public_property = 'public_value';
}

$an_object = new aClass;

var_dump($an_object);
// object(aClass)#1 (3) {
// ["protected_property":protected]=>
// string(15) "protected_value"
// ["private_property":"aClass":private]=>
// string(13) "private_value"
// ["public_property"]=>
// string(12) "public_value"
// }

Если использовать отражение, то получить все свойства объекта можно получить, например, вот такимЧитать полностью »

Доброго времени суток. Многие из вас, кто так или иначе соприкасался с веб-разработкой, знают о таком удобном способе обращения к БД как ActiveRecord, чуть меньше человек согласиться, что это действительно очень удобно, примерно столько же понимает, что это далеко не всегда лучшее решение для проекта из соображений производительности. И это действительно так, но можно много чего придумать для избавления от этих проблем: кеширование всего и вся, различные архитектурные ухищрения и т.д.
Именно различными улучшениями AR мы и займемся на протяжении всего цикла этих статей :)
Если уж совсем подробно: мы будем вместе писатьЧитать полностью »

Недавно мне пришлось разбираться с защитой от ботов, используемой на нескольких довольно популярных ресурсах.
На первый взгляд защита показалась обычной установкой куки через javascript, справиться с которой — дело 15-ти минут. В самом деле, после небольшого исследования стало понятно где что делается и какие параметры куда передаются, остается только переписать небольшую функцию с javascript на php и дело в шляпе.
Но все оказалось не так просто. И хотя в итоге защита была сломана, на это потребовалось далеко не 15 минут, и сам принцип защиты оказался для меня новым и довольно интересным.
Итак, обо всем по порядку.
Читать полностью »

Для любой задачи можно придумать тест, который даст необходимый результат. ©
Но в этот раз никаких специальных задач не было, а просто захотелось узнать насколько быстр GHC и вот что получилось.
Дано: массив 16k целых чисел
Тест: 1000 раз quicksort
C (own) 0m2.528s x 1.00
C (qsort) 0m3.282s x 1.30
C++ (std) 0m3.250s x 1.28

Haskell 0m3.867s x 1.53

PHP 1m18.73s x 30
Python 1m38.55s x 38
Perl 2m53.69s x 67

В последних трех тестах не стояла цель получить лучшие результаты, они оставлены для общего маштаба.Исходники: as is, без специальной тест системы, использовался time (man 1 time)Железо: MacBook Pro Mid 2010 / 2.4 GHz Intel Core i5Версии:
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js