PostgreSQL
coub
express.js
freeware
git
jquery
laravel
links
linux
macos
mysql
node.js
php
powershell
python
ubuntu
vim
virtualbox
анекдот
блог
игры
интересно
стихи
цитаты
Laravel extended cleanup alias
July 21, 2024
That could help in weird cases (like livewire stuck out of local APP_ENV, for example).
alias ar-clear-all='rm -rf ./storage/framework/{cache, sessions, testing, views} && rm -f ./bootstrap/cache/* && php artisan optimize:clear && php artisan cache:clear && php artisan config:clear && php artisan route:clear && php artisan clear-compiled && composer dump-autoload'
PhpStorm: Multiple Selection / Одновременное редактирование нескольких строк
September 21, 2014
Что-то я совсем выпал из жизни.. Тем временем в PhpStorm 8 ещё в марте, с EAP, появилась фишка "Multiple Selection". Такая функциональность давно есть в Vim и в Sublime Text, теперь есть и в PhpStorm.
В видео используется способ добавления новых курсоров через Alt, теоретически тоже довольно удобно, но мышка это долго, хочется делать тоже самое клавиатурой и такая возможность есть. Правда по умолчанию хоткеи для клавиатуры не установлены поэтому придется их установить самому. Открываем настройки, идем править Keymap. На скриншоте ниже мои хоткеи для добавления курсора через Alt+Click и для добавления курсора на строку выше/ниже текущей с помощью одной клавиатуры.
Поведение напоминает описанное мной раньше для вима, но несколько умнее. Например если мы хотим обернуть пять строк в массив, то после исправления начала всех строк даже при разной длинне строк мы сможем перейти к хвосту каждой строки просто нажав End. И это сработает для каждой строки, то есть каждый курсор переместятся к хвосту "своей" строки. Выйти из режима мультикурсоров можно нажатием Esc. Просто, очень удобно.
В видео используется способ добавления новых курсоров через Alt, теоретически тоже довольно удобно, но мышка это долго, хочется делать тоже самое клавиатурой и такая возможность есть. Правда по умолчанию хоткеи для клавиатуры не установлены поэтому придется их установить самому. Открываем настройки, идем править Keymap. На скриншоте ниже мои хоткеи для добавления курсора через Alt+Click и для добавления курсора на строку выше/ниже текущей с помощью одной клавиатуры.
Поведение напоминает описанное мной раньше для вима, но несколько умнее. Например если мы хотим обернуть пять строк в массив, то после исправления начала всех строк даже при разной длинне строк мы сможем перейти к хвосту каждой строки просто нажав End. И это сработает для каждой строки, то есть каждый курсор переместятся к хвосту "своей" строки. Выйти из режима мультикурсоров можно нажатием Esc. Просто, очень удобно.
Скринкасты по PHPStorm
August 14, 2014
Довольно давно вышла отличная серия бесплатных скринкасов "Be Awesome in PHPStorm" от Jeffrey Way. Конечно, некоторая часть материала рассматривается в контексте именно Laravel, но думаю все равно будет нелишним посмотреть всем пользователям этой IDE, весьма вероятно что узнаете что-то новое и полезное.
Настройка PhpStorm + Xdebug
October 03, 2013
Вообще по-старинке я предпочитаю var_dump но бывает что сапортишь что-то такое что.. словом и xdebug бывает полезен.
-
Ставим сам xdebug (углубляться не буду в операционки, суть не в этом)
# ubuntu/debian sudo apt-get install php5-xdebug
-
После установки убедимся что его видно, все тип-топ
php -m | grep xdebug
- Смотрим phpinfo() и ищем там секцию xdebug. Если все хорошо, то она там должна быть, если не хорошо - пробуем перезагрузить веб-сервер или php-fpm, смотря что у вас установлено. Если все равно не хорошо (sic!) - идем гуглить как вообще xdebug устанавливать. В секции xdebug ищем директиву xdebug.remote_port это порт на который будет стучать отладчик по умолчанию (с сервера на клиент отладчика, у нас клиент - это шторм). Его можно понятное дело изменить на ваше усмотрение, поправив значение в конфиге. По умолчанию это порт 9000. Едем дальше.
-
В php.ini нужно добавить от такие инструкции и убедиться что их видно через браузер (тоже самое: если нужно - перезагружаем сервер)
xdebug.remote_enable=true xdebug.remote_port=9000 xdebug.profiler_enable=1 xdebug.profiler_output_dir=/tmp
-
Теперь веб-сервер будет пытаться законнектиться на порт клиента который мы указали в настройках (xdebug.remote_port) при каждой загрузке страницы. Теперь надо поднастроить наш проект в шторме под отладчик. Для этого нужно добавить в проект конфигурацию веб-приложения и удаленной отладки. Ниже скриншоты раскрывающие суть этой магии.
Открываем конфигурацию проекта
Добавляем конфигурацию веб-приложения
Правим её
Если нужно добавляем и правим сервер (хост смотрит на хост нашего проекта)
Правим свойства удаленной отладки (после того как добавили конфиг конечно см. скриншот выше) -
Теперь осталось включить в шторме прослушку порта для отладчика. Для этого ищем кнопку на панели инструментов с телефонной трубкой как на скриншоте (или идем в меню Run и ищем там пункт "Start Listen PHP Debug Connections")
- Теоретически все должно работать на данный момент. Итого мы имеем установленный на сервере xdebug который при каждом запросе страницы отправляет клиенту запрос на порт xdebug.remote_port (из настроек сервера) и клиент отладчика в виде шторма с готовым для подключения отладчика портом. Теперь можно ставить брейкпойнты в любом месте приложения и вызывать выбранный юзкейз в браузере. По достижению брейкпоинта шторм должен всплыть и станут доступны все фичи отладчика. Ссылка на официальную доку.
-
Ещё маленькая деталь, отладчик в шторме должен быть настроен на тот же порт что и xdebug.remote_port. То есть на сервере прописываем куда будем стучать, а в шторме - где будем ловить подключение отладчика. Изменить номер порта в шторме можно в настройках проекта
Zend Framework 2: Paginator example
April 14, 2013
Собственно ничего особенно сложного нет, описано все здесь. Мой пример в общем ничем не уникален, использует Null адаптер, который позволяет передавать в конструктор пагинатора готовое количество записей для расчета массива данных для пагинации.
use Zend\Paginator\Paginator; // $itemsQuant - общее кол-во элементов для просмотра $paginator = new Paginator(new \Zend\Paginator\Adapter\Null($itemsQuant)); $paginator->setCurrentPageNumber($currentPage); $paginator->setItemCountPerPage($pageSize); $pages = $paginator->getPages(); $pagination = array( 'previous' => $pages->previous, 'next' => $pages->next, ); var_dump($pages);Конструкция на мой взгляд перегруженная, но уж как есть. Я только начал работать с ZF2, постараюсь не лениться и собирать здесь интересные и ценные по возможности заметки.