Ben OO PHP bir sosyal ağ tipi proje üzerinde çalışıyorum ve ben varolan bir çerçeve kullanmak istemiyorum. Bu projeyi yapmanın ana nokta beni daha fazla şeyler hakkında öğrenmelerine yardımcı olmaktır.
Bu soru bağımlılık enjeksiyon hakkında daha fazladır.
Diyelim ki bu sınıflar var diyelim:
core class - some core methods to do stuff in the app
config class - loads site config stuff
database class - connects to mysql and does all database related stuff
logger class - used to log errors and debug info
captcha class - for captcha on forms
session class - initiates a session start and adds, removes, gets session variables to use in the app
cache class - similar to session class but for caches items (files cache, memcache, apc cache. I may even add my session stuff to this class someday since all these cache's can use the same type of methods)
Yukarıdaki tüm sınıflar en olası (muhtemelen daha sonra eklenecektir biraz daha derslere cevapsız) benim app her sayfa yük kullanılacaktır
Artık diğer birçok sınıfa enjekte edilmesi gerekir Yukarıdaki sınıflara ek olarak, çok çok daha fazla sınıf olacaktır. Ben böyle şeyler olacak modüller olarak adlandırılan bir secion olacak ...
account class - creates new users, authenticates users, logs users in and out of the app, update user settings, and much more.
users class - shows users profiles, shows users online, new users, all stuff to show users of the site
forums class - will be for the forums section
blogs class - for the blogs section
photos class - all photo related stuff
comments class - handles comments for photos and profiles
There will be many more of these type of classes for different sections of the site.
This second set of classes listed above for sections will most likely require most of the classes from the first set to be injected into them.
Yani sınıfların ilk setinden nesneleri depolamak için bir kayıt defteri kullanmak gerekir ve sadece sınıfların ikinci sette tüm sınıf nesneleri içine kayıt enjekte?
Ya ben bunları yüklemek için kurucu kullanmalıyım? Bu örnekte diğer sınıflara enjekte 7 nesneler gibi olacağını, bir sürü gibi görünüyor. Ben bu konuda yanlış mıyım?
---EDIT---
I am aware of the singleton pattern but I don't think it is my best option here
---EDIT 2---
As some have mention, needing to pass in as much as 7 objects does seem like a LOT and that is why I am looking for suggestions. Luckily for me this project is at the beginning stages so now is the time for changes to the structure.
Bir örnek benim forumları bölümünde bir sınıf olacaktır. Forumları sınıf oturumu veriler, olası önbelleğe alınan veriler, yapılandırmaları nesne, veritabanı nesnesine erişim gerekir. Ben bu konuda yanlış şekilde gidiyorum?