IDE для PHP: phpStorm вместо NetBeans

23.12.2012
После конференции ThinkPHP посмотрел в сторону IDE PhpStorm. До этого использовал для PHP NetBeans.
Был приятно удивлен коммерческой PhpStorm от jetbrains, в этом посту расскажу что именно я нашел для себя хорошего. Может Вы тоже подумаете использовать ее или найдете что то новое, не смотря на то, что уже ею пользуетесь.
loading phpstorm
Я сам только начинаю ей пользоваться и не буду сейчас углубляться в огромную кучу функционала, скажу только про вещи, которые прям таки не хватало.

Мой отчет с ThinkPHP 5

01.12.2012
Вчера был на конференции ThinkPHP (это в Харькове), было очень интересно, ни разу не пожалел что сходил.
На http://vk.com/thinkphpcomua скоро могут появиться видео и фото с конференции.
elephand php

думай php

Докладчики: experts

experts alive

Конференция была посвящена 2 вопросам:
  • что должен знать PHP разработчик (не привязываясь к уровням джун, мидл, сеньйор)
  • стоит ли писать свой PHP Framework

Установка веб-сервера Zend Server на Windows

26.08.2012
Захотелось посмотреть как работает Zend Server на Windows. В этом скринкасте представляю процесс установки.
Внизу будет ссылка на скачивание версии, где я убрал триальное ограничение (насколько успешно пока точно не знаю).
Версия сервера 5.6. Вы уж извините, но на виртуалке только Windows XP, семерки свободной не было. Это не должно сильно повлиять. Перейдем к установке:

Запуск установки
...

Java, Netbeans, свернуть окно при запуске.

04.08.2012

Надеюсь что немножко Java в моем PHP блоге не помешает.
Захотел в своей программе timeIsMoney сделать чтобы (при определенном параметре командной строки) главное окно при запуске сразу пряталось, а маленькое открывлось. Это затем, чтобы поставить на автозапуск и не делать лишних кликов. Я то сделал, но много времени потратил на такую проблему: в конструкторе главного View метод getFrame() не возвращает фрейм главного окна. То же не может сделать и DesktopApplication1.getApplication().getMainFrame(). Давайте разберемся как же это сделать.

Списки друзей вконтакте: автоматическое заполнение.

15.07.2012
В этом посте я покажу как можно создать список друзей Вконтакте, в котором (для примера) будут все друзья одонго пола.
Начинаем с авторизации на API:
http://api.vk.com/oauth/authorize?client_id=2810987&redirect_uri=http://api.vk.com/blank.html&scope=friends&display=wap&response_type=token
vk api login

После авторизации мы увидим надпись Login success на белой странице, но в строке URL будет нечто вроде http://api.vk.com/blank.html#access_token=96e03abfc7a0c03c97fa68681f978e3f1b997a697a4db72a2d97b3d6deaf980&expires_in=86400&user_id=1234567123
Отсюда нам нужен токен: 96e03abfc7a0c03c97fa68681f978e3f1b997a697a4db72a2d97b3d6deaf980
Подставляем его в строку
https://api.vkontakte.ru/method/friends.get?access_token=ТОКЕН-СЮДА&fields=sex
и переходим по этому url для получения списка друзей. В строке fields=sex означает, что нам необходима дополнительная информация: к какому полу принадлежат пользователи...

Собрать в архив недавно измененные файлы.

04.07.2012
Пришло время порадовать читателей очередным постом, давно не писал.

При работе с клиентами мне часто приходится отправлять обновления движков или скриптов, в которых необходимо заменить 5-10 файлов. Причем необходимо сохранить дерево категорий: файлы могут быть сильно разбросаны по фреймворку.
Дабы не искать вручную все файлы и не создавать-удалять десятки каталогов по пять раз на день при сборке обновлений, создан следующий bash (linux) скрипт.
bashScript040712.png
(см. полную запись)

Как выгодно обменивать webmoney

19.05.2012
Поделюсь с Вами как обменять например WMZ на WMU.
Это актуально, так как вывести в банк можно только в национальной валюте.
Тема не новая, просто подумал, что наверно не все в курсе.

Если мы воспользуемся пунктом меню обмена в кипере, то нам предложат отвратительный курс:
Обмен стандарт
Дают 7,4 при том, что реальный курс доллара по отношению к гривне 7,99.

А мы пойдем на официальный обменник wm.exchanger.ru :
Обмен wm 1

и посмотрим текущие предложения по интересующему курсу

Обмен wm 2
Там уже не 7,4 , а 7,931 , но это только текущие предложения. Мы можем создать свое по более выгодному для нас курсу. Для этого оценим ситуацию по обратному обмену...

Бесплатный PHP, HTML, CSS, JavaScript редактор - Codelobster PHP Edition

17.04.2012

Для полноценной работы по созданию сайтов вам обязателньо необходим хороший удобный редактор. Есть очень много платных продуктов для этого, но нам бы хотелось выделить бесплатный очень функциональный и в то же время простой в использовании редактор - Codelobster PHP Edition .

    Давайте рассмотрим некоторые важные возможности и преимущества этой программы:

  • Весь код подсвечивается разными цветами в зависимости от типа, причем поддерживается также смешанный код, когда участок HTML будет подсвечен как HTML, PHP как PHP, а JavaScript как JavaScript в одном и том же файле. Существуют возможность выбора из нескольких цветовых схем, включая популярные IDE.
  • Мощное автодополенения для HTML, PHP, CSS и JavaScript, включая HTML5 и CSS3. Для PHP полностью распознается структура проекта, а выпадает полный список методов в соответствующих местах.
  • HTML/CSS инспектор по типу FireBug, который позволяет легко сопоставлять выделенные элементы страницы с кодом и соответствующим стилем.
  • Контекстная помощь по всем поддерживаемым языкам. По нажатию клавиши F1 происходит открытия страницы с полный описанием текущего тега, аттрибута, функции и т.д. с соответсвующих официальных сайтов.
  • PHP дебаггер. PHP дебаггер позволяет пошагово выполнять PHP скрипты, отслеживая значения всех переменных в каждой строчке.
  • SQL менеджер позволяет производить все необходимые действия с базой данных - добавлять, удалять, редактировать структуру и записи в таблицах, экспортировать данные, выполнять SQL запросы. Для SQL файлов работает подсветка и автодопленние.
  • Поддержка FTP позволяет работать напрямую с удаленным сервером и делать все необходимые изменения. с предварительным просмотром результата;
  • Опция портабле позволяет использовать редактор без предварительной установки.

Шифр Вернама (One-time pad) на PHP

16.04.2012
sw-fish
В фильме "Пароль рыба-мечь", который вы наверняка смотрели, была сцена со взломом Шифра Вернама (буквально за секунды). Это система шифрования, для которой доказана абсолютная криптографическая стойкость.
Возможно ли за секунды взломать такую систему - думайте сами)) Подробнее можно почитать в Википедии.
sw-fish
Способ простой и надежный как автомат Калашникова. Дальше реализация на php...

Скачать все файлы из каталога на веб-сервере

07.04.2012
Наблюдаем такую картину в каталоге сервера другого сайта:

files
- каталог не защищен от просмотра (что Я обычно делаю строкой "Options -Indexes" в .htaccess). Может быть такая ситуация, что нам нужно сохранить все эти файлы.
В моем случае я переносил дизайн сайта клиента на новый движок, не имея доступа к фтп старого сайта.
Можно было бы сохранить вручную, но можно быстрее...

Загрузка по мере скроллинга

25.03.2012
scroll
В социальных сетях активно используется подгрузка контента по мере прокрутки страницы, поскольку это тот случай, когда контента заведомо больше, чем собирается сейчас просмотреть пользователь.
В Ваших проектах тоже может такое случиться. Сейчас разберемся как это можно реализовать с использованием jQuery.

Мы будем отслеживать следующее событие: пользователь остановился при скроллинге. Также нам понадобится информация о высоте страницы и высоте окна браузера.
var scroll_top = 0;        //высота прокрученной области
var wind_height = $(window).height();//высота окна браузера
var page_height = $(document).height();//высота всей страницы

Для перехвата события остановки скролла воспользуемся готовой функцией с googlecode:
<script type="text/javascript" src="http://oemar.googlecode.com/files/scroll-startstop.events.jquery.js"></script>

...

Уведомление о приходе денег на WebMoney Keeper Light

08.03.2012
WebMoney Keeper Light Недавно писал скрипт для того чтобы уведомлять себя о чем-либо на телефон (по SMS) через VK.
Решим простую задачу: скрипт проверяет баланс WebMoney Keeper Light и если пришли деньги, уведомляем об этом (включая сколько и в какой валюте). То есть скрипт будет запускаться через небольшие промежутки времени при помощи crontab. Дело не хитрое, менее 50 строк кода...

Бесплатные SMS-оповещения - отправка сообщений в vk.com на PHP.

18.02.2012
Во многих случаях удобно в веб-приложении иметь возможность СМС оповещения о чем либо (новый заказ, падение важной системы, недостаток средств на балансе или просто напоминание).
СМС-оповещение имеет преимущество над всеми другими способами в том, что телефон всегда рядом.

Вконтакте перенаправляют личные сообщения на телефон если их не читать (при соответствующей опции в настройках), значит нам достаточно отправить себе сообщение на vk.com в ЛС.
Раньше я уже писал такой скрипт, но он парсил html код, а в дуровской социальной сети этот код меняется чуть ли не каждый день, в связи с новым функционалом, дизайном или просто для красоты. В этот раз я сделал скрипт на основе использования API, а это значит что скрипт должен прожить значительно дольше. Для нас очень важна в этом именно надежность...

Zend Framework, PHPUnit, модульное тестирование

08.01.2012
Идея модульного тестирования состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода чтобы потом быстро проверять, не привело ли очередное изменение кода к появлению ошибок в уже проверенных местах программы.

Что легче - писать юнит-тесты или сто раз проверять всю программу вручную - каждый решает сам, но для этого нужно попробовать оба способа и сравнить.

В Zend Framework для этого уже все подготовлено (ну почти). Речь пойдет о версии ZF 1.11.11, которая сейчас считается последней stable.

При создании проекта, рядом с каталогом application создается каталог tests, в котором файлы phpunit.xml, bootstrap.php и application/controllers/IndexControllerTest.php Контроллер в последнм файле наследует класс Zend_Test_PHPUnit_ControllerTestCase, который создает нам основу для написания тестов для инструмента PHPUnit.
PHPUnit
PHPUnit можно установить через pear в консоли:
pear channel-update pear.php.net
pear upgrade pear
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
pear install phpunit/PHPUnit

...

Zend Framework - Регистрация и авторизация

01.01.2012
Продолжаю изучать Zend Framework, для этого реализовываю несложный тестовый проект. Сейчас покажу какая у меня получилась регистрация-авторизация пользователей. Этот код берет за основу пример авторизации из документации и доводит его до рабочего состояния, а также дополняет регистрацией.
Zend Framework
Я только начал разбираться с Zend, поэтому вряд ли стоит смотреть на этот код как на образец, лучше поискать ошибки и указать мне на них :)

При помощи Zend Tool создаем необходимые классы и action-ы:
zf create controller Auth
zf create action login Auth
zf create action login Auth
zf create form Login
zf create form Signup

В mySQL создаем таблицу для пользователей:

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(32) DEFAULT NULL,
  `password_salt` varchar(32) DEFAULT NULL,
  `real_name` varchar(150) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
...