W jaki sposób zrobić migrację?

0

Source: Na jaką nazwę zmienić klasę Match?

W skrócie:

  • Mam klasę Match
  • W PHP 8.0 match będzie słowem kluczowym, i moja libka leży.

Teraz pytanie, w jaki sposób dobrze zrobić migrację klasy? Takie mam opcje:

  • Zmienić nazwę od razu, i zmienić major wersji. (ewentualny deprecate na jedną wersje)
  • Dodać dwie redundantne wersje, Match oraz nową, tak żeby przez X wersji można było używać obu.
  • Zrobić deprecate Match, ale dodać nową dopiero kiedy PHP 8.0 wejdzie
  • Trzymać Match, i zmienić w ostatniej chwili.

Inne pomysły?

0

Nie znam sie na PHP, ale czesto sa wymagania biliotek do wersji jezyka :). Moze idzie ustawic zeby od wersji PHP 8.0 wymagalo twoje biblioteki ze zmieniona nazwa a ponizej by zostala stara?

0
Akihito napisał(a):

Nie znam sie na PHP, ale czesto sa wymagania biliotek do wersji jezyka :). Moze idzie ustawic zeby od wersji PHP 8.0 wymagalo twoje biblioteki ze zmieniona nazwa a ponizej by zostala stara?

Dodam taką opcje do ankiety.

0

Zagłosowałem na Zrobić jedną wersję dla 7.0, drugą dla 8.0 . Tylko nie wiem co przez to sam rozumiesz :P

Jeśli chodzi o to, że wersja z Match będzie miała numer np. 0.1, a wersja z cośtam będzie miała 1.0, to chyba niepotrzebny chaos, żeby rozbijać to na 2 osobne tagi.

  • 2 klasy niech istnieją w tym samym czasie dla PHP 7, może to być zrobione jeszcze przed wejściem PHP 8.
  • Match niech będzie deprecated i zostanie usunięte kiedyś tam w jakimś majorze. Ale nie zaraz gdy PHP 8 ujrzy światło dzienne^^ Tylko jakiś czas później.
  • W przypadku używania Match razem z PHP 8 user po prostu powinien dostać info, że powinien zmienić używaną klasę.
  • Jeśli ktoś cały czas używa PHP 7, to nie powinien tej możliwości zostać pozbawiony.
  • Klasę Match usunąłbym dopiero wtedy, gdyby PHP 8 był wymagany dla całej biblioteki. Albo po x czasu w jakimś majorze.

Ogólnie ja bym zrobił coś takiego (nie jest to ładne, ale chyba najlepsze dla usera końcowego):

class JakasKlasa extends BaseClass {}

if (PHP_VERSION < 8) {
   class Match extends BaseClass {}
}

class BaseClass {
 //tu cały kod z Match
}
0

możesz użyć jakiegoś synonimu, np suite albo po prostu matching. Albo inna propozycja

pattern("\d+")->matchString("Hello: 14")

1 użytkowników online, w tym zalogowanych: 0, gości: 1