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

Персональные блоги Делаем самораспаковывающийся архив или секции в PHP файлах

Побудила писать этот код меня только одна вещь — тупые FTP некоторых хостеров.
Нет, файлы заливаются с максимальной скоростью, но вот между окончанием загрузки одного файла и началом загрузки следующего проходит секунд 30.
Так как я сейчас страдаю хренью верстаю и ставлю джомлы в ударных количествах, загрузка 5000+ файлов приводит к зачитыванию хабры и гуглридера до дыр, что однако тоже вредно для здоровья.
С целью исправить сиё досадное упущение и пишется небольшой наколеночный скриптик.

PHPКак использовать пространства имён в PHP, Часть 3: Ключевые слова и автозагрузка

image
В части 1 и 2 нашей серии статей мы рассмотрели основы пространства имён, а также импортирование, псевдонимы и правила разбора имён. В данной, заключительной, статье мы обговорим некоторые более продвинутые опции пространства имён.

PHPКак использовать пространства имён в PHP, Часть 2: импортирование, псевдонимы и правила разбора имён

image
В части 1, мы обсуждали для чего нужны пространства имён (namespaces) в PHP, и что обозначает зарезервированное слово namespace. В этой статье мы исследуем оператор use и способ, которым PHP разрешает имена пространств имён.

PHPКак использовать пространства имен в PHP, Часть 1: Основы

image

Предисловие: На Хабре уже публиковались несколько статей, посвященных пространству имен в PHP (все ссылки на них я привожу в приложении). Однако, этот интересный и полезный вопрос был раскрыт не полностью. Поэтому я привожу перевод первой из трех статей по данной теме (остальные переведу в ближайшее время). P.S. Статья для начинающих

Пространства имен (namespaces) — это одно из самых значительных изменений в PHP 5.3. Они будут хорошо знакомы С# и Java разработчикам, и, вероятно, они изменят к лучшему структуру PHP-приложений.

РазработкаИерархические структуры данных и Doctrine

Введение



Хранение иерархических данных (или попросту — деревьев) в реляционных структурах задача довольно нетривиальная и вызывает некоторые проблемы, когда разработчики сталкиваются с подобной задачей.

В первую очередь, это связано с тем, что реляционные базы не приспособлены к хранению иерархических структур (как, например, XML-файлы), структура реляционных таблиц представляет из себя простые списки. Иерархические же данные имеют связь «родитель-наследники», которая не реализована в реляционной структуре.

Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.

Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.

PHPВеб-сервисы в теории и на практике для начинающих

Что такое веб-сервисы?



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

Если посмотреть на веб-сервисы в разрезе стека сетевых протококолов, мы увидим, что это, в классическом случае, не что иное, как еще одна надстройка поверх протокола HTTP.

С другой стороны, если гипотетически разделить Интернет на несколько слоев, мы сможем выделить, как минимум, два концептуальных типа приложений — вычислительные узлы, которые реализуют нетривиальные функции и прикладные веб-ресурсы. При этом вторые, зачастую заинтересованы в услугах первых.

Но и сам Интернет — разнороден, т. е. различные приложения на различных узлах сети функционируют на разных аппаратно-программных платформах, и используют различные технологии и языки.

Чтобы связать все это и предоставить возможность одним приложениям обмениваться данными с другими, и были придуманы веб-сервисы.

PHPКонтроль скалярных типов в PHP 5

[Обновлено]: Внесены некоторые изменения в код. Спасибо ithilion и LoneCat

Все уже знают что в PHP 5 в аргументах функций можно указывать их тип, за исключением… скалярных типов, т.е.: integer, string, boolean, float, и т.д.

Однако на странице мануала о контроле типов, в комментариях, Daniel L. Wood приводит достаточно интересное решение этой проблемы с помощью класса-обработчика ошибок. Единственный существенный недостаток этого решения — это его производительность.

Ниже я попытаюсь рассказать, как можно оптимизировать это решение, а также стоит ли им пользоваться, в принципе, в продакшн релизах.