mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-02 04:37:42 +08:00
5.5 KiB
5.5 KiB
Wsteczna kompatybilność
Absolutnie nie łamiemy wstecznej kompatybilności w wydaniach - łatach typu 2.x.y.Z i staramy się unikać koniecznych do wprowadzenia
zmian niekompatybilnych wstecznie w pomniejszych wydaniach typu 2.x.Y.
Zapoznaj się z sekcją Wersjonowanie Yii, aby dowiedzieć się więcej o numerowaniu wersji.
Metodyka użytkowania
Interfejsy
| Przypadek użycia | Łamie kompatybilność wsteczną? |
|---|---|
| Informacja o zwracanym typie w intefejsie | Tak |
| Wywołanie metody interfejsu | Tak |
| Implementacja interfejsu i ... | |
| Implementacja metody | Tak |
| Dodanie argumentu do implementowanej metody | Tak |
| Dodanie domyślnej wartości do argumentu | Tak |
Klasy
| Przypadek użycia | Łamie kompatybilność wsteczną? |
|---|---|
| Informacja o zwracanym typie w klasie | Tak |
| Tworzenie nowej instancji | Tak |
| Rozszerzenie klasy | Tak |
| Odwołanie do publicznej właściwości | Tak |
| Wywołanie publicznej metody | Tak |
| Rozszerzenie klasy i ... | |
| Odwołanie do chronionej właściwości | Tak |
| Wywołanie chronionej metody | Tak |
| Przeciążenie publicznej właściwości | Tak |
| Przeciążenie chronionej właściwości | Tak |
| Przeciążenie publicznej metody | Tak |
| Przeciążenie chronionej metody | Tak |
| Dodanie nowej właściwości | Nie |
| Dodanie nowej metody | Nie |
| Dodanie argumentu do przeciążonej metody | Tak |
| Dodanie domyślnej wartości do argumentu | Tak |
| Wywołanie prywatnej metody (przez Refleksję) | Nie |
| Odwołanie do prywatnej właściwości (przez Refleksję) | Nie |
Metodyka rozwoju
Zmiana interfejsów
| Przypadek użycia | Łamie kompatybilność wsteczną? |
|---|---|
| Usunięcie | Nie |
| Zmiana nazwy lub przestrzeni nazw | Nie |
| Dodanie interfejsu - rodzica | Tak, jeśli nie ma dodanych nowych metod |
| Usunięcie interfejsu - rodzica | Nie |
| Metody interfejsu | |
| Dodanie metody | Nie |
| Usunięcie metody | Nie |
| Zmiana nazwy | Nie |
| Przeniesienie do interfejsu - rodzica | Tak |
| Dodanie argumentu bez domyślnej wartości | Nie |
| Dodanie argumentu z domyślną wartością | Nie |
| Usunięcie argumentów | Tak (tylko ostatnich) |
| Dodanie domyślnej wartości do argumentu | Nie |
| Usunięcie domyślnej wartości z argumentu | Nie |
| Dodanie informacji o typie argumentu | Nie |
| Usunięcie informacji o typie argumentu | Nie |
| Zmiana typu argumentu | Nie |
| Zmiana typu zwracanej wartości | Nie |
| Stałe | |
| Dodanie stałej | Tak |
| Usunięcie stałej | Nie |
| Zmiana wartości stałej | Tak, z wyjątkiem obiektów, które będą serializowane. Obowiązkowa dokumentacja w UPGRADE.md. |
Klasy
| Przypadek użycia | Łamie kompatybilność wsteczną? |
|---|---|
| Usunięcie | Nie |
| Określenie jako final | Nie |
| Określenie jako abstract | Nie |
| Zmiana nazwy lub przestrzeni nazw | Nie |
| Zmiana klasy - rodzica | Tak, ale oryginalna klasa - rodzic musi pozostać przodkiem klasy. |
| Dodanie interfejsu | Tak |
| Usunięcie interfejsu | Nie |
| Publiczne właściwości | |
| Dodanie publicznej właściwości | Tak |
| Usunięcie publicznej właściwości | Nie |
| Ograniczenie widoczności | Nie |
| Przeniesienie do klasy - rodzica | Tak |
| Chronione właściwości | |
| Dodanie chronionej właściwości | Tak |
| Usunięcie chronionej właściwości | Nie |
| Ograniczenie widoczności | Nie |
| Przeniesienie do klasy - rodzica | Tak |
| Prywatne właściwości | |
| Dodanie prywatnej właściwości | Tak |
| Usunięcie prywatnej właściwości | Tak |
| Konstruktory | |
| Usunięcie konstruktora | Nie |
| Ograniczenie widoczności publicznego konstruktora | Nie |
| Ograniczenie widoczności chronionego konstruktora | Nie |
| Przeniesienie do klasy - rodzica | Tak |
| Publiczne metody | |
| Dodanie publicznej metody | Tak |
| Usunięcie publicznej metody | Nie |
| Zmiana nazwy | Nie |
| Ograniczenie widoczności | Nie |
| Przeniesienie do klasy - rodzica | Tak |
| Dodanie argumentu bez domyślnej wartości | Nie |
| Dodanie argumentu z domyślną wartością | Nie |
| Usunięcie argumentów | Tak, tylko ostatnich |
| Dodanie domyślnej wartości do argumentu | Nie |
| Usunięcie domyślnej wartości z argumentu | Nie |
| Dodanie informacji o typie argumentu | Nie |
| Usunięcie informacji o typie argumentu | Nie |
| Zmiana typu argumentu | Nie |
| Zmiana typu zwracanej wartości | Nie |
| Chronione metody | |
| Dodanie chronionej metody | Tak |
| Usunięcie chronionej metody | Nie |
| Zmiana nazwy | Nie |
| Ograniczenie widoczności | Nie |
| Przeniesienie do klasy - rodzica | Tak |
| Dodanie argumentu bez domyślnej wartości | Nie |
| Dodanie argumentu z domyślną wartością | Nie |
| Usunięcie argumentów | Tak, tylko ostatnich |
| Dodanie domyślnej wartości do argumentu | Nie |
| Usunięcie domyślnej wartości z argumentu | Nie |
| Dodanie informacji o typie argumentu | Nie |
| Usunięcie informacji o typie argumentu | Nie |
| Zmiana typu argumentu | Nie |
| Zmiana typu zwracanej wartości | Nie |
| Prywatne metody | |
| Dodanie prywatnej metody | Tak |
| Usunięcie prywatnej metody | Tak |
| Zmiana nazwy | Tak |
| Dodanie argumentu bez domyślnej wartości | Tak |
| Dodanie argumentu z domyślną wartością | Tak |
| Usunięcie argumentu | Tak |
| Dodanie domyślnej wartości do argumentu | Tak |
| Usunięcie domyślnej wartości z argumentu | Tak |
| Dodanie informacji o typie argumentu | Tak |
| Usunięcie informacji o typie argumentu | Tak |
| Zmiana typu argumentu | Tak |
| Zmiana typu zwracanej wartości | Tak |
| Statyczne metody | |
| Zmiana niestatycznej metody w statyczną | Nie |
| Zmiana statycznej metody w niestatyczną | Nie |
| Stałe | |
| Dodanie stałej | Tak |
| Usunięcie stałej | Nie |
| Zmiana wartości stałej | z wyjątkiem obiektów, które będą serializowane. Obowiązkowa dokumentacja w UPGRADE.md. |