Аватар для devilin
3 / 3 / 3
Регистрация: 03.01.2012
Сообщений: 146
1

Не знаю с чего начать в ООП

27.05.2012, 19:06. Показов 8177. Ответов 55
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ, вообщем дело такое, вроде бы прочел не одну книгу по ооп на php теоритически вроде все знаю, но не знаю как начать писать сайт. МОгли бы вы выложить пример не большого сайта на ооп. Вопрос адресован профи)Очень жду и надеюсь на Вас.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.05.2012, 19:06
Ответы с готовыми решениями:

Не знаю с чего начать
Здравствуйте! Я решил начать изучать OpenGl и не знаю какую книгу выбрать на русском языке....

Не знаю с чего начать:(
Товарищи программисты подскажите с чегко начать писать данную программу: Может кто нибудь...

Не знаю с чего начать
Здравствуйте! Я начинающий, помогите мне пожалуйста с API. Нужно, чтобы приложение выдавало...

Не знаю с чего начать
Добрый день! Мне нужно сделать хранилище данных формата pdf с возможностью поиска. В институте...

55
 Аватар для Lawlietb32
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
18.06.2012, 11:06 41
Author24 — интернет-сервис помощи студентам
Василий Макогон, ну я просто по быстрому попробовал сделать... да, добавить экранизацию спец символов, проверять кол-во "?" и записей в массиве... а Вы делаете свои классы для работы с БД? или пользуетесь готовыми? И есть ли смысл писать самому?
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
18.06.2012, 13:19 42
Lawlietb32,

если так делать то надо в массив заводить переменную со строчными ключами где ключ будет соответствоваать имени поля
тоглда геренить уже не только values а и список полей.
так делает например adodb, только там еще выгребается список полей таблицы и проверяется есть ли в ней такое поле .

И есть ли смысл писать самому?
аюсолютно никакого. готовых решений - на все случаи жизни начиная от PDO встроеного в PHP
1
 Аватар для basili4
201 / 199 / 4
Регистрация: 13.06.2012
Сообщений: 1,009
Записей в блоге: 3
18.06.2012, 18:30 43
Сайт на ООП смешно звучит.
Значит что бы делал я в такой ситуации. 1. Поставил бы задачу (сайт визитка,магазин или еще что)
г-н crautcher правильно сказал архитектура зависит от приложения поэтому ставьте задачу.
2. Делите её на блоки модули
Буду брать визитку как наиболее простую сущность.

Сайт "Визитка" состоит из двух частей фронт енд и бак енд. Обе эти части так или иначе работают с хранилищем данных с БД. Значит нужны модуль который работает с такими объектами как страница, и хранит их как записи а БД.

Далее на сайт заходят пользователи значит нужен модуль который работает с объектами пользователь которые тоже хранятся как записи.

Отсюда делаем вывод что нам нужен еще один модуль который работает с БД не взирая на тип объектов. От него будут наследоваться или компоноваться модули пользователей и страниц.

Надо как то отделать страницы друг от друга. Переходить с одной на другую
Нужен модуль роутера.


Далее начинаем писать бак енд т.е. ту сторону которая не видна пользователю.

формируем таблицы для хранения данных.
Не забываем о масштабировании.

И пишем эти модули используя знания ООП.
1
 Аватар для Lawlietb32
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
18.06.2012, 22:28 44
basili4, а можете по подробней чуток остановиться на модулях? какие методы и свойства должны они хранить?

p.s. я написал пару сайтков (не коммерческие) и пользовался исключительно процедурным подходом... очень трудоемко получается (особенно если что-то хочешь изменить, или добавляются поля у таблиц... вообще ужас...) и я так понимаю с ООП такие проблемы сводятся к минимуму... Вот когда писал классы для каких-нибудь шашек или другие программы для windows (на C++), то таких проблем у меня не возникало (какие методы и классы использовать) там я просто начинаю писать и в процессе додумываю какие свойства/методы ещё нужны, а какие стоит удалить... а тут просто даже с чего начать не знаю)
0
 Аватар для basili4
201 / 199 / 4
Регистрация: 13.06.2012
Сообщений: 1,009
Записей в блоге: 3
18.06.2012, 22:55 45
Давайте один рассмотрим например модуль который будет работатать с БД.

Создадим класс БД он будет оболочкой т.е. мы реализуем шаблон протитип. Применять этот клас будем так

Используем еще один паттерн сингелтон.


$db= new Db();

$db->seletc('field')->where('')->limit();

Реализуем методы.

select(array $filelds)
insert(array $filelds)
value(array $values)
update(array $filelds)

where(mixed $filelds,$param=array()) // Условия соединенные and

c методом where сложная ситуация если 1 значение массив то запрос связывается AND и 2 параметр игнорируется

если строка то в запрос в ставляются строка и параметры вида aram заменяются из 2 параметра


whereOR(array $filelds) // Условия соедененые OR

limit
join
delete
truncate
execute
executeSQL

В общем все
1
 Аватар для Lawlietb32
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
18.06.2012, 23:44 46
А мне тут выше советовали не использовать методы типа select, insert и т.д. лучше типо одним query обойтись. Я так понимаю каждый пишет как ему удобней) и кол-во реализаций одного модуля может быть огромное кол-во = )
0
 Аватар для basili4
201 / 199 / 4
Регистрация: 13.06.2012
Сообщений: 1,009
Записей в блоге: 3
18.06.2012, 23:54 47
можно и одним query тогда вы привязываетесь к конкретной СУБД. т.е. синтаксис скажем MSSQL и Mysql отличается.

А используя методы select и тд. Всю реализацию мы скрываем в коде класса, сглаживая различия синтаксиса.
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
19.06.2012, 09:45 48
Цитата Сообщение от Lawlietb32 Посмотреть сообщение
А мне тут выше советовали не использовать методы типа select, insert и т.д. лучше типо одним query обойтись. Я так понимаю каждый пишет как ему удобней) и кол-во реализаций одного модуля может быть огромное кол-во = )
он советует тебе строить билдер sql запросов. я же говорл тебе про обертку СУБД. посмотри API PDO и mysqli - там не методов типа insert
0
 Аватар для Lawlietb32
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
19.06.2012, 11:19 49
При моём сегодняшнем понимании это практически одно и тоже... Вот, например, решили написать класс стека на C++. Что надо? Методы push, pop, getFirst, getLast ну и так далее... Так почему бы так не сделать при работе с СУБД на PHP? Ну Бог с ними СУБД... лучше подскажите какие методы должен содержать модуль "страница"?
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
19.06.2012, 11:36 50
лучше подскажите какие методы должен содержать модуль "страница"?
разработчик сам придумывает методы так же как и придумывает понятие "модуль страница" или какое другое.
Это просто программа. как напишешь так и будет. Ты когда писал на С++ у кого спрашивал какие должны быть методы? Точно так же и здесь. Разберись что должна делатьт страница и поймешь какие методы тебе нужны и нужны ли вообще- общих рецептов тут нет.
1
 Аватар для Lawlietb32
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
19.06.2012, 11:39 51
Да всё таки видимо надо просто начать писать... а дальше уже сам начнешь вникать))
0
 Аватар для basili4
201 / 199 / 4
Регистрация: 13.06.2012
Сообщений: 1,009
Записей в блоге: 3
19.06.2012, 11:44 52
Я бы модуле страница реализовал бы методы изменения мето данных, контента страницы, автора. и тд.

т.е. модуль страница берет информацию из БД и предоставляет её в виде уже готового объекта.
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
19.06.2012, 13:07 53
Цитата Сообщение от Lawlietb32 Посмотреть сообщение
Да всё таки видимо надо просто начать писать... а дальше уже сам начнешь вникать))
с этого и надо всегда начинать вместо разбиратся шо за неведомая конструкция "модуль страницы"
1
 Аватар для Lawlietb32
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
19.06.2012, 13:08 54
Цитата Сообщение от basili4 Посмотреть сообщение
Я бы модуле страница реализовал бы методы изменения мето данных, контента страницы, автора. и тд.

т.е. модуль страница берет информацию из БД и предоставляет её в виде уже готового объекта.
ну теперь становится понятно... есть с чего начинать пытаться) спасибо)
0
Tflex
22.03.2013, 12:05 55
Доброе время суток!
почитал ответы Умников и улыбнулся это как с детской задачкой в какую сторону едет автобус.
Человек ясно попросил выложить шаблон ( козу, рыбу - если еще кто помнит студенческую аббревиатуру).
и какая к черту разница какой это сайт ( визитка, магазин или еще что то.) интересует ведь внутренняя структура папок, и размещение файлов ( тут вопрос больше к профи, ведь если изобретать велосипед то лучше правильно это делать, чтобы не переучиваться).
3 / 3 / 0
Регистрация: 26.06.2012
Сообщений: 63
08.05.2015, 08:27 56
Если еще актуальна тема то вот ссылка: http://habrahabr.ru/post/150267/
0
08.05.2015, 08:27
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.05.2015, 08:27
Помогаю со студенческими работами здесь

Не знаю с чего начать
Доброго времени суток всем. Нужна программа для склейки видео/звуковых дорожек MP4. При этом видео...

Не знаю с чего начать писать
Ребята! Доброго времени суток. В общем дали задание написать программу точней web-приложение...

не знаю с чего начать проект
Здравствуйте! Поставили задачу написать программу, да такую, чтобы могли пользоваться 6...

сайт музей - не знаю с чего начать
Помогите пожалуйста. Я мало знаю о веб-программирования, а тут такое задание: разработать систему...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
56
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как обучить нейросеть создания картинок на Python
bytestream 24.01.2025
В эпоху цифровых технологий искусственный интеллект становится неотъемлемой частью творческого процесса. Особое место в этой области занимает разработка и обучение нейронных сетей для создания. . .
Как обучить нейросеть генерации текста на Python
bytestream 24.01.2025
В современном мире искусственный интеллект и машинное обучение становятся неотъемлемой частью многих технологических решений. Одной из наиболее интересных и востребованных задач в этой области. . .
Машинное обучение на Python
bytestream 24.01.2025
Введение в машинное обучение на Python Машинное обучение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, которая позволяет компьютерным системам. . .
Как удалить вирус-майнер с компьютера
hw_wired 24.01.2025
Вирусы-майнеры стали одной из наиболее серьезных угроз для пользователей компьютеров. Эти вредоносные программы тайно используют вычислительные ресурсы зараженного устройства для добычи криптовалюты. . .
Что такое веб-сервер, для чего он нужен и как работает
bytestream 24.01.2025
В современную эпоху цифровых технологий веб-сервер является фундаментальным компонентом интернет-инфраструктуры, обеспечивающим функционирование множества онлайн-сервисов и веб-сайтов. Этот. . .
Как в цикле for перебрать все элементы в словаре в Python
bytestream 24.01.2025
Словари в Python представляют собой мощные структуры данных, которые позволяют хранить информацию в формате ключ-значение. Эта особенность делает их незаменимыми при работе с данными, где требуется. . .
Как отменить rebase в Git
hw_wired 24.01.2025
Git rebase представляет собой мощный инструмент для управления историей коммитов в системе контроля версий Git. Этот механизм позволяет разработчикам изменять последовательность, комбинировать или. . .
Как поменять цвет input placeholder с помощью CSS
bytestream 24.01.2025
В веб-разработке оформление элементов пользовательского интерфейса играет ключевую роль в создании привлекательного и интуитивно понятного дизайна. Особое внимание уделяется формам ввода данных, где. . .
Как перебрать все значения в перечислении (enum) в C#
bytestream 24.01.2025
Перечисление (enum) в языке программирования C# представляет собой специальный тип данных, который позволяет определить набор именованных констант. Этот мощный инструмент особенно полезен, когда. . .
Как обойтись без проверки на null, чтобы избежать NullPointerExce­ption в Java
bytestream 24.01.2025
NullPointerException (NPE) является одним из самых распространенных исключений в Java, создающих серьезные проблемы при разработке программного обеспечения. Данное исключение возникает при попытке. . .
Что лучше использовать в href ссылок в JavaScript: "#" или "javascript:voi­­d(0)­"
bytestream 24.01.2025
При разработке веб-приложений важную роль играет правильное использование HTML-ссылок в сочетании с JavaScript. Одним из ключевых аспектов является выбор корректного значения атрибута href для. . .
Как узнать индекс элемента списка по его значению в Python
hw_wired 24.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только манипулировать элементами списка, но и определять их точное местоположение. Индекс элемента представляет собой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru