Створення route mvc - stack overflow російською

Розумію, що наболіла тема, і багато (дуже багато) прикладів є в інтернеті.

Справа в тому, що у мене є Рауса, але вони криві (сам код поганий). Вид наступний:

і масив через new Router;

Суть в тому, щоб все працювало, мені потрібно ще створювати окремий файл і прописувати туди два методи:

і метод, для створення екземпляра класу з назвою класу, параметрами і екшеном.

У будь-якому випадку, то що вище - не зовсім важливо.

Суть в тому, що це як-би мій досвід в написанні роутінга, і у мене в голові насильно засів даний спосіб, на жаль.

Як можна нормально написати подібну систему? Чи не використовуючи доп.классов, тобто: два класи Route, Router:

P.s: не прошу за мене писати, просто "штовхніть" на роздуми. Дякуємо)

заданий 5 Серпня '16 о 23:14

Закритий унаслідок того, що необхідно переформулювати питання так, щоб можна було дати об'єктивно вірну відповідь учасниками Streletz. kff. dDevil. alexander barakin. Vartlok 9 Серпня '16 о 13:09.

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

MVC - означає, що у вас є контролери для роботи з сайтом, моделі надають дані, і вьюха для їх відображення.

За ідеєю, структура каталогів для скриптів може бути щось на зразок:

Насамперед потрібно прописати автолоадер, щоб нам не винаходити велосипед і включати класи за бажанням (потрібно включити в індексний файл):

Базові класи (в них, по ідеї, потрібно визначити якийсь базовий функціонал):

По суті ваш клас View може бути оболонкою над якимось шаблонізатором для більш зручної роботи з ним. В цьому випадку дуже рекомендую не писати свого шаблонізатора, а використовувати щось готове. З готових мені найбільше подобається Twig.

Далі потрібно брати отриманий URL і з нього витягати шлях для виклику потрібного контролера:

І, власне у вас повинен бути якийсь index.php (або якийсь інший файл), який буде все ініціювати.

ВАЖЛИВО! Хоч я і вліз в деякі подробиці, я лише хотів наштовхнути вас на якусь ідею автоматизації. Реалізувати роутинг так само можна за допомогою файлів (прописуючи шляху в якийсь файл / файли роутінга, як приклад, можна подивитися Symfony). У будь-якому випадку, код я писав прямо тут, не перевіряючи його працездатність. Так само не наполягаю на його ідеальності.

Буду радий, якщо зміг якось допомогти.

Так в psr2 є стандарт іменування класів, без namespace точніше вони писалися в назву класу до пріммеру клас з ім'ям Core_App_Abstract лежить в файлі Core # 47; App # 47; Abstract.php так само і namespace клас Core \ App \ AbstractClass буде лежати в Core # 47; App # 47; AbstractClass.php так інтуінтівно зрозуміло де знаходитися фаил з класом. В останньому замінив Abstract на AbstractClass тому Abstract це ключове слово в php. @VladimirGamalian - Naumov 6 Серпня '16 о 6:05

Схожі статті