Начиная большой проект PHP.Нужен ли ООП или это просто предпочтение? - PullRequest
2 голосов
/ 19 февраля 2012

Я начал изучать PHP некоторое время назад.Я полагаю, что в этом я достаточно хорошо.Я хочу написать систему управления контентом, как проект для себя, как бы долго это ни занимало.Точнее говоря, простая игровая CMS, где пользователи могут входить в систему, публиковать статистику клана, размещать сообщения на форуме, иметь профили пользователей, предстоящие матчи и т. Д., Различные другие модули, которые вы можете установить или написать самостоятельно.Это было сделано раньше, но я чувствую, что многому научился бы, пройдя с этим.

Для опытных программистов:

Что требуется для реализации такого проекта?
Любойпредпочтение фреймворка?
Нужен ли ООП?
Есть ли определенные способы сделать такой масштабный проект?

Я слышал о различных фреймворках, таких как CakePHP, codeigniter и Zend, но я не уверен, что мне с этим делать.

Спасибо!

Ответы [ 7 ]

8 голосов
/ 19 февраля 2012

Самый важный шаг в любом проекте - ПЛАНИРОВАНИЕ. Планируйте все, что можете, базу данных (таблицы, столбцы, отношения), процесс и т. Д.

Ничего не нужно, но ООП рекомендуется, потому что:

  1. Вы не потеряетесь в своем собственном коде
  2. Легко редактировать и добавлять (рефлексивно для изменений)

Cakephp, codeigniter - это фреймворки, и они сэкономят вам много времени на разработку. Вместо написания классов для каждого типа моделей, которые у вас есть (посты, участники ...) вы запускаете простую команду, и она создаст базовое приложение для ваших нужд.

3 голосов
/ 19 февраля 2012

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

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

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

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

2 голосов
/ 28 февраля 2012

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

При этом определенно бывают моменты, когда ОО является скорее помехой, чем благом. Что вам нужно сделать, так это сесть и реально визуализировать ваш проект в целом. Когда вы смотрите на общую картину, вы видите вещи как инкапсулированные объекты? Будет ли у вас один блок кода, который вы будете использовать много раз, чтобы описать вещи, которые похожи, но немного отличаются? Или ваш проект немного более линейный, где вы можете увидеть, как большинство ваших скриптов работают в традиционном формате «сверху вниз»?

2 голосов
/ 19 февраля 2012

Итак, цель ООП - сделать программирование более похожим на реальный.В реальном мире вы имеете дело с объектами.Ваша работа - это объект класса Job, вы - объект класса Employee, который расширяет класс Person, вы возвращаетесь домой к объекту класса Apartment, который содержится в объекте класса Building, который содержится в объекте класса Block.

Моя точка зрения заключается в том, что цель ООП состоит в том, чтобы облегчить вам жизнь, вы можете обозначить сообщение на форуме как объект, как вы можете для пользователейи что "нет.Вся структура данных, которую вы можете создать в ООП, гораздо сложнее и проще для понимания, чем процедурный PHP.

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


Что касается других ваших вопросов:

  • Что такоеТребуется предпринять такой проект? - Планирование и многое из этого.Планируйте заранее все, что вам может понадобиться (с точки зрения базы данных, существующих проектов / классов, файлов, страниц).Также планируйте расширение, добавление модулей и таблиц в будущем.
  • Любые предпочтения фреймворка? - Я не большой поклонник фреймворков, но предлагаю вам изучить концепциюMVC и единой точки входа.
2 голосов
/ 19 февраля 2012

ООП в конечном итоге является вопросом предпочтения, но есть несколько заметных преимуществ. Самое первое, что приходит на ум, - это безопасность. Параметризованные запросы с mysqli, предназначенные для работы в режиме ООП, транзакции, если таковые будут. Если вы хотите CMS, то вам также, вероятно, придется отображать довольно много данных из базы данных, что потребует разбивки на страницы. Вместо того, чтобы переписывать «процедурный» алгоритм разбиения на страницы, вы можете подойти ко всему с ООП с помощью одного класса. В конечном счете, это все еще вопрос предпочтения, но, насколько я знаю, у oop много преимуществ в реальных приложениях. Удачи в вашем проекте!

1 голос
/ 19 февраля 2012

Сначала вы должны найти какой-нибудь хороший фреймворк - работать с самого начала довольно сложно.Сначала вы должны создать некую блок-схему необходимых частей вашего приложения и соответствующей базы данных / таблиц.

ООП рекомендуется, потому что это может сэкономить вам много времени.

Один хороший вид фреймворказдесь: http://code.google.com/p/phpstartapp/

1 голос
/ 19 февраля 2012

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

и для большого проекта ООП настоятельно рекомендуется для простоты без ООП, ваш код будет очень злым и очень трудным для поддержки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...