Back-end Инструменты
Сервисы
- https://www.mail-tester.com проверка корректности отправляемых писем
- https://temp-mail.org/ru/ одноразовая почта
- html to pdf
Классы и библиотеки
- Генерация идентификаторов ramsey/uuid
- Проверка параметров Webmozart Assert
- Склонение слов phpMorphy
- работа с Excel (xls, xlsx, ods)
-
bxApiDocs
Документированное ядро битрикса для подключения к IDE. PhpStorm В настройках PHP IDE PhpStorm (File -> Settings -> Project Settings -> PHP или File -> Settings -> Languages & Frameworks -> PHP) области Include Path нажав на “+” добавляем путь к папке modules.
-
Imagery
Работа с изображениями
- SwiftMailer Отправка почты
-
PHPMailer
Отправка почты
- reCAPTCHA PHP client library
- PHP dotenv
- PHP FTP Client Library
-
bukashk0zzz/yml-generator
Генерация YML (например для Яндекс.Маркет)
- mobiledetect.net
- Реализация Telegram API на PHP 7 с поддержкой асинхронности
- Популярный профайлер XHProf не поддерживается и с PHP 7 работает плохо. Однако доступен обновленный форк от компании Tideways
- Безопасный stateless-токен — как JWT, только без его недостатков.
- Виджет для вывода ленты Instagram
- instagram php scraper
- Набор библиотек PHP для работы с URI, XML, DAV и прочим…
- Анализатор PHP кода
- Конструктор XML из PHP Array
- Библиотека для создания Телеграм бота на PHP
- Парсинг robots.txt
- RedBeanPHP - ORM для небольших проектов
Компоненты и модули Битрикс
- Живое описание АПИ
- Инфоблоки, инструменты
- Базовый компонент Битрикс для простой реализации MVC
- Валюты, запрос курса
- Форма обратной связи - простой конструктор веб-форм
- reCaptchaFree
- Кнопки “Поделиться” соц. сетей
- Параметры заказа в письме
- Лайки для элементов информационных блоков
- Дополнительные свойства инфоблоков. Аскарон
-
Дополнительные свойства инфоблоков
Модуль по каким-то причинам удалили из маркетплейс, может быть вернут…
- Модуль миграции сущностей для CMS “1С-Битрикс: Управление сайтом” для разработчиков
- Модуль “Миграции для разработчиков”
- Модуль “Bitrix-migrations - Миграции БД для Битрикса и не только”
- Галерея Инстаграм LITE (Instagram)
- Модуль “Подготовка прайс-листа для Маркета и Беру”
- Модуль “Официальный модуль интернет-эквайринг Сбербанк”
Проверка сайта на наличие вредоносного кода
Полезные команды
-
Синхронизация файлов и папок локального ПК с сервером. Команда сравнит файлы - скачает новые и удалит на локальной машине то чего нет на сервере, с этим моментом быть внимательным, для отключения удаления уберите флаг
--delete
rsync -ah --progress --size-only --delete --numeric-ids -e "ssh -T -c arcfour -o Compression=no -x" someuser@somesite.ru:/var/www/some/folder/path/on/serevr/ /some/folder/path/on/your/pc
В случае получения ошибки:
Unable to negotiate with XX.XX.XX.XX port 22: no matching cipher found. Their offer: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,cast128-cbc,3des-cbc rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.1]
Эта ошибка означает, что на сервере к которому происходит подключение SSH не поддерживает выбранный протокол шифрования, в данном случае это arcfour и сервер приводит список поддерживаемых, нужно выбрать один из поддерживаемых и использовать его, например -c aes256-ctr
-
Минимизация изображений
# Для JPG find . -type f -iname '*.jp*g' -print0 | xargs -0 jpegoptim --strip-all --all-progressive --max=85 -t # Для PNG find . -type f -iname '*.png' -print0 | xargs -0 optipng -strip all -o 1 -v
-
Подсчет количества найденных файлов на примере архивов gz
find . -type f -name '*.gz' | wc -l
-
Поиск по содержимому файлов
# просто ищем без учета регистра grep -iR "some text in file" # ищем только в файлах с расширением "php" grep --include="*.php" -nRHIi "some text in file" . # ищем без учета регистра в файлах php исключая каталог bitrix (для исключения нескольких директорий используем маску или повторяем ключ --exclude-dir) grep --include="*.php" --exclude-dir="bitrix" -iR "some text in file" # описание ключей --include=PATTERN - Recurse in directories only searching file matching PATTERN. -n, --line-number - Prefix each line of output with the line number within its input file. -R, -r, --recursive - Read all files under each directory, recursively; this is equivalent to the -d recurse option. -H, --with-filename - Print the filename for each match. -I - Process a binary file as if it did not contain matching data; this is equivalent to the --binary-files=without-match option. -i - case-insensitive results.
-
Определение свободного места на сервере
# покажет количество места в общем df -h # просмотр размеров по папкам du -h --max-depth=1 /path/to/folder/ | sort -n -r
-
Установка прав на файлы и папки
# файлы sudo find . -type f -exec chmod 664 {} \; # папки sudo find . -type d -exec chmod 775 {} \;
-
Изменение владельца папок
sudo chown -R www-data:www-data .
-
Подключение к удаленному рабочему столу из Linux в Windows
rdesktop -u yourUserName -p yourPass someHostNameOrIP
-
Архивирование/разархивирование
# рекурсивно разархивировать все gz в те же папки где они лежат с удалением самого архива find . -name "*.gz" | xargs gunzip # Простое разархивирование одиночного файла tar -xvzf community_images.tar.gz tar -xvJf community_images.tar.xz # Разархивирование архива, поделенного на части cat часть_1 часть_2 | tar -xvz **если получаем ошибку** ```tar: Error opening archive: Failed to open '/dev/sa0'``` тогда используем команду ```cat часть_1 часть_2 | tar -xvzf -``` тут "-f -" означает "файл из потока" # ИЛИ # Если все части архива находятся в одной папке, то команда для склеивания выглядит так: cat backup.tar.* | tar -xvz # f: this must be the last flag of the command, and the tar file must be immediately after. It tells tar the name and path of the compressed file. # z: tells tar to decompress the archive using gzip # x: tar can collect files or extract them. x does the latter. # v: makes tar talk a lot. Verbose output shows you all the files being extracted. # Исключение папки из архивируемых файлов и создать архив в той же папке, которую архивируем touch p.tar.gz tar --exclude='upload/*' --exclude='bitrix/*' --exclude='*.zip' --exclude='p.tar.gz' -czvf p.tar.gz . # To zip up an entire directory (including all subdirectories), type the following command: zip -r data * # To use unzip to extract all files of the archive pics.zip into the current directory & subdirectories: unzip pics.zip # Создание tar.gz архива tar [-ключи] [название архива] [путь, что запаковать] # создать .tar tar -cvf file.tar /full/path # создать .tar.gz (архив) tar -czvf file.tar.gz /full/path # создать .tar.bz2 (архив) tar -cjvf file.tar.bz2 /full/path # создать zip zip -r file.zip /full/path # Распаковать: tar -xvf file.tar.gz unzip file.zip Ключи: с - (Create) создать архив. z – создает архив .tar.gz j - создает архив .tar.bz2 x - (eXtract) позволяет вам извлекать файлы из архива. v - делает вывод tar подробным. Это означает, что на экран будут выведены все найденные в архиве файлы. Если эта опция опущена, информация, выводимая в процессе обработки, будет ограничена. f - является обязательной опцией. Без неё tar пытается использовать магнитную ленту вместо файла архива. z - позволяет вам обрабатывать архив, сжатый gzip'ом (с расширением .gz). Если вы забудете указать эту опцию, tar выдаст ошибку. И наоборот, эта опция не должна использоваться для несжатых архивов. t - (Test) просмотреть содержимое архива. # Архивировать по кускам tar cvzf - dir/ | split --bytes=200MB - sda1.backup.tar.gz. # В случае ошибки "split: illegal option -- -" tar cvzf - dir/ | split -b 1024MB - sda1.backup.tar.gz. #If you happen to be trying to split file to fit on a FAT32 formatted drive use a byte limit of 4294967295. For example: tar cvzf - /Applications/Install\ macOS\ Sierra.app/ | \ split -b 4294967295 - /Volumes/UNTITLED/install_macos_sierra.tgz.
-
Передача файлов на Яндекс.Диск
curl --user USER:PASSWORD -T "file1" https://webdav.yandex.ru/ curl --user USER:PASSWORD -T "{file1,file2,...}" https://webdav.yandex.ru/ curl --user USER:PASSWORD -T "file[1-5].ext" https://webdav.yandex.ru/
Подборка статей
-
Чек-лист проверки сайта на устойчивость
-
Autocomplete Composer script names on the command line
Статья и пример скрипта