Техническое задание: Портирование библиотеки шаблонизатора C++ для PHP

Цель проекта

Адаптировать существующую библиотеку шаблонизатора (Templates engine for PHP), написанную на C++ как расширение для PHP, для корректной работы в средах PHP 7.4 и PHP 8.3. Исходный код рассчитан на устаревшую версию PHP 5.4.45.

Исходные данные

  • Исходный код библиотеки (можно найти по ключевой фразе "Templates engine for PHP mcrbids").
  • Примеры использования.

Требования к результату

  • Библиотека должна успешно компилироваться без ошибок в указанных ниже условиях сборки.
  • Скомпилированное расширение должно стабильно работать с PHP 7.4 и PHP 8.3.
  • Решение должно быть готово к использованию без необходимости дополнительных нестандартных настроек или "танцев с бубном".

Целевые среды выполнения (требования заказчика)

Операционная система:

  • CentOS release 6.10

Версии PHP и инструментов:

  • Среда 1: PHP 7.3.25 (Zend Engine v3.3.25)
  • Среда 2: PHP 8.3.12 (Zend Engine v4.3.12)
  • Компилятор: gcc версия 4.8.2
  • Система сборки: GNU Make 3.81

Ключевые задачи для исполнителя

  1. Проанализировать исходный код C++ расширения для PHP 5.4.
  2. Выявить и исправить API-несовместимости между Zend Engine 2 (PHP 5.4), Zend Engine 3 (PHP 7.4) и Zend Engine 4 (PHP 8.3).
  3. Адаптировать код под изменения в работе с памятью (zval, строки), обработке ошибок и новых стандартах C++.
  4. Обеспечить корректную сборку (компиляцию и линковку) в обеих целевых средах с использованием предоставленных версий gcc и make.
  5. Протестировать работоспособность скомпилированного расширения на предоставленных версиях PHP.

Ожидаемый результат

Готовый к использованию исходный код расширения и инструкция по сборке, позволяющие получить рабочее расширение .so для CentOS 6.10 с PHP 7.4 и PHP 8.3.

Оцифровка чертежей деталей в NanoCAD

Требуется перевести два фото листов с чертежами деталей в электронный формат с помощью ПО NanoCAD. Формат листов А4, необходимо добавить рамки основной надписи. Результат предоставить в двух форматах.

Доработка SEO-сервиса с интеграцией нового API

Требуется модернизировать работающий сервис для SEO-оптимизации, написанный на Vue 3 и Python/Django. Основная задача - подключить дополнительный текстовый API (HydraAI) к существующей системе, где уже интегрирован OpenAI.