一口にSNSっておっしゃいますが、
古くはモバゲーやmixi、TwitterやFacebook、LINE、Whatsapp、カカオトーク、話題?のMastodonとかいろいろあるわけです。
どういう仕様で動いてどういう機能を持っているシステムを想定しているか、
要件定義と言いますがとっても大事なところです。
これだけで本一冊書けちゃうくらいの膨大な話です。
で、classやnamespaceは
大規模開発できるスキルを身につける上では欠かせない要素だと思います。
システムを実現するのにどういう機能が必要か、
根を張り幹を伸ばして枝を付けて葉を茂らせてシステムが出来ます。
掲示板BBSくらいならプログラミング言語のテキストにも登場するくらいに
要件定義がシンプルでわかりやすく、組みやすいです。
SNSって例えば
・各人が投稿する文章を時系列で管理する。
・各人のフォロー(友だち)関係を管理する。
・写真や動画をアップロードして管理する。
とか複雑に様々な機能の詰め合わせになっているので、
十分に大規模です。
全部自分ひとりで組めるのであれば設計の仕方も
自分でコントロールできる方法ならなんでも良いです。
(ただし、問題発生しても自分で解決してください、他人には理解できませんから。)
大規模開発になると分業して作業を並行してやりますし、
他人が書いたコードをマージしてシステムのテストをする必要もあります。
テストのボリュームを削減するため(だけではないですが)にカプセル化を用いて、
局所ごとに仕様を全うしていることをユニットテストで確認しつつ、
システムに組み込んで適切に機能するかをテストします。
また、生産性を高めるフレームワーク(CakePHPだのLaravelだの)は
classやnamespaceの高度に集積した塊です。
実現する機能ごとにclassが細分化されており、
フレームワークを理解して使えば大幅にコーディング量を削減できます。
知らなくても使えなくてもシステムは組めますが、
他人と同じシステムの開発に取り組むことがあるなら
習得しておいて損はありません。
(ツッコミどころ満載かと思いますがお収めください。)