Теги ‘php’

SQL-инъекция в PHP Pro Bid (9)

Нет комментариев »

Удаленный пользователь может выполнить произвольные SQL команды на системе. …


PHP / Список полезных PHP классов и библиотек

Нет комментариев »

Email


  • Swift Mailer

    Swift Mailer легко интегрируется в любое PHP-приложение. Это гибкий и элегантный ООП-подход к отправке писем с множеством функций: отправка эл.почты, используя SMTP, SendMail, Postfix, поддержка серверов и др.
  • PHPMailer

    Лучший класс для работы с эл. почтой. Поддерживает сообщения в цифровой форме, S/MIME шифрование, текстовые и HTML-письма, изображения, поддерживает несколько Email’ов, SMTP-аутентификация.



PHP / PHP 5.3: DoS — это не баг, а фича

Нет комментариев »

Именно так думают девелоперы PHP.

Фича заключается в Segmentation Fault/Access Violation под unix/windows при исполнении кода:

<?php
class A {}
class B extends A {
    public function __construct() {
        $args = func_get_args();
        call_user_func_array(array($this, "parent::__construct"), $args);
    }
}
class C extends B {}
$instance = new C(); // Segfault



Разработчики говорят, что это совсем не баг и хотят добавить в документацию сведения об этой фиче.



Естественно падает вебсервер/воркер сервера. Но это нормально, __ведь так и должно быть__.


Серверная оптимизация / Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Нет комментариев »

Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение



С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.

Статья большая, так что будет поделена на логические блоки:


0. Зачем вообще что-то оптимизировать?

1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options

2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO

3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3

4. Оптимизация базы данных
  4.1 MySQL
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы

4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine

4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность

Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг

 6. Минусы оптимизации



Я безумный / Движок базы данных на PHP

Нет комментариев »

Здравствуйте, уважаемые читатели. Моя база данных не является портом никакой из существующих БД на PHP (в отличие от C#-SQLITE, к примеру), а является уникальной разработкой. Основным отличием от существующих движков, вроде TxtSQL, является поддержка индексов. Если используется только PRIMARY INDEX, скорость вставки на моём ноутбуке достигает 5000/сек. Для PHP-базы, как мне кажется, это вполне неплохо.


PHP / Текст любой ценой: RTF

Нет комментариев »

Что ж продолжим наши изыскания на предмет получения текста из различных форматов данных. Не так давно мы с вами научились вытаскивать текст из zipped-xml-based файлов (odt и docx), а также, в начале этой недели, из pdf. Сегодня мы продолжим с обещанным rtf.



Rich Text Format (он же rtf), вы могли бы подумать, достаточно забытый, хотя и не очень сложный формат представления текстовых данных. Что ж, относительно несложный для получения текста, но за свою историю: от своей первой версии до текущей 1.9.1 — он приобрёл под 300 страниц официально документации и огромное количество надстроек, которые в большей степени нам будут мешать при получении plain text’а. Попробуем их обойти…


Множественные уязвимости в PHP (4)

Нет комментариев »

Удаленный пользователь может обойти некоторые ограничения безопасности. …


PHP / PHPUnit+Netbeans

Нет комментариев »

Здравствуйте.



Не для кого не секрет, что каждый модуль системы необходимо тестировать прежде чем начать использовать его в реальной системе.



Тем самым уменьшается риск появления новых багов, критический дыр и так далее.



В крупных конторах для этого есть специальные люди, которые занимаются тем, что пишутunit-тесты.



Меньшие конторы, фрилансеры этим грешат, да и на маленьких проектах это не всегда нужно. Согласитесь, если класс на 100 строк, то писать тесты на 200 строк кажется лишней тратой времени.



Тем не менее, не буду вдаваться в подробности кому надо кому нет.



Я хочу показать как можно клево тестировать код на NetBeans с удобным GUI.


PHP / JetBrains WebIDE — третья публичная сборка

Нет комментариев »

Вышла третья предварительная сборка (номер 445) новой среды разработки для PHP — JetBrains Web IDE PHP developers edition.

В этой версии мы приняли во внимания пожелания пользователей (в том числе и фидбэк с хабра :) и добавили несколько новых функций — YAML, дополнение членов объявленных через теги PHPDOC @property и @method, а также усовершенствовали дебаггер. Исправлено множество различных ошибок и серьезно улучшена производительность автодополнения в редакторе.



Загрузка новой версии с официальной страницы «программы ранней доступности» Web IDE.

Детальный список изменений — в блоге Web IDE.



UPD: Напоминаю всем что это даже не бета — мы просто демонстрируем над чем работаем. Вы главное пишите чего ВАМ в вашем любимом IDE не хватает и что вы больше всего цените — а мы позаботимся чтобы появилась достойная альтернатива!



YAML + structurePHPDOC completion


PHP / DooPHP — молодой и очень высокопроизводительный PHP фреймворк!

Нет комментариев »

DooPHP

Doo фреймворк — один из быстрейших, если не самый быстрый из доступных PHP фреймворков. Он помогает разработчикам на всех стадиях создания web 2.0 сайтов.

Вольный перевод вводного текста и диаграммы тестов производительности.