Метка «PHP» - 68

Преамбула

В настоящее время очень популярно заниматься визуализацией каких-либо данных на картах. Да прочем и не только визуализацией, применений множество: игры, гео-сервисы, визуализация, статистика и многое-многое другое. С одной стороны, применение canvas это хорошо и современно, с другой же — количество объектов может превышать все мыслимые и немыслимые пределы, что ведет к уменьшению скорости работы пользователя с такими сервисами, тысячи полигонов на canvas «тормозят клиента», браузеры «жрут» память в огромных количествах и т.п. Это не говоря уже о том, что хоть и редко, но необходима поддержка «старых» браузеров, не поддерживающих canvas/html5.

Простой пример

Рисуем тайлы с данными для GoogleMap на PHP
Представьте что-то подобное этой картинке, уменьшите масштаб и увеличьте тем самым количество полигонов в «кадре» до 5 000. Офисный компьютер двух- или трех-летней давности может и умереть на отрисовке такой карты. Бороться с этим можно просто добавив оверлей слой на карту со своими тайлами.

Читать полностью »

Профилирование и отладка php приложений с помощью xhprof & FirePHP
Всем веб-разработчикам, особенно в высоконагруженных проектах, рано или поздно приходится сталкиваться с профилированием своих приложений. Конечно, все мы знаем xdebug, с помощью которого можно проводить отладку серверной части. Однако, в тяжелых RIA-приложениях значительно чаще приходится отлаживаться в связке фронтенда+бэкэнд, всякие ajax-запросы, скорость отработки конкретных скриптов и все такое прочее. И для этих задач есть довольно-таки не плохой набор инструментов. Это xhprof и firephp.
Читать полностью »

Composer — менеджер зависимостей для PHPComposer (getcomposer.org) — это относительно новый и уже достаточно популярный менеджер зависимостей для PHP. Вы можете описать от каких библиотек зависит ваш проект и Composer установит нужные библиотеки за вас! Причём Composer — это не менеджер пакетов в классическом понимании. Да, он оперирует с сущностями, которые мы будем называть «пакетами» или библиотеками, но устанавливаются они внутрь каждого проекта отдельно, а не глобально (это одно из основных отличий от старого-доброго PEAR).

Кратко, как это работает:

  1. У вас есть проект, который зависит от нескольких библиотек.
  2. Некоторые из этих библиотек зависят от других библиотек.
  3. Вы описываете в своём проекте те библиотеки, от которых непосредственно зависит ваш код.
  4. Composer находит нужные версии требуемых библиотек для всего проекта, скачивает их и устанавливает в папку вашего проекта.

При создании Composer авторы черпали идеи и вдохновение из аналогичных проектов: npm для Node.js и Bundler для Ruby.

Изначально он был спроектирован и разработан двумя людьми Nils Adermann и Jordi Boggiano, сейчас в проекте участвует более двадцати контрибьюторов, Проект написан на PHP 5.3, распространяется под лицензией MIT и доступен на github.

Первые коммиты были сделаны апреле 2011 года и на сегодняшний день Composer находится в стадии «alpha3». Однако, он уже достаточно стабилен и используется многими популярными PHP проектами (например, Symfony 2). Список проектов использующих Composer можно посмотреть на сайте packagist.org — это официальный репозиторий Composer пакетов. Кстати, на недавней конференции Devconf 2012 разработчик фреймворка Yii в своём докладе упомянул, что Yii2 скорее всего тоже будет использовать Composer.

В этой статье я кратко опишу основные возможности Composer и мы попробуем создать демонстрационный проект использующий Composer для загрузки необходимых библиотек. Все примеры будут доступны на github.com и bitbucket.org.

Читать полностью »

Привет, читатели!
По следам недавно прошедшей конференции DevConf 2012 хочу поделиться записями из своего блокнота, которые показались лично мне наиболее интересными и полезными. Возможно, кому-то все это хорошо известно. Поскольку доклады шли одновременно в нескольких залах, то все их посетить было невозможно, поэтому ваши дополнения с удовольствием почитаю в комментариях.
Темы, которые прежде всего интересовали меня, это:
— развертывание системы и непрерывная интеграция (Continuous Integration)
— PHP 5.4, PHPUnit, Yii
— тестирование в javascript
Читать полностью »

Радужные таблицы в домашних условиях

Прошедшая неделя с точки зрения информационной безопасности выдалась исключительно «удачной»: то база хэшей LinkedIn утекла в сеть, то хэши last.fm. И во всех обсуждениях, так или иначе, упоминают о радужных таблицах.
Слышали о них почти все, но делали их своими руками очень немногие.
Читать полностью »

В данной статье приведены простые рекомендации по безопасности PHP прежде всего для начинающих программистов.
Читать полностью »

Неожиданно не нашёл информации на русском языке о такой замечательной возможности HipHop, как статический анализ кода для PHP, а потому встречайте обзор, на идею которого меня натолкнула презентация Расмуса на DevConf.

А как это вообще?

Статический анализ кода — вещь весьма полезная, ведь иначе ошибку мы не увидим, пока функция, её содержащая, не будет вызвана. Как же это делает HipHop? Он транслирует PHP в C++!

Таким образом мы получаем возможность статически проанализировать C++ код, что, в общем, давно никого не удивляет, а потом применить полученную информацию к PHP (естественно автоматически).

Итак, начнём.
Читать полностью »

в 12:40, , рубрики: extension, libsass, php, sass, метки: , , ,

Недавно я наткнулся на интресную статью о Python-биндинге для libsass, в которой я узнал о существовании такой замечательной библиотеки, как libsass (реализация рубивского sass на C++). Имея опыт в написании PHP расширений, я решил сделать SASS/SCSS обработчик, используя libsass. Исходный код полученного расширения Вы можете найти тут — sass-php.
Читать полностью »

Anubis
Продолжая своеобразную неделю криптографии на Хабре, я решил поделиться своей реализацией алгоритма шифрования Anubis на PHP. Anubis представляет собой блочный алгоритм шифрования, являющийся, по-сути, модификацией алгоритма Rijndael, принятого в качестве стандарта шифрования в США. Авторами шифра являются Винсент Рэймен — один из разработчиков Rijndael и Пауло С. Л. М. Баррето — известный криптограф, один из разработчиков хэш-функции Whirlpool.

Почему я выбрал именно Anubis? Это не патентованный алгоритм, доступный для свободного использования. Anubis отвечает современным требованиям безопасности — размер блока составляет, как и в AES, 128 бит, а длина ключа может варьироваться от 128 до 320 бит. Кроме того, с момента опубликования в 2000-м году, в алгоритме Anubis не обнаружено слабых мест. Он не попал в проект NESSIE, но лишь из-за своей схожести с Rijndael.
Читать полностью »

Прошло почти 3 недели с момента публикации моего первого поста о коллекциях объектов в PHP. За это время было сделано много работы и получено много опыта, которым я хочу поделиться. Наибольшее количество изменений претерпели карты, большая часть внимания будет уделена именно им.

В этом посте вы увидите:

  • Проект и реализацию коллекций объектов в PHP.
  • Тесты производительности.
  • Впечатления о написании первых Unit тестов.
  • Интересную информацию о работе с множествами объектов PHP.

Читать полностью »


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