2012-02-19 1 views
2

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

Для опытных кодеров:

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

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

Спасибо!

+3

OOP - это стиль синтаксиса, а не зависимость от функциональности. Вы можете написать объектно-ориентированный код в Assembler. Но дело не в этом. – mario

ответ

8

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

Ничто не является необходимым, но ООП рекомендуется, потому что:

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

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

+0

Спасибо. Я просто прочитал несколько статей о CakePHP и CodeIgniter, и кажется, что CI - это путь (по крайней мере для меня) из-за его обширной документации и встроенных функций. По-видимому, это быстрее, но это тривиально. – eveo

+0

Учитывая характер вопроса, я бы не согласился с тем, что самый важный шаг - это планирование. Начало работы - это ключ. – Cerad

+1

Начало работы не является частью процесса, так как это его начало (я не просто разработчик, я тоже философ):] –

2

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

+0

Спасибо, и это правда, у меня были проблемы с разбиением на страницы в прошлом. Я могу просто использовать функцию, но нет? – eveo

+0

Рамки, подобные Codeigniter, встроены в «Библиотеки», чтобы помочь с разбиением на страницы. Я предпочитаю CI прежде всего из-за безопасности и простоты использования, он также заставит ООП. Какая помощь в расширении и поддержке в вашем проекте. Ваш PHP и HTML разделяются, что упрощает поддержку вашего кода. –

+0

Хорошо, я дам codeigniter взгляд. – eveo

1

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

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

+0

Спасибо. Время изучать ООП. Я заглянул в нее, но все это прямо на моей голове, и я попытаюсь снова. – eveo

3

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

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

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

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

1

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

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

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

2

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

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

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


Как для других вопросов:

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

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

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

Смежные вопросы