Розумію, що наболіла тема, і багато (дуже багато) прикладів є в інтернеті.
Справа в тому, що у мене є Рауса, але вони криві (сам код поганий). Вид наступний:
і масив через 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