Как называть и где хранить файлы MVC

Avron2

Новичок
Как называть и где хранить файлы MVC шаблон (view) и модель (model)?
Я придумал так. В каталоге с контроллером (controller) создаю каталог include в ней каталог MVC, а в нем 2 каталога model и view. В эти 2 каталога бросаю файлы шаблона и модели, а называю их одинаково равным названию подключаемого файла контроллера (напр. index.php).

Теперь пример, допустим текущий каталог test, тогда файлы расположены так:

PHP:
/test/index.php - контроллер
/test/include/MVC/model/index.php - модель
/test/include/MVC/view/index.php - шаблон
Как это лучше делать? Правильно ли я делаю. Хотелось бы с самого начало правильно распологать файлы на сервере.
Спасибо.
 

Андрей.О

Новичок
А от того как будут называться файлы что-то изменится ? Это дело вкуса.
 

Avron2

Новичок
В моем примере index.php - один файл контроллера. Их может быть десятки или сотни и они с разными именами (что не удивительно :)). В каталогах /test/include/MVC/model/ и /test/include/MVC/view/ будут находиться соотсветствующие подключаемые файлы.
Это нужно для того, чтобы дизайнер быстро мог найти соотвествующий файл, подключаемый контроллером.
Вкус вкусом, но как общепринято?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
У меня есть папочка controllers или там views или models, там лежат контроллеры, темплейты и модельки соответственно.

Контроллеры именуются как Controller_Index.php, Controller_Admin_Users.php. Ну и модели так же. Model_Admin_Users.php

Мне так удобно, я так привык.
 

Avron2

Новичок
У меня есть папочка controllers или там views или models, там лежат контроллеры, темплейты и модельки соответственно.

Контроллеры именуются как Controller_Index.php, Controller_Admin_Users.php. Ну и модели так же. Model_Admin_Users.php

Мне так удобно, я так привык.
Получается что код в /www/subdir1/subdir2/index.php такой:
PHP:
require_once "controllers/Controller_Index.php";
//конец файла
 

Духовность™

Продвинутый новичок
У меня так:
Код:
application:
  -- controllers
  -- models
  -- views
  -- www
     --  index.php
И для того, что бы быстро начать делать проект на базе уже существующего надо сидеть и вычищать лишние файлики?

У меня так: все разделено помодульно.
 

Вложения

Avron2

Новичок
Действительно. А ведь каталог controller можно и не создвать, как в 1-ом посте я написал? Сразу будет видно где контролер (из адресной строки).
Иначе, прийдется создавать файл с одним лишь включением в него контроллера
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Можно вообще все захреначить в корневую папку
 
  • Like
Реакции: craz

Духовность™

Продвинутый новичок
Я раньше хранил контроллер в папке controllers, модели в models и т.д. Потом, когда на базе одного проекта надо делать другой, приходится вычищать.

Разбивайте на модули всё. Модуль пользователь - контроллер регистрация, авторизация, юзеринфо и т.д. - это почти статические компоненты системы, которые с минимальными отличиями мигрируют из проекта в проект. Не храните все скопом, это никому не нужно.
 

Avron2

Новичок
Я раньше хранил контроллер в папке controllers, модели в models и т.д. Потом, когда на базе одного проекта надо делать другой, приходится вычищать.

Разбивайте на модули всё. Модуль пользователь - контроллер регистрация, авторизация, юзеринфо и т.д. - это почти статические компоненты системы, которые с минимальными отличиями мигрируют из проекта в проект. Не храните все скопом, это никому не нужно.
Все верно.
А какой смысл создвать каталог controllers, ведь это и есть тот index.php, который открывает браузер. А если с каталогом controllers, то приходится делать лишнее включение файла контроллера в файл index.php. Можно так, как я в 1-ом посте написал?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Духовность™
Не надо тут путать теплое и мягкое. Нормально написанный проект, с документацией и прочим ни в каком вычищении говн не нуждается.

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

Avron2
Ты путаешь точку входа и контроллер.
 

Avron2

Новичок
Нет, я понимаю что это разные вещи, только ведь ничего не меняется или я чего-то не пойму. Еще понимаю, что не каждый файл на сервере, адрес которого попадает в адресную строку браузера - это контроллер.
 

Avron2

Новичок
Духовность™
Не надо тут путать теплое и мягкое. Нормально написанный проект, с документацией и прочим ни в каком вычищении говн не нуждается.

А вот если плодить всякое ненужное теплое-мягкое по всему проекту толстым слоем, то тут как ни разбивай, все равно будет потом сложно разобраться.
Наверное, в этом вопросе нет правильного ответа, каждый сам принимает решение, удобное для него
 

Духовность™

Продвинутый новичок
Не надо тут путать теплое и мягкое. Нормально написанный проект, с документацией и прочим ни в каком вычищении говн не нуждается.
Причем тут документация?

У любого проекта есть несколько основных частей, которые теоретически, а зачастую ещё и практически могут перекочевывать из проекта в проект.
Например:
- Модели (entity или сущьности) - описывающие объекты системы.
- Сервисы или менеджеры - классы содержащие логику определенных действий
- Вид
- Шаблон
- Контроллер

Я не случайно вам принтскрин сделал из своего проекта и раскрыл модуль "пользователя". Посмотрите внимательно - http://phpclub.ru/talk/attachments/11111111111111111111111111-jpg.179/ - я могу взять этот проект, удалить не нужные модули (например, модуль объявления) и создать сайт знакомств. А вы со своей дурацкой системой, когда все в оду диру свалено захлебнетесь на более-менее сложном проекте.

Поймите, чего нельзя делать в программировании, так это экономить место в сценариях, бояться лишний раз сделать инклюд или трястись над количеством файлов или папок. Надо делать так, что бы разрабатывать было удобно. Что бы была ясность и четкость, что бы у проекта была структура, а не мешанина из файлов в руте.
 

shelestov

я тут часто
И для того, что бы быстро начать делать проект на базе уже существующего надо сидеть и вычищать лишние файлики?
У меня один проект, с которым работаю уже долго.
Задач по клонированию framework-а не возникало.
 

Avron2

Новичок
И для того, что бы быстро начать делать проект на базе уже существующего надо сидеть и вычищать лишние файлики?

У меня так: все разделено помодульно.
А как у вас выглядит каталог User/Controller?
В каталоге User есть каталоги Mapper, Service. Их контроллеры тоже в каталоге User/Controller? Если да, то тогда они у вас находятся в соответствующих подкаталогах?
Или же они отдельные модули и у них есть свои контроллеры
Mapper/Controller
Service/Controller ?
 
Сверху