Burada hızlıca başlangıç yapabilmen için örneklerle güzel anlatılmış bir kaynak var bunu inceleyebilirsin;
https://www.guru99.com/object-oriented-programming.html
Bir kaç hızlı tavsiye verilebilir;
  • Gereksiz kod yazma. Yani aynı işlemi daha az kodla yapabiliyorsan az olanı kullan ve her zaman azaltmaya çalış.
  • Her işlem için ayrı sınıf yaz, Veritabanı bağlantıları ve işlemleri için ayrı, Kategoriler için ayrı Postlar için ayrı ve daha sonra bunları birbirleri ile iletişime sok. Sınıfları birbirinden ayırabildiğin kadar ayır ama gereksiz sınıfta yaratma. Örneğin post eklemek için bir sınıf post silmek için bir sınıfa gerek yok. Postla ilgili tüm işlemleri Posts sınıfında yap
  • Kavramlarını ingilizce yazmaya çalış. Bunun sana büyük faydaları olacak. Aynı zamanda doğru adlandırmaya dikkat et. Örneğin string1 gibi bir adlandırma yanlışken name daha doğrudur. Değişkenlerin kısa akılda kalıcı ve bağlamından koparılmadan adlandırılmalı. Camel case ($ornekDegiskenIsmi) ve snake case ($ornek_degisken_ismi) gibi isimlendirme kurallarını incele. Bunlar artık standartlaşmış kurallardır. http://kaanosman.github.io/coding-st...ng-convention/
  • Sınıflardaki fonksiyonlarda doğrudan html çıktısı dönmemeye çalış. Bunun yerine obje(object) ya da dizi(array) döndürmeye çalış. Bunu yaptığında temalarını değiştirmen de daha kolay olacaktır.
  • Tasarım desenlerini öğrenmeye çalış(design pattern)
Aklıma gelenler şimdilik bunlar. Atladığım bir çok şey mutlaka vardır. Bunları da kendin araştırarak öğrenebilirsin ancak.