Інструменти для візуалізації логів профайлера 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);

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