|
|
||||||||||||||||||||||
MVC - мой первый скрипт, оцените/исправьте/добавьте/прокомментируйте07.12.2011, 16:37. Показов 9781. Ответов 57
Метки нет (Все метки)
Доброго времени суток, вот я погуглил, почитал всяких статей про MVC на PHP, поюзал немного фреймворк CodeIgniter, и решил что надо чтото в этом роде попробовать написать своё, вот и начал лепить, и щас выкладываю вам код того что налепил...
Зараннее прошу сильно не ругаться т.к. раньше никогда неписал скрипты на ООП, и неделю назад - вообще неимел понятие о том что такое MVC!!! начну с файла .htaccess, расписывать ничего небуду, просто вот его содержимое:
файл index.php - в корне сайта:
далее создаем обьект $router класса Router и вызываем метод delegate - который в свою очередь возьмет строку из $_GET['route'] разобьет её на куски и будет подгружать контроллерыи их методы с или без параметров... Вот код класса Router, который находится в../conf/router.php:
Вот контроллер Index:
в контроллере Home - есть функция index - которая работает если пуста переменная $action класса Router, и есть функция view_home - которая может принимать параметр(по умолчанию - он = NULL) - здест тоже всё работает через delegate() класса Router. Чудо, когда я вот так набираю в адресной строке http://localhost/home/view_home/variable, всё работает ![]() а вот когда просто http://localhost/ - то контроллер Index - вызывается дважды........ Взглянув на этот код - сразу видно что это жесть,и первое что мне ненравится - это то что всем методам контроллеров мы можем передать только по одному параметру(который хранится в $vars) - а если надо больше - непойму как поступить, но всёже я хочу услышать советы, поправки, и вообще может я всё тут неправильно сделал, жду ваших комментов... Спасибо за внимание!!!
3
|
||||||||||||||||||||||
| 07.12.2011, 16:37 | |
|
Ответы с готовыми решениями:
57
Мой первый вывод новостей Мой первый класс в ООП Оцените код пожалуйста - правильно ли я понял ООП и MVC? |
|
|
||||||||||||
| 09.12.2011, 17:17 [ТС] | ||||||||||||
0
|
||||||||||||
|
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
|
|
| 09.12.2011, 17:24 | |
|
И повторяю в 10-ый раз
![]() Напиши уже дурацкий $this-> перед своей переменной $model в функции _construct(); !!!!!!! $model - не глобальная переменная! $this->model - переменная принадлежащая тому же классу, которому принадлежит функция _construct(). Добавлено через 1 минуту Обьявляется как $model в классе, но вызывается как $this->model.
0
|
|
|
|
||||||||||||
| 09.12.2011, 17:26 [ТС] | ||||||||||||
Fatal error: Using $this when not in object context А так:
Fatal error: Cannot access empty property
0
|
||||||||||||
|
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
|
|
| 09.12.2011, 17:36 | |
|
тогда допиши require('Home_m.php'); в самом начале файла. Он не подгружается автолоадером.
Добавлено через 41 секунду $this->$model - это вообще не то. И вообще из другой степи. Тебе нужно $this->model.
0
|
|
|
|
|||||||
| 09.12.2011, 17:41 [ТС] | |||||||
Сработала функция __autoload(); - Загружен класс home_m и ниже ошибка: Using $this when not in object context Сделал require - он и перестал грузиться, но ошибка осталась....
0
|
|||||||
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
||||||||||||
| 10.12.2011, 03:56 | ||||||||||||
|
на ООП не пишу, полгода назад взялся за эту тему, но решил сначала освоить MVC на процедурном методе.
Кстати в сети читал, что если исходить по умному, то сайт лучше писать процедурно, но используя классы как библиотеки, а всю архитектуру строить на ООП - это не совсем правильно что ли. Спорить не буду, тем более, как уже сказал с ООП знаком очень поверхностно. Теперь к теме, Еще такая вешь, типа сохранение в self
у тя знания посвежее ![]() Добавлено через 3 минуты а если надо обратиться к другому классу, тогда в конструкторе напиши имя уже того класса, который нужен (как я понял те нужен класс Home_m)
брр.., чуть не забыл, нужно проинклудить файл с другим классов в начале файла класса Home() , и думаю лучше будет использовать include_once(), поэтому наверное у тя 2 раза грузился класс или файл, забыл
1
|
||||||||||||
|
|
||
| 10.12.2011, 14:58 [ТС] | ||
|
0
|
||
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
||
| 10.12.2011, 16:13 | ||
|
Sanu0074, попробуй подключать классы без автолоуда, напрямую через include_once(), посмотри сработает или нет.
0
|
||
|
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
|
|
| 10.12.2011, 18:47 | |
|
Прикрепи код файлами, попробую так запустить.
0
|
|
|
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
|
|||||||||||||||||
| 10.12.2011, 22:31 | |||||||||||||||||
или так
0
|
|||||||||||||||||
|
|
||||||
| 11.12.2011, 01:11 [ТС] | ||||||
Fatal error: Using $this when not in object context я немогу понять почему так происходит!!! хотя вот статью прочитал, тут: http://vredniy.ru/2010/03/mvc-introdution/ именно такой способ работает!! странно както!!
0
|
||||||
|
13 / 13 / 5
Регистрация: 06.12.2011
Сообщений: 50
|
||||||
| 11.12.2011, 01:23 | ||||||
|
хз, я вот только что попробовал
Home_m Object ( [tmp] => Привет )
0
|
||||||
|
|
||
| 11.12.2011, 01:32 [ТС] | ||
|
$a = new Home(); $a->get_file(); у меня не так обращение идет, почитай тему полностью, поймеш что откуда берется и файлы я выше выкладывал можеш кинуть их себе и попробовать запустить!
0
|
||
|
13 / 13 / 5
Регистрация: 06.12.2011
Сообщений: 50
|
|
| 11.12.2011, 02:23 | |
|
Читал-читал не пойму что нужно и где есть проблема. Скачал твои исходники, запустил - все ок, кроме мелких ошибок ничего не заметил. версия php какая? лучше не опускать указание public private static(читал где-то выше что ты надеешься на то что переменные по стандарту идут паблик) и правильное обращение к соответствующим типам.
0
|
|
|
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
|
|
| 12.12.2011, 08:11 | |
|
поставь 5.3.8, проадпейть апач/nginx. Хз потому что тоже.
Добавлено через 53 секунды Скопируй папку в соседний домен, в конце концов Выключи кэширование. Смени расу, пол, место проживания
0
|
|
|
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
|
||
| 12.12.2011, 11:51 | ||
|
На дэнвере, на одном компе, различие - название папки. А так - две копии. Не знаю, с чем было связано.
0
|
||
| 12.12.2011, 11:51 | |
|
Оцените мой код. Знания в Веб технологиях у меня не маленькие и опыт тоже!
Оцените мой первый сайт на php Проверка на дырки, мой первый работоспособный скрипт регистрации и авторизации Исправьте/добавьте, пожалуйста, в программе код, чтобы стала работающей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|