Автор: Рубрики: Полезности Просмотрено: 187
Самые востребованные модули PHP для отличной работы сайта
19Авг2019

В этой статьи пройдемся по нескольких модулях PHP, о которых часто спрашивают наши клиенты. Модули PHP позволяют оптимизировать и настроить работу PHP-скриптов на сервере. Каждый модуль несет свою функциональность и может значительно облегчить и ускорить задачи касательно php кода. О том как включить/отключить модули PHP можно ознакомиться в нашей статье здесь.

Начнем с модулей предназначенных для  кэширования. С помощью кэширования памяти можно значительно улучшить производительность сервера. Это процесс хранения часто запрашиваемых объектов в памяти для более быстрого поиска и воспроизведения в дальнейшем. Существует два типа кэширования памяти:

  1. Кэш кода  PHP (модуль OPcache): Кэш кода операции хранит скомпилированные сценарии PHP, сервер не компилирует и преобразовывает скрипт PHP в машинно-понятный код при каждом запросе. Эти скомпилированные сценарии PHP хранятся в памяти на сервере, на котором они скомпилированы. OPcache доступен с момента выпуска PHP 5.5 и является механизмом кэширования по умолчанию для кэширования кода на уровне байт-кода. С активированным OPcache есть возможность обрабатывать гораздо больше запросов. одновременно, это очень важное преимущество для работы крупных сайтов.
  2. Кэш данных. Кэш данных хранит копии данных, шаблонов и других типов информационных файлов. В зависимости от реализации кэша он может быть локальным для одного сервера или распределенным по нескольким серверам

Модуль PHP APCu (APC User Cache) отвечает за локальный кеш для систем начиная с  версии  PHP 5.6 и выше. APCu является кэшем данных и доступен в большинстве дистрибутивов. APCu  пришел на смену APC

Redis – это отличный современный кэш памяти, который можно использовать как для распределенного кэширования, так и в качестве локального кэша для блокировки транзакций файлов, поскольку он гарантирует, что кэшированные объекты доступны столько времени, сколько они необходимы. Модуль Redis идет от PHP версии 2.2.6 или выше. 

Также в доступности есть два расширения PHP – это Memcache и Memcached. Memcached – PHP расширение для взаимодействия с memcached через библиотеку libmemcached. Библиотека libmemcached используется для предоставления API для связи с серверами memcached. А Memcache является расширением Memcached. Memcached разработанный специально для динамических веб-приложений, чтобы уменьшить нагрузку на базу данных путем хранения объектов в памяти, при этом используются специальные ключи для уменьшения количество запросов к серверу с БД.  Это расширение позволяет работать с Memcached через удобный  процедурный интерфейс.

Модуль APM (Application Performance Monitoring) – инструмент мониторинга производительности приложений. Существует множество инструментов мониторинга производительности приложений, например, как Pinpoint, New Relic, AppDynamics, Apache SkyWalking, Stagemonitor и д.р. Многие из них предлагают уменьшенные бесплатные версии своих продуктов.

Этот инструмент позволяет Вам эффективно измерять и рассчитывать статистику реальной работы вашего приложения в зависимости от его использования. С помощью APM  можно просматривать подробные показатели производительности PHPприложений такие как память, процессор, загрузка системы, дампы памяти и так далее, что полезно для выявления причин медленной работы системы, оптимизации производительности, анализа причин и потенциальных проблемах. Возможность быстро понять топологию и зависимости  Вашего приложения Отклик строк кода на все Ваши транзакции для отслеживания самых мелких ошибок и сбоев.

Модуль cURL  позволяет PHP-программам получать доступ к функциям curl в PHP. CURL расшифровывается как «Client for URLs». В проекте cURL есть два продукта libcurl и curl.

libcurl – это библиотека PHP и инструмент командной строки (например, wget), который помогает отправлять файлы, а также загружать данные через HTTP и FTP. Он поддерживает прокси, и передает данные через SSL-соединения,  также есть возможность устанавливать куки и даже получать файлы, которые находятся за логином.

curl: инструмент командной строки для получения или отправки файлов с использованием синтаксиса URL. Поскольку curl использует libcurl, он поддерживает ряд общих внутренних протоколов, в том числе HTTP, HTTPS, FTP, FTPS, GOPHER, TELNET, DICT и FILE.  

Модуль IMAP (доступен для PHP 5.6, 7.0, 7.1, 7.2 или 7.3.) представляет собой мощную библиотеку с открытым исходным кодом для подключения к почтовому ящику по протоколам POP3, IMAP и NNTP с использованием расширения PHP IMAP. Эта библиотека позволяет вам получать электронные письма с Вашего почтового сервера. Данные сообщений, считанные с почтового сервера, будут использоваться для составления списка электронных писем в почтовом ящике, создания уведомлений о непрочитанных сообщениях и для многих других целей. Используя IMAP можно создавать удобные приложения для обработки сообщений, так IMAP  более функциональный и современней, протокола POP3. 

IMAP работает по протоколу TCP / IP с защитой SSL, поэтому  прежде чем мы сможем сделать какие-либо вызовы IMAP, мы должны открыть соединение. Перед этим нужно проверить в настройках почты включена ли возможность подключения по протоколу IMAP. Если отключена эта функция , ее нужно просто включить в настройках почты.

Далее для подключения нужно указать сервер входящей почты (IMAP), сервер исходящей почты (SMTP), при этом указываем порт подключения, почтовый ящик к которому желаете подключится, пароль и путь к папке где будут сохраняться почтовые сообщения. Если Вам нужна дополнительная информация об IMAP-доступе, ищите в справочном центре почты, где имеете почтовый ящик, они всегда выкладывают подробные инструкции и данные для подключении.

ionCube loader представляет собой расширение PHP, поставляется в виде .so или .dll библиотеки, необходим для использования и чтения декодирования исходного кода закодированного при помощи ionCube Encoder, которое в основном используется в коммерческих программных приложениях для защиты от нелицензионного использования исходного кода и предотвращения его видимости, кражи и изменения путем компиляции в байт-код. 

    PHP-кодер ionCube имеет 3 версии: Basic, Pro и Cerberus, также уже присутствует дополнительное шифрование файлов не с PHP разметкой. Эти версию отличаются друг от друга набором функций. Если Вам нужно просто шифрование Вам подойдет Basic, Pro или Cerberus снизят риск запуска любых украденных файлов на другом сервере, так как предоставляют возможность создавать файлы лицензий для ваших продуктов. Pro и Cerberus есть интересная функция полезна разработчикам, которая предоставляет доступ к защищенному коду в течение установленного времени для установленного количества пользователей. PHP Encoder доступен для Windows, Linux, FreeBSD и OS X. Поддержка для других платформ доступна по запросу.

Более детально ознакомиться  с продуктом IonCube и использовании его на серверах можно в нашей статьи здесь.

Функции FTP модуля позволяют, если есть необходимость, использовать для php скриптов подключения и доступ к серверам по протоколу FTP (File Transfer Protocol). Больше информации об том протоколе, как подключиться и настроить можно почитать в нашей статье здесь

Также для удаленного доступа можно использовать протокол SSH2. SSH2 – это более безопасная, эффективная и портативная версия SSH, включающая SFTP, функционально аналогичная FTP, но с шифрованием SSH2. Для использования нужно наличие подключенных библиотек libssh2 и OpenSSL.

OpenSSL использует функциональность библиотеки  OpenSSL для симметричных и асимметричных шифрования и дешифровки, PBKDF2, PKCS7, PKCS12, X509,  криптографических операций и реализует потоки TLS.

Модуль PHP Zlib позволяет на ходу читать и записывать сжатые файлы gzip. Для использования модуля также нужно подключение библиотеки zlib начиная с версии 1.0.9. Алгоритм сжатия, используемый в zlib, является методом deflate. Метод deflate кодирует входные данные в сжатые данные. Алгоритм распаковки, используемый в zlib – это метод inflate, который представляет собой процесс декодирования. Этот модуль используется для предоставления более быстрого вывода необходимой информации путем сжатия потока данных. В файле php.ini. можно настроить  параметры сжатия

    Модуль ZIP  для записи, чтения, модификации ZIP-архивов. Для работы нужна библиотека libzip. PHP модуль RAR предназначен для чтения архивов Rar-архивов используя библиотеки unRAR. Это расширение дает вам возможность читать архивы Rar, но не поддерживает возможность записывать Rar-архивы, так как эта функция не поддерживается библиотекой UnRar.

Если Вы хотите внедрять БД, то используйте для их подключения соответствующее модули: pgsql – PostgreSQL , mongodb – MongoDB (модуль mongo считается устаревшим), mssql – MS SQL Server, mysql – MySQL (считается устаревшим, а с версии PHP 7.0.0 этот модуль удален, лучше использовать вместо этого модуля модули mysqli или pdo_mysql ).

Модуль mysqli – позволяет получить доступ к функциональности, предоставляемой СУБД MySQL. А Расширение PHP Data Objects (PDO) определяет легкий, согласованный интерфейс для доступа к базам данных в PHP. PDO поддерживает различные базы данных, что есть очень удобным, в том случаи, если нужно в проекте перейти с использования одной к другой,  не нужно переписывать весь код и запросы как в случаи с mysqli.

Если Вас интересует функциональность и наличие других модулей PHP, то пишите, специалисты ГиперХост с радостью предоставят информацию и помогут включить и настроить необходимые модули для эффективной работы Вашего проекта. 

188 раз(а) 1 Сегодня просмотрено раз(а)
  • Семён Семёныч

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

    • Марина Семёнова

      Я обычно ставлю библиотеки и модули на сжатие данных. Остальное только если попросит клиент. Так сказать, за отельную плату.

      • Владимир Дот

        А почту не подключаете? Очень удобно иметь почтовый ящик названный именем своего сайта. Некая доля элитности даже присутствует.

        • Марина Семёнова

          Как то хотела, но не осилила. Модуль поставился, и потом пошли вопросы о настройке, вот тут я и засыпалась. Откуда я знаю, какой сервер нужен и чем они вообще различаются? 🙂