Ви переглядаєте документацію для ocStore 1.5. Актуальна версія — ocStore 3.0.

Вступ до MVC-L

З чого почати#

ocStore, як і OpenCart, на якому він базується, — чудова платформа для розробників, які хочуть розібратися у вебфреймворках на PHP загалом. Це один із найпростіших для розуміння застосунків зі структурою MVC. ocStore дає змогу вивчити MVC, працюючи зі знайомими технологіями — PHP, MySQL та HTML. Посібник передбачає базові знання HTML, CSS, JavaScript, PHP (зокрема класів і наслідування) та MySQL і пояснює, як вони використовуються в ocStore.

MVC(L)#

ocStore побудовано за шаблоном проєктування MVC. Складові MVC (Model — View — Controller) такі.

M — модель (Model)#

Тут відбувається безпосередня взаємодія з базою даних: отримання даних і перетворення їх у формат, зручний для вітрини. Зазвичай модель складається переважно із запитів до БД. Якщо ви звикли писати запити MySQL, вам сподобається, що ocStore дає змогу робити саме це: ORM не використовується, запити до бази даних пишуться напряму.

V — подання (View)#

Це частина MVC, що відповідає за відображення. Завдання M і C — винести з подання якомога більше логіки, щоб шаблони були простішими. Щоб повністю змінити дизайн магазину, достатньо змінити лише подання, а M, C та L залишаться без змін. Файли подання в ocStore мають розширення .tpl.

C — контролер (Controller)#

Контролер збирає дані з моделі, налаштування магазину й модулів, а потім виводить їх, обираючи відповідні файли подання.

L — мова (Language)#

ocStore розширює MVC до MVCL, надаючи простий спосіб відокремити мовнозалежну інформацію для інтернаціоналізації. У мовних файлах можна зберігати будь-які тексти — заголовки, назви, написи на кнопках тощо, — тож для перекладу магазину достатньо відредагувати по одному файлу для кожної мови.

Структура каталогів#

Структура каталогів ocStore побудована навколо двох головних частин застосунку.

Вітрина та адміністративна частина представлені окремими теками у корені встановленого магазину. Тека вітрини називається catalog/, а тека адмінки — admin/. Якщо ви змінюєте лише адміністративну частину магазину, вам не доведеться редагувати жодного файлу в теці catalog/. І навпаки: працюючи лише з вітриною, не слід змінювати теку admin/.

У кожній із тек admin/ та catalog/ є окремі теки для моделей, подань, контролерів і мовних файлів: model/, view/, controller/ та language/.

У магазині є й інші теки.

Тека system/ містить класи та функції, спільні для адмінки та вітрини: помічники для роботи з поштою та базою даних, базові визначення контролерів і моделей, інші частини рушія ocStore, а також бібліотеки. Змінюючи функціональність магазину, редагувати системні файли доводиться дуже рідко.

Тека image/ містить усі зображення, завантажені через менеджер зображень: зображення товарів, додаткові зображення, а також кешовані копії зображень зі зміненим розміром.

Тека download/ містить файли для завантаження, пов'язані з товарами. До назв цих файлів додається хешований суфікс, щоб зловмисники не могли вгадати імена файлів і завантажити їх напряму. Саме тому в кінці назв файлів у цій теці ви побачите випадкові рядки.

Сторінку перекладено й адаптовано для ocStore з посібника OpenCart 1.5 Documentation by HostJars. Ліцензія — CC BY 3.0.