2

Поиск элементов списка по параметрам

Ниже представлен класс, позволяющий производить поиск элементов списка по значениям полей этих элементов.

Использование

Произведем поиск всех структур, в которых поле int=1 И поле color=brown:

Read more

0

Отладка сервера за NAT-ом

Если прямого доступа со стороны веб-сервера к вашему компьютеру нет, то описанная ранее схема работать не будет. Но если у вас есть доступ по SSH к веб-серверу, то поможет SSH туннель с вашей машины на сервер, в котором нужно прокинуть порт отладки к вам.

Настройка Xdebug

Перенастроем Xdebug, чтобы он смотрел на свой локальный хост (путь к файлу с настройками для Xdebug у  вас может отличаться, также можно добавить параметры xdebug в php.ini, но это не тру):

Не забываем перезагрузить веб-сервер, чтобы была прочитана новая конфигурация.

SSH Туннель (putty)

Разберем прокладку туннеля, на примере настройки SSH-клиента Putty:
Read more

0

Xdebug:Could not connect to client. :-(

Рассмотрим пример запуска отладки на удаленном веб-сервере, с конфигурацией, к примеру:

и при этом в логе Xdebug возникает ошибка «Сould not connect to client :(.»

Если файла лога нет или он пустой — нужно проверить установлен ли Xdebug и инициирован ли вашими параметрами (в phpinfo будет присутствовать раздел Xdebug с параметрами , которые вы указали в конфигурации).

Причин сообщения «Сould not connect to client :(.» может быть несколько:

1. Веб-сервер не может подключиться по порту отладки в IDE

2. Правила локальной политики безопасности сервера

Решение проблем:

Read more

1

Запуск исполняемых файлов без прав sudo (суперпользователя)

Иногда стоит задача запускать некоторые процессы в *nix среде под правами root (суперпользователя) не имея таких прав.

Это может пригодиться, например в хостинге для перезагрузки сервисов (httpd, mysqld, memcached, etc.) или, как в нашем случае — запуск автотестов (phphunit) под пользователем apache не имея прав sudo для установки пользователя под которым запускать программу.

Предыстория:

Когда у нас появились подрядчики, которые помогали нам разрабатывать услугу — мы выделили им виртуальные хосты и пользователей, которые, по понятным причинам не имели прав суперпользователя. Также наш регламент предписывает тестировать сборку автотестами, которые запускались с командной строки. Некоторые автотесты производили тестирование модуля генерации документов, которые складывались в несколько папок. Вот тут и пришла проблема, которую мы не ждали: при использовании модуля пользователем — файлы и папки создавались с владельцем apache с правами 755, тогда как при запуске автотестов — с владельцем текущего авторизованного пользователя системы, т.к. он запускает phpunit из командной строки, после чего, пользователь уже не может записать файл в папку, созданную автотестом.

Конечно, запустить что-либо в unix под другим пользователем не проблема и легко решается через явное указание пользователя под которым нужно запустить приложение:

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

Таким образом, после курения гугла и мануалов пришли к единственному рабочему решению для нас: написать бинарник, который используя s-бит, может быть запущен под правами root, пользователем, у которого таких прав нет.

Собственно, нижепредставленный код, устанавливает, на время выполнения, пользователя root (setuid(0)) и собирая аргументы для запуска, выполняет запуск автотестов под пользователем apache.

Его можно модифицировать под свои нужды:

Read more

0

Установка Zend OPcache

Zend OPcache обеспечивает более быстрое выполнение PHP кода операции через кэширование и оптимизацию. Он улучшает PHP производительность, сохраняя скомпилированные сценариев байт-кода в разделяемой памяти. Zend OPcache включен в PHP 5.5 по умолчанию, если же у вас более старая версия, OPcache стоит установить.

Установка на CentOS

Установка PECL

Установка пакетов по зависимостям

Скачиваем с сайта http://pecl.php.net/package/ZendOpcache пакет для установки

Установка Zend OPcache как пакет PECL

После установки добавляем строку zend_extension=/usr/lib64/php/modules/opcache.so в файл /etc/php.d/opcache.ini

Перезапускаем вебсервер Apache

Оптимальные настройки по умолчанию

По рекомендации разработчиков, оптимальные настройки, которые можно выставить первоначально следующие:

Read more

0

[MUSTHAVE] Полезные алиасы GIT

Удобные сокращения при использовании GIT, подсветка, форматированный вывод лога

Ниже приведен часть конфигурации из файла GIT:

Локальный файл конфигурации для репозитория находится в папке /path/to/gitrepo/.git/config

Глобальная конфигурация GIT для сервера (CentOS): /etc/gitconfig (если файла нет — можно создать (выполнять под правами root))

Также глобальный конфиг можно установить через консоль, например:

3

Абстрактный валидатор Yii

Данный компонент позволяет использовать валидаторы Yii без создания модели.

В нашем проекте он используется для валидации входящих параметров процедур API контроллера.

Пример использования:

Код компонента валидатора:

Read more

0

[MUSTHAVE] Плагины WordPress

  • Akismet — анти спам в комментах (+ обязательно включить премодерацию всех комментов)
  • All In One SEO Pack — сео оно и в африке сео (считается лучшим плагином для этого, титлы, дескры, кейворды и тд)
  • Autoptimize — минификация и оптимизация цсс и жс
  • BJ Lazy Load — ленивая загрузка картинок (подгружаются по мере скроллинга страницы)
  • Crayon Syntax Highlighter — лучший хайлайтер для кода
  • Cyr-To-Lat — нормальный конвертер русских символов в урл при создании поста (из титла)
  • Optimize DB — полезный плагин для оптимизации БД (кстати советую отключить создание ревизий поста — это плюс к скорости работы системы). Этот плагин чистит какашки в бд
  • Rus filename translit — транслитерация русских названий файлов при заливке
  • SEO Friendly Images — опять сео плагин, теперь для картинок (теги, альты и тд)
  • Simple Tags — полезный и удобный плагин тегирования записей
  • W3 Total Cache — МАСТ ХЭВ! Лучший кэшер для вордпресса. Над настройкой нужно поколдовать, но оно себя оправдывает 146%
  • WP No Category Base — очень нужный плагин который убирает начальную секцию в урле с постами (/category/)
  • WP No External Links — хороший плагин чтобы убрать внешние ссылки (можно через редирект, можно просто обрамлять в нофолоу и ноиндекс)
  • Yet Another Related Posts Plugin — плагин для вывода похожих постов (строится на основании тегов постов)

 

Спасибо ErgoZ!

0

Экспорт слоев в Photoshop

c89cedc9ae

  1. Нажмите правой кнопкой мыши на слой или группу слоев и выберите “Duplicate Layer/Group”
  2. В диалоговом окне, которое появится, выберите “Document->New” и нажмите Ok
  3. Теперь у нас есть новый документ, с нужной частью изображения.
  4. В меню выберите Image -> Trim… -> Transparent Pixels
  5. Теперь наш документ соответствует размеру выбранного слоя с точностью до пиксела
  6. Выберите Save for Web
  7. Закройте документ.

Взято отсюда