Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%)
|
Jak stworzyć ActiveRecord bez udostępniania połączenia z bazą danych za pomocą statycznej metody innej klasy?
Przykład wykorzystania AR:
Aby wykonać taki kod, muszę w klasie Post zrobić dziedziczenie po klasie, np. ActiveRecord, i w tej klasie, a konkretnie w konstruktorze, pobrać połączenie z bazą danych, z jakiejś statycznej metody, która ją udostępnia. Czyli na przykład klasy APP i metody getDatabaseConnection():
Ale czy jest możliwość stworzenia obiektów ActiveRecord bez pobierania połączenia z DB za pomocą innej metody statycznej? Robi się tutaj bezpośrednie powiązanie, nie tylko metody, ale i nazwy klasy, a to totalnie nie współgra z zasadami SOLID. A może zamiast tworzyć obiekt normalnie (new Post), robić to za pomocą innej metody, na przykład klasy ActiveRecordFactory, i w niej, po utworzeniu obiektu Post, wstrzyknąć obiekt bazy danych i zwrócić obiekt Post? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Użycie odwołań statycznych z reguły uniemożliwia trzymanie się reguł SOLID, nie znam Yii ale stawiam na to, że nie jest ono pod tym względem wyjątkiem.
@by_ikar: Nie róby z tego kolejnego bezsensownego wątku w stylu FW A vs B vs C vs D. PS. Na stronie każdego FW znajdziesz informację o tym jaki to on nie jest szybki, profesjonalny, wygodny, elastyczny i w ogóle nie wiadomo po co istnieją inne rozwiązania. (IMG:style_emoticons/default/wink.gif) Ten post edytował Crozin 29.07.2014, 19:34:50 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%)
|
Użycie odwołań statycznych z reguły uniemożliwia trzymanie się reguł SOLID, nie znam Yii ale stawiam na to, że nie jest ono pod tym względem wyjątkiem. @by_ikar: Nie róby z tego kolejnego bezsensownego wątku w stylu FW A vs B vs C vs D. PS. Na stronie każdego FW znajdziesz informację o tym jaki to on nie jest szybki, profesjonalny, wygodny, elastyczny i w ogóle nie wiadomo po co istnieją inne rozwiązania. (IMG:style_emoticons/default/wink.gif) Nie mam zamiaru tworzyć wątku FW vs FW. Chciałem zwrócić uwagę że one wszystkie są opisywane jako MVC, super lekkie, super szybkie etc. A prawda jest taka że z nich wszystkich na prawdę szybki jest phalcon, po mimo że niewiele w nim zrobiłem, bo tylko przebrnąłem przez quick tour, to no on musi być szybszy dlatego że jego klasy są modułami php i do czasu kiedy inne będą działały jako zwykłe pliki php, nie będą w stanie go przebić w szybkości.. Ale fajnie by było jakby można było instalować frameworki czy jakieś liby tak jak w node, a one same działały by na podobnej zasadzie jak moduł php.. No mogłoby to dość znacznie zmienić podejście do php (IMG:style_emoticons/default/biggrin.gif) Yii ma podobnie zrobioną logikę co laravel, klasy same w sobie są nie statyczne (nie wszystkie metody, raczej większość), ale istnieją inne klasy (fasady w laravel) które umożliwiają dostęp do tych klas poprzez __callStatic odwołują się do instancji tych klas z kontenera IoC. Sam aktualnie nie wiem co o tym myśleć w przypadku laravela, no ale póki co zobaczymy.. |
|
|
|
adbacz ActiveRecord bez metod statycznych 29.07.2014, 10:22:55
Crozin 1. ActiveRecord sam w sobie jest sprzeczny z zasad... 29.07.2014, 10:59:45
adbacz Staram się pisać aplikację, która nie używa metod ... 29.07.2014, 11:05:23
Crozin CytatStaram się pisać aplikację, która nie używa m... 29.07.2014, 11:21:41
adbacz Kurcze, nie chciałbym używać Doctrine ;/ Szybkość ... 29.07.2014, 11:42:10
Crozin CytatKurcze, nie chciałbym używać Doctrine ;/ Szyb... 29.07.2014, 11:58:32
adbacz Jeżeli zależy Ci na szybkości aplikacji zrezygnuj ... 29.07.2014, 12:06:59
Crozin CytatCo masz na myśli pisząc "Postaw na jakoś... 29.07.2014, 12:13:42
adbacz Dzięki Ci wielkie za pomoc. Poukładałem sobie to j... 29.07.2014, 12:27:00
by_ikar Taa te wszystkie FW są super szybkie i elastyczne.... 29.07.2014, 12:52:44 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 17:51 |