[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Императив VS ООП
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
twin
По следам этой темы.
Вводная:
Цитата
Давайте попробуем. Создадим простую CMS, с модулями:
* Страница
* Категория
* Пользователь
* Комментарий

Пользователи могут добавлять комментарии к страницам. Пользователи могут добавлять страницы если у них есть на это право. Для страниц можно задавать категории. Комментарии могут относиться не только к страницам, но и к Пользователям, Категориям, Комментариям.
Категории могут относиться к категориям.

Требования к реализации: без стороних библиотек, с использованием одной парадигмы.


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Уточнения.
Цитата
Создадим простую CMS, с модулями:

Cхема MVC?
Цитата
без стороних библиотек, с использованием одной парадигмы.

Cвои наработки можно юзать? Тот же шаблонизатор допустим. Или просто пишем в один листинг?



_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
Цитата (twin @ 2.11.2014 - 13:57)
Cвои наработки можно юзать? Тот же шаблонизатор допустим. Или просто пишем в один листинг?

ок, если он написан в той же парадигме.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Arh
Без кода:

Главные контроллеры:
index.php
admin.php (пока не рассматриваем)
api.php (пока не рассматриваем)

Файл общей логики system.php. Тут подключается база данных и допустим какие то конфиги.

index.php запрашивает модули из базы данных (если на главной, то те, у который поле show_homе == 1)

В цикле запускает контроллеры этих модулей /modules/имя_модуля/index.php
Только запускает их в функциях, что бы все переменные модулей были локальными, что бы не было багов, если сразу сто модулей на одной странице запустить.

Перейдя по ссылке site.ru/news/ запускается модуль news и те у кого в поле стоит show_mods = 1, то есть те модули которые тоже активируются на других страницах (так же можно по ссылкам даже сделать, чтоб запускать нужный модуль на какой то определённой странице типа /news/cat/1/post/1)

Всё, уже есть система в которой модули можно запускать хоть на главной, хоть на всех, хоть на конкретных страницах.
Теперь права доступа. В таблице прописаны правила, допустим юзеру 1 разрешено правило 1, в другой таблице описаны правила, что правило 1, это разрешить запускать сам модуль, правило 2 это разрешить ставить рейтинг.
На основе этого получяется массив (или объект, как хотите) для каждого пользователя, в котором лежат настройки доступа для модулей.
В итоге при подключении модуля можно проверить допустим так
if($Access['news']['index']) {
//подключаем модуль
} else {
//у вас недостаточно прав
}

Так конечно красивее $Access->get('index'); , но я пытаюсь показать всё доступно.

И вот уже есть гибкая система прав доступа, в контроллере модуля ну или в модели проверяем может ли пользователь выставлять рэйтинг if($Access->('rating'))

И третий пункт, выводим содержимое модулей в шаблон в нужный тег с помощью любого шаблонизатора или даже без шаблонизатора.

В итоге получилась CMS с гибкими настройками доступа, с возможностью выводить модуль на любых страницах и в любой тег шаблона.

Ни капли ООП.



_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
chee
Цитата (twin @ 2.11.2014 - 13:57)
Cхема MVC?

желательно

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Еще один вопрос. Оформление. Давай без дизайна, одни данные. А то я проиграю, я рисовать не умею, а покупать диз жаба давит smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
bestxp
И да все что операционирует объектами в каком нибо виде считается ООП =) Не забываем про это)))
chee
Цитата (twin @ 2.11.2014 - 20:40)
Еще один вопрос. Оформление. Давай без дизайна, одни данные. А то я проиграю, я рисовать не умею, а покупать диз жаба давит smile.gif

Это неважно. Основной упор надо делать на серверную сторону, её организации.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата (bestxp @ 2.11.2014 - 16:47)
И да все что операционирует объектами в каком нибо виде считается ООП =) Не забываем про это)))

Хорошо. Это так и есть, потому что у мня new генерирует не объект, а экземпляр класса. Стоит объяснять разницу?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Еще уточнение.
Цитата
Пользователи могут добавлять страницы если у них есть на это право. Для страниц можно задавать категории.
Это должна быть админка с регистрацией или просто обойдемся раздачей ролей?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата
Категории могут относиться к категориям.

Это непонятно. Должно быть дерево бесконечной вложенности? Как должно тогда выглядеть добавление. По этому ТЗ нужно разрешить доверенному юзеру добавлять не только страницы, но и категории?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
Цитата (twin @ 2.11.2014 - 22:58)
Это непонятно. Должно быть дерево бесконечной вложенности? Как должно тогда выглядеть добавление. По этому ТЗ нужно разрешить доверенному юзеру добавлять не только страницы, но и категории?

у категории может быть (не обязательное поле) родительская категория. Добавления категории как посчитаете нужным, я буду делать форму, где будет название категории и родительская кадегория, дерево строить не буду, буду показывать список. Что на счет прав, то да, доверенные пользователи могут добавлять категории.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата (twin @ 2.11.2014 - 22:01)
Это должна быть админка с регистрацией или просто обойдемся раздачей ролей?

У меня не будет админки, все админские функции будут определенным пользователям, которые произведут логин в систему.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sergeiss
Цитата (twin @ 2.11.2014 - 21:48)
...у мня new генерирует не объект, а экземпляр класса. Стоит объяснять разницу?

И да начнётся еще один холивар...

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
twin
Цитата
дерево строить не буду, буду показывать список. .
Вообще не понял... Если в любую категорию можно добавить категорию, это всяко дерево получается... Как это иначе должно отображаться?

Я сделаю дерево. Просто не понимаю, как по другому.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.