Микро-движок на ООП. Объективная оценка.

Nezhnayka

Новичок
Добрый день. Недавно ознакомился с ООП, после чего не сразу понял, как все это можно применить на практике в своих проектах. Решил накидать микро-движок ( http://rghost.ru/51094665 ) , чтобы как-то пощупать на практике, как можно применить ООП в сайтостроении.

Самая главная проблема в том, что незнаю, как можно грамотно максимально приблизиться к построению сайтов на ООП (Как должны выглядеть структура сайта на ООП и т.д)..

Прошу помощи в объективной оценке того, что у меня получилось, а так-же советов, что можно было по Вашему мнению в структуре моего движка сделать иначе (именно в плане ООП) , что изменить в самой структуре построения такого движка (опять же в плане ООП), недочеты, может еще что-то в коде.

Заранее благодарен откликнувшимся.
 

Вурдалак

Продвинутый новичок
Залей код сюда: https://github.com/

Качать его с rghost.ru в виде архива, распаковывать, открывать в редакторе, удалять потом — не много ли ты хочешь?
 

Nezhnayka

Новичок
Я бы с удовольствием, но даже не понял, как этим сервисом пользоваться.

На самом деле, скачать архив (40кб), распаковать, открыть в редакторе, буквально 1 мин. делов. Поэтому кому не сложно, просьба откликнуться.
 
Последнее редактирование:

Vladson

Сильнобухер
Тогда положительных отзывов не жди. Уже по фразе "недавно ознакомился" есть какое-то предвзятое чувство (и это у меня, хотя я более чем "толерантен" к такому, остальные посетители этого форума боюсь не будут настолько "политкорректны" в выборе слов... Могут и матом послать) :)
 

fixxxer

К.О.
Партнер клуба
Вместо того, чтобы изобретать велосипеды с треугольными колесами, почитай про MVC и посмотри, как устроены современные фреймворки.

От ООП тут толком ничего нет. ООП оно про SOLID, а не про ключевое слово class.

Впрочем я понимаю что вот так сходу сложно. Для начала сделай так, чтобы html был только в шаблонах.
 

riff

Новичок
Понимаешь в чём проблема, там критиковать нечего.
Ну всё равно, что
include 'header.php';
echo 'Hello.';
критиковать.

От ООП там только слово class есть. (упс, выдернул фразу fixxerа)
Ну вот что ещё хочешь услышать?
Начни писать на нём, не знаю, кулинарный сайт, к примеру. Ты хотя бы сам поймёшь каково писать на твоём "движке".
А мнимая простота штамповать странички вот так:
Это контент goods-страницы.
- это розовые фантазии.
Если бы было всё так просто, php можно было перестать развивать лет 10 назад, он тогда это умел. Хотя не в этом дело.
Ни базы данных нет, ни редактирования, ни ...
Учиться, конечно, надо, и народ тебе подсказал бы что да как... если бы был предмет для разговора, а в данном случае "подсказать" - это значит начать объяснять с нуля и до...
 
Последнее редактирование:

Vladson

Сильнобухер
Если бы было всё так просто, php можно было перестать развивать лет 10 назад, он тогда это умел.
Ну кстати для типовых сайтов так оно и есть. (Хватает того что было уже 10 лет назад, и даже раньше.) Многие вещи которые с тех времён в PHP появились, часто только запутывают новичков, но для "мейнстрима" совсем не нужны. (Другой вопрос что программирование вообще, и PHP в частности, это не только "мейнстрим".)

По "движку" же, увидел только два файла...Слов нет. Одни эмоции. Это не движок, и ООП там нету. Сейчас пьян, потом гляну ещё немного, возможно даже разложу подробнее что именно не нравится.
 

riff

Новичок
Ну кстати для типовых сайтов так оно и есть. (Хватает того что было уже 10 лет назад, и даже раньше.)
А вот всё равно, даже для типовых, как-то не хочется даже на php5.2 возвращаться, не говоря уже про "вглубь истории" :)
 

Nezhnayka

Новичок
Всем спасибо за ответы!
Впрочем я понимаю что вот так сходу сложно. Для начала сделай так, чтобы html был только в шаблонах.
Спасибо, то есть весь код html лучше вынести в отдельные файлы и инклюдить их? Да, сходу сложно на самом деле понять, как правильно, грамотно применить ООП в проектах.
Понимаешь в чём проблема, там критиковать нечего.
Мне главное в этом движке понять, правильно ли я сделал построение вывода страниц сайта, прописав на каждой из страниц:
PHP:
$arrCSS = array(
                "style.css"
            );
    $arrJavascript = array(
                "jquery-1.9.1.min.js",
                "script.js"
            );
        
    $page = new Page("index", "Главная страница", $arrCSS, $arrJavascript, $topMenu, $leftMenu);
Правильно ли я сделал, что передаю здесь массивы подключаемых скриптов, верхнего и левого меню при создании Page, или может быть как-то иначе можно было это сделать, возможно держать эти массивы внутри класса, может еще чего, правильно ли я вывожу html (кусками ли он должен выводиться или может есть какой-то другой подход), правильно ли я вообще все это сделал? Проблема в том, что хочу уловить суть построения сайтов на ООП (грамотное построение страниц, вывод html, передача параметров меню) - вот что самое главное. В сложных современных фреймворках, мне сложно сейчас разобраться.
а в данном случае "подсказать" - это значит начать объяснять с нуля и до...
Мне бы просто суть понять построения сайтов на ООП, построение и вывод самих страниц по принципу ООП, самый корень. Работа с БД и другие фишки - с этим разберусь.

Самая главная проблема сейчас в том, что синтаксис ООП узнал, вроде много чего узнал про ООП, а как грамотно применить это, построить сайт на ООП, незнаю.Вроде все инструменты в руках, а что с ними делать, незнаю. Потому как можно частично применить ООП (например весь html держать в index.php, news.php, about.php и т.д. и только там, где нужно вывести динамический контент, дергать методы классов и подставлять полученное в нужных местах), но хотелось бы сделать именно с выводом html со всем, всем,всем, чтобы именно в index.php, news.php и т.д дергать один, два, три метода каких-либо классов и получать готовую страницу (но опять же грамотно чтобы это было).. Вот как мог, объяснил))
 
Последнее редактирование:

флоппик

promotor fidei
Команда форума
Партнер клуба
Мне бы просто суть понять построения сайтов на ООП, построение и вывод самих страниц по принципу ООП, самый корень. Работа с БД и другие фишки - с этим разберусь.
Самая главная проблема сейчас в том, что синтаксис ООП узнал, вроде много чего узнал про ООП, а как грамотно применить это, построить сайт на ООП, незнаю.Вроде все инструменты в руках, а что с ними делать, незнаю. Потому как можно частично применить ООП (например весь html держать в index.php, news.php, about.php и т.д. и только там, где нужно вывести динамический контент, дергать методы классов и подставлять полученное в нужных местах), но хотелось бы сделать именно с выводом html со всем, всем,всем, чтобы именно в index.php, news.php и т.д дергать один, два, три метода каких-либо классов и получать готовую страницу (но опять же грамотно чтобы это было).. Вот как мог, объяснил))
Ты вообще говоришь не про ООП. ООП не привязано к "построению страниц и сайтов". ООП - это парадигма программирования в основе которой лежит управление объектами: сущностями, которые объединяют в себе и данные, и логику их обработки, замыкая их в "черный ящик" который имеет четкие границы свойств и действий, формирующий одну смысловую единицу ( это называется абстракция), эта единица - объект, который позволяет пользоваться определенным своим сложным поведением, скрывая подробности реализации: примитивные служебные методы, вызовы простых функций, или даже другие объекты внутри себя - это называется инкапсуляцией. Объекты могут расширять и уточнять свою логику через наследование от других, более общих, родительских классов, реализуя одинаковое обращение над схожими данными, но реализуя другую логику, это называется - полиморфизм.

А то что ты написал - это не ООП. То, что ты пытаешься понять и сформулировать, это скорее MVC. ООП - не инструмент, это логика мышления, слабо связанная с конкретным языком программирования.
 

Nezhnayka

Новичок
А то что ты написал - это не ООП. То, что ты пытаешься понять и сформулировать, это скорее MVC. ООП - не инструмент, это логика мышления, слабо связанная с конкретным языком программирования.
Понятно, большое спасибо за ответ!
Вместо того, чтобы изобретать велосипеды с треугольными колесами, почитай про MVC и посмотри, как устроены современные фреймворки.
Скажите, фреймворк yii подойдет для этого?
 

Nezhnayka

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

флоппик

promotor fidei
Команда форума
Партнер клуба
Буч это Гради Буч, объектно-ориентированный анализ и проектирование. А баш... это баш )
 
Сверху