Ця пам'ятка описує внутрішні домовленості історичної версії «Корпорація 2 CMS». Файл corp_runner.php містив основні класи завантаження вебчастини. Правила нижче не є специфікацією сучасних K2 ERP чи K2 Platform.
Кодування файлів і даних
У програмній частині тоді використовували Windows-1251, називаючи її «ANSI», а в базі даних — UTF-8. Документацію зберігали в UTF-8; файли перекладів — переважно у Windows-1251, за потреби в UTF-8.
Таке рішення автор пов'язував із проблемами сесій, невидимими символами після include/require та виведенням тексту в зображення. Проте з цього не випливає, що PHP загалом краще працює з «ANSI» або не підтримує UTF-8. PHP не задає єдиного кодування рядків; важлива узгодженість даних і функцій. Передчасний вивід також може порушити надсилання заголовків сесії — його слід діагностувати окремо.
Виклики системи
Замість прямого виведення пропонувалося користуватися обгорткою; це не було обов'язковою вимогою:
$c->myecho('Текст');Для доступу до бази застосовували функції системи. Перетворення кодування в цій пам'ятці описано так:
$c->dc('Текст'); // з UTF-8 у поточне кодування
$c->ec('Текст'); // з поточного кодування в UTF-8Це контракт, наведений для тієї версії; фактичну реалізацію потрібно звіряти з її кодом. Коротке ім'я $c використовували замість $corp. Первинні ключі отримували через:
$c->myid();Переклади
Словник передавали у вигляді асоціативного масиву:
$this->s(array(
"Идентификатор перевода 1" => "Перевод 1",
"Идентификатор перевода 2" => "Перевод 2",
"Идентификатор перевода 3" => "Перевод 3"
));Ідентифікатор перекладу виводили таким викликом:
$c->tr('Идентификатор перевода');Документування та SQL
У каталогах використовували файл desc для пояснення функціональності, а в компонентах — також каталоги документації. Потрібно було описувати роботу компонента, призначення функцій і змінних.
SQL виконували через обгортки системи:
$c->q('SQL-запрос'); // виконання запиту
$c->fetch($dataset); // отримання наступних даних із джерелаТочний результат і обробка помилок залежать від реалізації. Наявність обгортки сама по собі не підтверджує безпечного формування SQL.
Джерела технічних уточнень: рядки PHP, mbstring, headers_sent. Контакт щодо K2: WhatsApp +380679016322.
Немає коментарів:
Дописати коментар