Здравствуй, читатель!
С момента первой публикации прошло уже полгода. За это время в сервисе произошло много изменений. Новый сайт. Доработанная документация. Улучшенное апи. Читать полностью »
Здравствуй, читатель!
С момента первой публикации прошло уже полгода. За это время в сервисе произошло много изменений. Новый сайт. Доработанная документация. Улучшенное апи. Читать полностью »
Приглашаем всех желающих посетить очередную встречу для разработчиков ThinkPHP #11, которая пройдёт 17 апреля в Харькове. Вот уже третий год наша компания организует встречи PHP-разработчиков, на которых вы можете поделиться своим опытом, узнать от коллег о тех или иных решениях и просто пообщаться с единомышленниками в непринуждённой атмосфере. Здесь рады всем, как начинающим, так и многоопытным разработчикам.
В этот раз на ThinkPHP выступят три докладчика:
Читать полностью »
Сегодня объекты используются очень активно, хотя это трудно было предположить после выхода PHP 5 в 2005 году. Тогда я ещё мало что знал о возможностях этого языка. Пятую версию PHP сравнивали с предыдущей, четвёртой, и главным преимуществом нового релиза стала новая, очень мощная объектная модель. И сегодня, десять лет спустя, около 90% всего PHP-кода содержит объекты, не изменившиеся со времени PHP 5.0. Это убедительно говорит о том, какую роль сыграло внедрение объектной модели, неоднократно улучшавшейся на протяжении последующих лет. В этом посте я хотел бы рассказать о том, как всё устроено «под капотом». Чтобы люди понимали суть процессов — почему сделано так, а не иначе — и лучше, полнее использовали возможности языка. Также я затрону тему использования памяти объектами, в том числе в сравнении с эквивалентными массивами (когда это возможно).
Я буду рассказывать на примере версии PHP 5.4, и описываемые мной вещи справедливы для 5.5 и 5.6, потому что устройство объектной модели там почти не претерпело изменений. Обратите внимание, что в версии 5.3 всё не так хорошо с точки зрения возможностей и общей производительности.
В PHP 7, который пока ещё активно разрабатывается, объектная модель переработана не сильно, были внесены лишь незначительные изменения. Просто потому что всё и так хорошо работает, а лучшее — враг хорошего. Были добавлены возможности, не затрагивающие ядро, но здесь об этом речи не пойдёт.
Читать полностью »
В этом цикле статей я хочу показать, как создать портлетную платформу. Моя главная цель — в лучшем виде презентовать проект, к разработке которого я возвращаюсь время от времени. Каждая статья будет снабжаться ссылкой на GitHub. По окончанию цикла там будет открыт исходный код всего проекта. Материалы первой статьи — уже там.
На текущий момент у меня есть портлетная платформа, написанная на PHP. Сразу прошу web-разработчиков, не знакомых с PHP, но использующих в своей работе Java, C#, Python или любой другой язык, не проходить мимо. Я сам, прежде всего, Java-разработчик, и упор в цикле статей будет поставлен не на код, а на техники и архитектурные приёмы. Кроме того, результат может оказаться полезен разработчику на любом языке. Мне, даже в проектах, разрабатываемых на Java, результат — очень полезен.
Читать полностью »
В этой статье я расскажу о некоторых тонкостях запуска php-скриптов на хостингах, незнание которых может попортить немало нервов и начинающим программистам, и мастерам средней руки.
Причина написания статьи: проблемы с запуском скриптов на хостингах с разными настройками. А поскольку настройки могут быть разными, информация приводимая для общих случаев могут не подходить и приводить в заблуждения.
Читать полностью »
Среди php-разработчиков последнее время все сильнее набирает популярность Symfony2. Этот фреймворк позволяет использовать любые модули (в симфони они называются бандлы) для создания базовых фич проекта. По сути стандартная поставка симфони и является набором модулей. Но что если у вас несколько проектов, и вам необходим одинаковый набор функций на них, но подходящего модуля среди открытых нет? Не беда, можно написать свой.
Читать полностью »
Предыдущая статья собрала достаточно много, порой весьма резких, комментариев, вторая часть расскажет об изменениях которые произошли в течении последующих 4х месяцев и по возможности не будет повторять первую часть, которая всё ещё весьма актуальна.
Читать полностью »
ownCloud, как утверждает Википедия — это Свободное и открытое веб-приложение для синхронизации данных, расшаривания файлов и удалённого хранения документов в «облаке». И, как мне кажется, довольно интересное решение для организации собственного домашнего облака.
Однако, ownCloud, устанавливающийся в виде плагина в системе FreeNAS, да и просто из коробки, имеет ряд недостатков, от которых хотелось бы избавится даже при использовании дома:
Второй части этой статьи не планировалось, но тема нашла отклик, так что можно продолжить.
Итак, статический анализ кода в больших проектах необходим, и проекты на PHP — не исключение. По сути, проблемы и методология внедрения средств статического анализа будут те же, что и, скажем, в С++.
При повседневном использовании средств статического анализа можно добиться не только заметного уменьшения количества ошибок, но и улучшения качества кода в целом — показать это на практике и есть цель данной статьи.
О том, что можно найти и исправить с минимальным вложением времени (и максимальной отдачей) я расскажу под катом.
Читать полностью »
Недавно мне попался отличный инструмент для анализа PHP кода. Публикую перевод статьи с обзором этого инструмента.
PhpMetrics использует D3 и несколько сложных алгоритмов для сканирования кода вашего приложения и вывода замысловатых отчетов по результатам.
Читать полностью »