Skip to content

ArtSkills/common

Repository files navigation

Установка

  • В bootstrap.php под строкой require CORE_PATH . 'config' . DS . 'bootstrap.php'; дописываем следующую:
require ROOT . DS . 'vendor' . DS . 'artskills' . DS . 'common' . DS . 'src' . DS . 'config' . DS . 'bootstrap.php';

Что тут сделано

Основные фичи

Мелочь

  • Формирование конфига для phinx на основе кейковского конфига подключения
  • В контроллере - методы для стандартных json ответов и стандартная обработка ошибок
  • Правильная обработка вставки NULL значений в поля типа JSON
  • Если нужно выпилить эмодзи при сохранении в базу (16 байтные символы), то подключаем Utf8StringType
  • zip/unzip
  • Очистка папок по времени создания, отложенное создание папки и ещё пара мелочей
  • Незначительные изменения Http/Client
  • Из окружения разработчика все емейлы шлются на тестовый ящик; из юнит-тестов - сохраняются с возможностью достать их и проверить; и ещё пара мелочей
  • Ограничения для миграций - для полей таблиц обязательно указывать комментарии и значения по-умолчанию (либо явно указывать, что по-умолчанию значений нет)
  • Трейты для одиночек и полностью статичных классов-библиотек
  • Функции для удобного формирования в запросах вложенных ассоциаций и полных названий полей
  • Формирование конфига кеша
  • Некоторые удобные функции для работы с массивами и строками
  • Удобные чтение и запись в csv
  • Немного более удобная работа с Connection
  • Определение окружения и автодополнение для чтения из Configure
  • Класс для работы с git и чистка устаревших веток
  • Однострочный вызов http запросов и получение результата в нужном формате
  • Русская граматика: правильное склонение слов с числитильными; даты
  • Транслит
  • Построитель Url. Основная фишка - использование текущего домена по всему коду (у всех разработчиков и на продакшне текущий домен разный)
  • Объект для сообщений между классами да и вообще для любых целей (использование объектов вместо ассоциативных массивов ради автодополнения)
  • Функции для удобного запуска команд в шелле (Удобные возвращаемые значения, ошибки по-умолчанию попадают в вывод, возможность запускать в фоновом режиме, запуск из конкретной папки)
  • Добавлены шаблоны и параметры хелпера Form

Доработать

  • Описать регламент работы с common (как оформлять доки, как оформлять код)
  • Выпилить использование Git как одиночки и без указания папки (сначала в проектах, потом в common)
  • В деплое сделать функцию возврата к предыдущей версии
    • По большей части всё просто - переключить симлинк на предыдущую папку и очистить кеш
    • Но до этого нужно откатить миграции. Сравнить миграции в текущей папке и в предыдущей, и из текущей откатить разницу
    • И нужно проверять, что в предыдущей папке сейчас более старая версия. (Если сделано более одного отката, то можно сделать круг.) Проверка по currentVersion
  • Об успешном деплое тоже можно сделать оповещение (чтоб не гадать, когда он завершился)
  • Можно в деплое добавить проверку, что сейчас ничего не деплоится/откатывается, чтобы нельзя было запустить одновременно

Подумать

  • Можно ли как-нибудь вынести общий js код

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages