@Fys, Framework demek aslında şudur: Bir iletişim formu düşünün. Bu formda e-mail, isim-soyisim, tel gibi alanlar vardır. Formu dolduranların e-mail alanını gerçek bir e-mail ile doldurmasını isteriz ya da isim-soyisim alanını maximum 65 karakter olmasını isteriz. Bunlar için denetleme fonksiyonları yazarız. Gerçek bir e-mail veryene kişiye de uyarı veririz. Bu sayede filtrelenmiş ve istediğimiz formatta bir veri almış olur. Buraya kadar herşey tamam ama her site yapışımızda bu fonksiyonları her seferinde yazarsak zaman-maliyet ilişkisinden dolayı pek de karlı durumda olmayız. Bu yüzden bunun önüne geçmek her projede çalışabilecek hazır fonksiyonlar ya da sınıflar yaratırız. Yani kodu bir kere yazarız ama iletişim formuna ihtiyaç duyacağımız bütün projelerde neredeyse hiç zaman harcamadan kullanmış oluruz. İşte bu hazır sınıflara ya da fonksiyonlara kaba tabirle framework denir. Framework felsefesi temelde uzun vadede zamandan büyük tasaruflar sağlamaktır.
Gelelim framework'lerin ne zaman kullanılacağı sorusuna. Bunun için programlama dilinden ziyade iyi bir algoritma öğrenmektir. Yani sorunları pratik yollardan çözebilme becerisi. Ya da çözüme giden en kısa yolu bulmak vs. Algoritma mantığı öğrenildikten sonra geriye framework yazmak ya da var olanı kullanmak için design patterns dediğimiz yapıları öğrenmekdir. Design patternler bütün diller için nereydese aynıdır. Kaba tabirle design pattern yapıları tasarım desenleri olarak dilimizde tercüme edilir. Bunları bilmeden bir dilde ustalaşmak çok şey kazandırmaz. Soracağınız bütün soruların açıklaması bu yazıda mevcut.
Ayrıca konyla pek alakası yok ama madem yeni başlıyorsunuz bu işlere, php yerine python, go, ruby gibi programlama dilleriyle başlamanız ilerisi için çok faydalı bir tercih olacaktıır. Çünkü bu diller daha güçlü, öğrenilmesi daha kolay ve tamamen OOP'dirler.