Інструменти для візуалізації логів профайлера xdebug

Напевно багато php розробників використовують профайлер xdebug для пошуку вузьких місць в своїх аплікухах. Але просто дивитися логи не зручно, тому були створені інструменти для їх візуалізації. Про них я розповім.

Webgrind

Webgrind це набір php скриптів, які можна поставити на локальний чи віддалений веб сервер. Далі все просто – закачуємо лог і дивимося статистику.
image
Найочевидніший плюс Webgrind’а це мультиплатформенність і простота встановлення.
Показує список функцій які викликалась, кількість викликів (Invocation Count), загальний час витрачений на виклик (Total Self Cost) і загальний час витрачений на виконання (Total Inclusive Cost).
Можна приховати php функції. Можна перейти всередину функції, щоб побачити розгорнуту статистику.
Continue reading

Кукорама. Як це було?

Варіант лого by ScratchІдея запустити власний кулінарний проект в нас (ми, це я і Андрій Мануйленко aka Scratch) з’явилася давно. Спочатку думали зробити пошукову систему по рецептам, потім базу рецептів і врешті-решт вирішили робити соціальну мережу. Весною ми зареєстрували домен cookorama.net (користуючись нагодою хочу подякувати Оленці Занічковській aka @HelenkaF за допомогу з придумаванням назви проекту, концепції і слогану) і запустили першу версію сайту на платформі LiveStreet.
Continue reading

Теми оформлення для NetBeans

Вже майже три тижні пройшло як я почав використовувати FreeBSD. Спочатку на лептопі, а зараз і на десктопі. Все мені подобалось і тільки тема в NetBeans’а була якась не правильна…

screenshot-netbeans-ide-67

Почав копати і накопав ось цей фак Look and Feels in NetBeans.

Якщо вірити тому, що написано, то в Gnome по дефолту повина використовуватись L&F “GTK”. А на ділі в мене NetBeans завантажувався з темою Metalic. Вирішилася ця проблема додаванням –laf GTK до команди запуску. Повністю вона виглядає так:

# netbeans67 --laf GTK

L&F GTK
Таким NetBeans мені подобається більше 🙂

FreeBSD & Zend Framework

Виявляється в FreeВSD можна поставити ZF з портів:

cd /usr/ports/www/zend-framework && make install clean

І, якщо вірити distinfo, то на сьогодні доступна остання стабільна версія ZendFramework-1.8.4. На відміну від Ubuntu, де ZF теж доступний в якості пакету, але оновлюється той пакет з великим запізненням.

Поговоримо про Zend_Navigation

Вихід ZF 1.8 порадував нас низкою нових, корисних компонентів. У цій статті я хочу розповісти про практику використання Zend_Navigation для побудови простого меню сайту, карти сайту і хлібних крихт. Особливо хочеться звернути увагу на використання Zend_Navigation в парі з Zend_Acl.
Continue reading

Передача данних через COM порт в Borland C++Builder6

В рамках останньої сесії довелося робити программу для передачі двох сигналів від передавача до приймача через послідовний порт. Генерацію сигналів і графіків робив Буділовський Сергій, а я робив приймач/передавач. В процесі роботи перерив купу форумів і так як тема актуальна вирішив викласти результат в маси.
Continue reading

Як визначити версію вашого Zend Framework’а?

zend_versionДля визначення номеру поточної версії фреймворку призначений клас Zend_Version. Він може повертати номер поточної версії:

    /**
     * Zend Framework version identification - see compareVersion()
     */
    const VERSION = '1.8.1';

Або порівнювати номер потрібної вам версії з номером поточної:

    /**
     * Compare the specified Zend Framework version string $version
     * with the current Zend_Version::VERSION of Zend Framework.
     *
     * @param  string  $version  A version string (e.g. "0.7.1").
     * @return boolean           -1 if the $version is older,
     *                           0 if they are the same,
     *                           and +1 if $version is newer.
     *
     */
    public static function compareVersion($version)
    {
        return version_compare($version, self::VERSION);
    }

От так все просто. Як це використовувати, то вже ваша справа ;).

Антиплагіат модуль

Антиплагіат модульДесь з місяць назад в мене замовили скрипт антиплагіат модуля. Спочатку я зробив його по алгоритму схожому на текстброкерівський. Але через кілька днів замовник знайшов програму Advego Plagiatus і захотів такий алгоритм як там…
Continue reading

Zend Framework і фільтр для задання файлові унікального імені

Renames file assigning it a unique nameВ процесі роботи над створенням FOSS двигунця для портфоліо (на основі Zend Framework) в мене виникла потреба задавати завантажуванним на сервер файлам унікальні імена. Для цього я створив фільтр на зразок Zend_Filter_File_Rename, який генерує унікальне ім’я файлу і перейменовує початковий файл.

Код фільтру і приклад його використання ви знайдете одразу під катом.
Continue reading

6-ть способів отримати розширення файлу в PHP

$filename = 'mypic.gif';
 
// 1. The "explode/end" approach
$ext = end(explode('.', $filename));
 
// 2. The "strrchr" approach
$ext = substr(strrchr($filename, '.'), 1);
 
// 3. The "strrpos" approach
$ext = substr($filename, strrpos($filename, '.') + 1);
 
// 4. The "preg_replace" approach
$ext = preg_replace('/^.*\.([^.]+)$/D', '$1', $filename);
 
// 5. The "never use this" approach
//   From: http://php.about.com/od/finishedphp1/qt/file_ext_PHP.htm
$exts = split("[/\\.]", $filename);
$n = count($exts)-1;
$ext = $exts[$n];

Ці 5-ть способів я чисто випадково побачив тут. І 6-й спосіб від мене:

$pathInfo = pathinfo($filename);
$ext = $pathInfo['extension'];

Ну, хто більше :)?

UPD. Можна сказати 6.2 від KAndy і VadimVoituk:

$ext = pathinfo($filename, PATHINFO_EXTENSION);

Самий класний спосіб :)!