Arkadaşlar selam, uzun zamandır PHP ile uğraşıyorum ve artık küçük scriptlerden sıkılıp gerçekten büyük çaplı projelere girmek istiyorum. Ama işin içine girince şunu fark ettim: her şeyi tek bir dosyaya ya da rastgele klasörlere atmak, bir yerden sonra tam bir kabusa dönüşüyor. Özellikle ekip arkadaşlarıyla çalışırken, "Bu fonksiyon nerede?" sorusu sürekli sorulmaya başlıyor. Ben de araştırdım, katmanlı mimari (layered architecture) dedikleri bir yapı var, ama bunu PHP'de nasıl sağlıklı bir şekilde uygulayabiliriz merak ediyorum.
Genelde MVC (Model-View-Controller) duyuyoruz ama bence büyük projeler için MVC tek başına yeterli değil. Mesela iş katmanı (service layer) ve veri erişim katmanı (repository pattern) gibi kavramlar var. Kendi çapımda birkaç deneme yaptım, mesela Controller'a direkt SQL sorgusu yazmak yerine bir Repository sınıfı oluşturdum, ama sonra bu katmanları birbirine bağlamak için Dependency Injection işine girdim, işler biraz karıştı. Siz bu konuda ne kullanıyorsunuz? Özellikle Laravel dışında, saf PHP ile veya Symfony gibi framework'lerle böyle bir yapı kuran var mı? Katmanlar arası geçişlerde ne gibi problemler yaşadınız?
Bir de şu var: Proje büyüdükçe bu katmanların sayısı da artıyor. Örneğin Domain katmanı, Application katmanı, Infrastructure katmanı gibi DDD (Domain-Driven Design) kavramlarına giriyor olay. Ama bu kadar soyutlama, küçük bir ekibin işini zorlaştırmaz mı? Sonuçta her katmana bir sınıf, bir interface, bir de mapper eklemek, başlangıçta gereksiz bir şişkinlik gibi geliyor. Deneyimli arkadaşlar, bu katmanları hangi proje büyüklüğünden sonra önermeye başlıyorsunuz? Ya da "Ben şu kadar kullanıcılı sistemi 3 katmanla çözdüm, sorun yaşamadım" diyen var mı? Yorumlarınızı merakla bekliyorum.
Genelde MVC (Model-View-Controller) duyuyoruz ama bence büyük projeler için MVC tek başına yeterli değil. Mesela iş katmanı (service layer) ve veri erişim katmanı (repository pattern) gibi kavramlar var. Kendi çapımda birkaç deneme yaptım, mesela Controller'a direkt SQL sorgusu yazmak yerine bir Repository sınıfı oluşturdum, ama sonra bu katmanları birbirine bağlamak için Dependency Injection işine girdim, işler biraz karıştı. Siz bu konuda ne kullanıyorsunuz? Özellikle Laravel dışında, saf PHP ile veya Symfony gibi framework'lerle böyle bir yapı kuran var mı? Katmanlar arası geçişlerde ne gibi problemler yaşadınız?
Bir de şu var: Proje büyüdükçe bu katmanların sayısı da artıyor. Örneğin Domain katmanı, Application katmanı, Infrastructure katmanı gibi DDD (Domain-Driven Design) kavramlarına giriyor olay. Ama bu kadar soyutlama, küçük bir ekibin işini zorlaştırmaz mı? Sonuçta her katmana bir sınıf, bir interface, bir de mapper eklemek, başlangıçta gereksiz bir şişkinlik gibi geliyor. Deneyimli arkadaşlar, bu katmanları hangi proje büyüklüğünden sonra önermeye başlıyorsunuz? Ya da "Ben şu kadar kullanıcılı sistemi 3 katmanla çözdüm, sorun yaşamadım" diyen var mı? Yorumlarınızı merakla bekliyorum.