Как сделать социальную сеть с дизайном MVC на PHP?

Я создаю сайт социальной сети, похожий на Facebook. Я использую PHP, javascript, jquery, MySQL, Memcache и APC. Раньше я создавал социальные сети с помощью PHP, и они были очень сложными и большими приложениями (пользовательская система, форумы, блоги, профили, виртуальная валюта, хранилище валюты, обмен сообщениями и многие другие функции / разделы / модули, но все они были выполнены в процедурном стиле кодирования. , Я провел последний год, исследуя объектно-ориентированный объектно-ориентированный объект PHP, и теперь я гораздо лучше понимаю объектно-ориентированный объектно-ориентированный объект в PHP (большое спасибо Stackoverflow). Раньше я вообще ничего не знал о классах и объектах или о том, как их использовать или создавать.

Итак, возвращаясь к вопросу, я собираюсь создать свой собственный фреймворк или, лучше сказать, «Библиотеку» кода для этого проекта, а затем я могу использовать его в будущем, если это необходимо. Я не хочу использовать существующий фреймворк, я бы предпочел создать свой собственный, чтобы я действительно мог узнать, как работают метод и объект eac и т. Д.

Я склоняюсь к использованию шаблона MVC или чего-то очень похожего. У меня будет то, что я назову модулями. примеры модулей; Пользователи или учетная запись, почта / обмен сообщениями, форумы, блоги и т. Д. Каждый модуль в значительной степени будет добавлен, и он будет работать с моим другим кодом. Таким образом, у каждого модуля будет своя собственная папка, и он будет в значительной степени автономным. "модули / форумы /" могут иметь контроллеры + модели + представления .... "модули / форумы / контроллеры /" "модули / форумы / модели /" "модули / форумы / представления /"

На данный момент это моя основная ИДЕЯ, она может и, вероятно, изменит некоторые, когда все будет сказано и сделано.

Я уже создал класс маршрутизации, который будет принимать в соответствии с картой массива URI. Пример результата, если я перешел на
www.domain.com/forums/viewtopic/id-242342/page-23

Тогда у меня был бы массив, соответствующий регулярному выражению, который дал бы мне что-то вроде этого ...

$uri['module'] = 'forums';  
$uri['method'] = 'viewtopic';  
$uri['id'] = '242342';  
$uri['paging'] = '23'; 

Затем я могу использовать этот массив для создания или вызова соответствующего материала для этой страницы.

Я думаю об использовании простого класса шаблона / представления для включения файла представления, в котором будут смешаны html и PHP, но без реального журнала, кроме if / else, foreach, переменных и т. Д.

Где мой настоящий вопрос или где я не понимаю полностью ... Этот шаблон типа MVC, кажется, отлично подходит для простых страниц, например блога, у меня может быть MVC для отображения сообщения в блоге или списка блогов, но более сложной страницы как если бы вы видели на таком сайте, как facebook, страница блога, может быть больше, чем просто материал для блога, на ней может быть рекламный блок, блок друзей и т. д. и другие вещи на странице, это плохая идея использовать MVC и views / шаблоны для такого сайта? Я заметил все сайты социальных сетей, включая facebook, ни один из них, похоже, не использует эту систему, все они имеют отдельные страницы для создания страницы, например, почта / сообщения будут на messages.php, а не все, маршрутизируемое через один файл.

Я надеюсь, что этот вопрос / сообщение имеет смысл для кого-то, и кто-то может дать некоторое представление, спасибо за ваше время и любые предложения / советы / советы!


person JasonDavis    schedule 09.03.2011    source источник
comment
После того, как вы закончите этот проект, бетча доллар вы пойдете с готовым фреймворком;)   -  person Byron Whitlock    schedule 10.03.2011
comment
@Byron Whitlock: Я сомневаюсь в этом, это была моя цель / мечта - построить свой собственный в течение нескольких лет, а затем улучшать его снова и снова, насколько я могу, ничто другое не является для меня таким хорошим чувством достижения. Однако, если бы я переключился на существующий, я бы, по крайней мере, скорее всего, знал бы, как его лучше использовать.   -  person JasonDavis    schedule 10.03.2011


Ответы (1)


Я бы использовал существующую структуру, однако, если вы настаиваете на создании своей собственной, взгляните на этот статья о том, как написать свой собственный PHP MVC framework. Это очень информативно и показывает вам, как преодолеть некоторые проблемы, связанные с такой задачей.

Что касается мощности и возможностей MVC как шаблона проектирования для сложных веб-страниц, Stackoverflow использует ASP.NET MVC 3 как WebFramework (ссылка). Достаточно.

person SamG    schedule 10.03.2011