Здравствуйте и доброго времени суток. Я учусь в колледже и пишу дипломную. Изучаю php сам уже пару месяцев по форумам. Столкнулся с проблемой. В колледже помочь не могут , ну об уровне образования отдельный разговор. Буду благодарен всем кто сможет помочь СУТЬ ВОПРОСА Как сделать аутентификацию пользователей не нарушая концепции MVC приложения? У меня есть следующая идея, но что-то мне кажется, что она не будет работать. Жду от Вас предложений по реализации задачи или чтобы Вы подсказали что не так в моей идее. Желательно с объяснением как для новичка Вот сам вариант. https://drive.google.com/file/d/0ByAsks3al55jTUlYUGtpcFlOQW ... sp=sharing
Смотри у тебя есть роутер, который я думаю управляет путями, к нему добавь ещё firewall и acl/rbac для авторизации. Посмотри как всё устроенно например в symfony2. Учить лучше по свежим книгам + теория по паттернам, ООП можешь посмотреть. И всё зависит от задачи, это как с алгоритмами, к ним разные требования.
Подалуйста изложи "идею" без необходимости откуда-то что-то скачивать. А кто сказал, что одно против другого? Обоснуй.
artoodetoo спасибо за критику , я думаю, что если напрямую подключаться к БД из контроллера или из представления, пытаясь проводить операции над данными, то это нарушит саму идею модели (Это моё мнение могу быть не прав ). Насчёт идеи - у меня её нет и за этим я и задал вопрос, чтоб мне помогли и описали как и что должно работать, и приложил к вопросу я свой вариант, чтоб мне сказали правильный он или нет и всё (скорее всего не правильный). Под словом правильный я не подразумеваю рабочий т.к. заставить работать не проблема, но последствия могут быть неожиданными. Уже 3 раза переписываю эту несчастную дипломную и 4-го не хочу. А вложил файл, т.к. не было времени регистрироваться на хостинге изображений, а другого метода вставить изображение я не нашёл, извините. denis01 СПАСИБО ЗА ОТВЕТ. Да роутер (или рутер) есть, это 1 маленькая функция, вернее метод, а вторая подключает файл контроллера. Читал про spl_autoloader, так и не разобрался... оставил до лучших времён. Код (PHP): public function split_url(){ global $config; $this->controller=$config['default_controller']; $this->action=$config['default_action']; //echo $_GET['url'],$this->controller,$this->action; if(isset($_GET['url'])){ $segments = explode('/',trim($_GET['url'] , '/')); if(isset($segments[0]) && ($segments[0] !='')){ $this->controller=$segments[0]; } if(isset($segments[1]) && ($segments[1] !='')){ $this->action=$segments[1]; } if(count(array_slice($segments,2)) >0) { $this->params=array_slice($segments,2); //print_r( $this->params); } } //echo $this->controller,$this->action; } public function call_controller(){ global $config; $path = CONTROLLERS_DIR . DS . $this->controller . '.php'; if(file_exists($path)){ include_once($path); $this->controller = new $this->controller(); if(method_exists($this->controller,$this->action) && ($this->test_method())) { call_user_func_array(array($this->controller,$this->action),$this->params); } else{ call_user_func(array($this->controller, 'index')); } }else{ include_once(CONTROLLERS_DIR . DS . $config['error_controller'] . '.php'); $this->controller = new $config['error_controller']; } } За firewall и acl/rbac спасибо, погуглю. Посмотри как всё устроенно например в symfony2. Как-то смотрел не разобрался там спецом нужно быть, чтоб понять тот код Учить лучше по свежим книгам + теория по паттернам, ООП можешь посмотреть. Можете посоветовать что-то, но такое конкретное без лирических отступлений чтоб по существу, а то смотрел пару видео уроков и понял что не в них счастье. И всё зависит от задачи, это как с алгоритмами, к ним разные требования. Задача простая Создать freelance сайт с личным кабинетом у каждого пользователя и с админ панелью, с возможностью выбора шаблонов. Ну естественно с регистрацией т.п. Это дипломная которую нужно будет показать в течении 15 минут через 3 месяца... Времени, я понял у меня нет, учить придется на практике. За последние 2 месяца вроде получается, это с 0 и уже что-то получилось. СПАСИБО ЕЩЁ РАЗ ВСЕМ Добавлено спустя 2 минуты 48 секунд: Есть 1 маленькая просьба. Понимаю, что может быть лень писать, но пожалуйста пишите как можно подробней, каждое ваше слово сокращает мои поиски на пол часа. Ценю вашу помощь и понимание
Читай книги, вместо видео. Раз это дипломная, то главное чтобы ты понимал что и как работает наизусть и объяснил это тем кто будет проверить. Пиши и рассказывай как можно более простым языком и объясняй термины. Задача думаю тебе по силам.