Я создаю сайт социальной сети, похожий на Facebook. Я использую PHP, Javascript, JQuery, MySQL, Memcache и APC. Ранее я создавал социальные сети с помощью PHP, и они были очень сложными и большими приложениями (пользовательская система, форумы, блоги, профили, виртуальная валюта, хранилище для валюты, обмен сообщениями и множество других функций / разделов / модулей, но все они выполнены в коде процедурного стиля). В прошлом году я провел исследование объектно-ориентированного ООП, ориентированного на PHP, и теперь я гораздо лучше понимаю ОО в PHP (большое спасибо Stackoverflow). Раньше я вообще ничего не знал о классах и объектах или о том, как их использовать или создавать.
Хорошо, так что вернемся к вопросу, я собираюсь построить свою собственную структуру или, точнее, «библиотеку» кода для этого проекта, и затем я смогу использовать ее в будущем, если потребуется. Я не хочу использовать существующий фреймворк, я бы предпочел построить свой собственный, чтобы я мог по-настоящему узнать, как работают eac-метод и объект и т. Д.
Я склоняюсь к использованию шаблона MVC или чего-то очень похожего. У меня будет то, что я буду называть Модулями. примерные модули; Пользователи или учетная запись, почта / обмен сообщениями, форумы, блоги и т. Д. Каждый модуль будет в значительной степени добавлен и будет работать с другим моим кодом. Таким образом, каждый модуль будет иметь свою собственную папку и будет в значительной степени автономным. "модули / форумы /" могут иметь контроллеры + модели + представления .... "модули / форумы / контроллеры /" "модули / форумы / модели /" "модули / форумы / представления /"
Это моя основная ИДЕЯ, она может и, возможно, изменит некоторые, когда все будет сказано и сделано.
Я уже создал класс Routing, который будет использовать карту массива URI для сопоставления. Пример результата, если я пошел на
www.domain.com / форум / viewtopic / ID-242342 / страница-23
Тогда я хотел бы, чтобы массив соответствовал регулярному выражению, которое давало бы мне что-то вроде этого ...
$uri['module'] = 'forums';
$uri['method'] = 'viewtopic';
$uri['id'] = '242342';
$uri['paging'] = '23';
Затем я могу использовать этот массив для создания или вызова соответствующего материала для этой страницы.
Я подумываю об использовании простого класса шаблона / представления для включения файла представления, в котором будут смешаны html и PHP, но без реальной логики, кроме if / else, foreach, переменных и т. Д.
Где мой настоящий вопрос или где я не совсем понимаю ... Этот шаблон типа MVC, кажется, отлично работает для простых страниц, например для блога, я мог бы иметь MVC, чтобы показать сообщение в блоге или список блогов, но более сложная страница, подобная той, которую вы видели на таком сайте, как Facebook, страница блога, может быть больше, чем просто блог, на ней может быть блок рекламы, блок друзей и т. д. и другой материал на странице, плохая идея использовать MVC а просмотры / шаблоны для такого сайта? Я заметил, что все сайты социальных сетей, включая Facebook, похоже, что ни один из них не использует эту систему, все они имеют отдельные страницы для построения страницы, например, почта / сообщения будут находиться в messages.php вместо всего, что перенаправляется через 1 файл.
Я надеюсь, что этот вопрос / сообщение кому-то пригодится, и кто-то может предложить некоторое понимание, спасибо за ваше время и любые предложения / советы / советы!