Je pro vás důležitá podpora PHP 5.2 i v příští verzi Nette 2.1?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8232
+
0
-

Nette velmi dlouho udržuje podporu pro PHP 5.2, jehož vývoj byl sice před více než dvěma lety ukončen, ale dosud jej najdeme na takřka polovině hostingů.

Podpora této verze dnes stojí málo úsilí, protože existuje odladěný konvertor z verze PHP 5.3, nicméně by bylo zbytečné ji udržovat, kdyby ji nikdo nepotřeboval.

Anketní otázka tedy zní: vyžadujete ještě podporu PHP 5.2 i v nadcházející verzi Nette 2.1? Hlasujte http://miniaplikace.blueboard.cz/hlasovat-l4o9

Jan Tvrdík
Nette guru | 2595
+
0
-

@David Grudl: Osobně bych Nette 2.1 ještě určitě vydal s podporou PHP 5.2 a o zrušení podpory bych uvažoval od Nette 2.2. Zároveň pak můžeme zvážit, zda nezačít používat některé věci z PHP 5.4 / 5.5 a neudělat konvertor do 5.3 :)

David Grudl
Nette Core | 8232
+
0
-

Taky bych pro 2.1 zachoval podporu PHP 5.2. S tím, že verze 2.2 by následovala brzy a řešila jen separaci některých částí frameworku – ale to už bez podpory PHP 5.2.

Nad opouštěním PHP 5.3 je zatím příliš brzy uvažovat.

Jan Tvrdík
Nette guru | 2595
+
0
-

@David Grudl: To zní rozumně.

srigi
Nette Blogger | 558
+
0
-

David Grudl napsal(a):

Taky bych pro 2.1 zachoval podporu PHP 5.2. S tím, že verze 2.2…

Nad opouštěním PHP 5.3 je zatím příliš brzy uvažovat.

+1

Ot@s
Backer | 476
+
0
-

Já osobně bych verzi PHP 5.2 od verze Nette 2.1 nepodporoval. Možná by to svojí troškou do mlýna přispělo k rychlejšímu úbytku hostingu na PHP 5.2. Když si vzpomenu, kolikrát jsem se nad tímto navztekal, nechci o hostingu s PHP 5.2 ani slyšet…

Milo
Nette Core | 1283
+
0
-

@DavidGrudl: Podpora pro PHP 5.2 se mi zdá sporná. Když si převedu současný dev + testy + Tester + pohackuju pár změn v testeru a spustím:

php53 -c php53.ini ..../tester.php -p php52 -c php52.ini

spousta testů failuje. Nejzávažnější jsou asi nové magic methods, protože v ObjectMixin:

# Podpora až od PHP 5.3
ReflectionProperty::setAccessible()
ReflectionClass::inNamespace()
ReflectionClass::getNamespaceName()

poslední dvě se dají snadno fixnout, ale setAccessible() ne a testy (zejména DI) jsou pak plné chyb typu:
ReflectionException: Cannot access non-public member PhpClassType::extends jedině asi změnit viditelnost pomocí 5.2 komentářů. Po změně na public ale v testech chybují namespaces v anotacích při typechecking, což už jsem nefixoval takže nevím jak se to chová dál.

Další chyby v testech:

JSON_ERROR_DEPTH # neexistuje
FatalErrorException: Cannot re-assign $this
Wrong parameters for Exception
Strict Standards: mktime(): You should be using the time() function instead
Fatal error: Cannot use object of type SplObjectStorage
Error: Undefined property: DatabaseRow::$on_delete
MemberAccessException: Call to undefined method PropertyReflection::setAccessible()
MemberAccessException: Cannot read an undeclared column "book_id" (i jiné)

Je však možné, že jsou to z Tvého pohledu všechno snadno odstranitelné chyby. Některé budou určitě false-positive, protože je test napsán bez pomyšlení na PHP5.2.

Existuje nějaká statistika počtu stažení verzí?

MartinitCZ
Člen | 580
+
0
-

Chtělo by to více odvahy a v Nette 2.1 odříznout (zaříznout) PHP 5.2 ;)

petr.pavel
Člen | 535
+
0
-

Pro mě není důležitá verze, ale absence jmenných prostorů. Pro moje projekty – a tipl bych si, že pro většinu projektů, na které je Nette nasazováno, jsou prefixy lepší řešení než jmenné prostory.

MartinitCZ
Člen | 580
+
0
-

@**petr.pavel**: Nespletl si se? Přide mi totiž divné, že by se programátorům libílo více prefixování, než namespaces.

Jan Tvrdík
Nette guru | 2595
+
0
-

@martinit: Předpokládám, že se nespletl. Prefixy vyžadují méně psaní.

petr.pavel
Člen | 535
+
0
-

@Jan Tvrdík: Přesně tak. Další argumenty zde.

Editoval petr.pavel (14. 5. 2013 13:00)

Jan Tvrdík
Nette guru | 2595
+
0
-

@petr.pavel: Na to ti nicméně stačí (pokud se nemýlím) jeden soubor se spoustou volání class_alias a IDE, které to podporuje.

David Grudl
Nette Core | 8232
+
0
-

Diskuse o jmenných prostorech sem nepatří, díky za pochopení.

David Grudl
Nette Core | 8232
+
0
-

Milo napsal(a):
Když si převedu současný dev + testy + Tester + pohackuju pár změn v testeru a spustím … spousta testů failuje.

Je to z velké míry skutečně tím, že testy nejsou psány s ohledem na PHP 5.2.

Nejzávažnější jsou asi nové magic methods, protože v ObjectMixin…

Opravil jsem.

Podpora pro PHP 5.2 se mi zdá sporná.

S tím zcela souhlasím, skutečně nejde o plnohodnotnou podporu, vůle opravovat chyby v kompatibilitě s PHP 5.2 je značně menší, než třeba před rokem, kdy Nette nad PHP 5.2 běželo úplně spolehlivě.

V současných dev verzích sice v pohodě spustím sandbox i všechny příklady, ale nechci nad tím držet záruku. Když tak nad tím přemýšlím, možná bude důstojné opustit PHP 5.2 s verzí Nette 2.0.11, která je velmi kvalitní a není důvod k tvorbě nových aplikací nad starým PHP nepoužít.

ViPEr*CZ*
Člen | 817
+
0
-

To zní rozumě… k tomu bych se přiklonil taktéž a PHP 5.2 opustil.

Majkl578
Moderator | 1364
+
0
-

Pro 2.1 bez podpory, v 2.0.x ponechat – jelikož je to stable verze a uživatele by to odstřihlo od (např. security) bugů.

enumag
Člen | 2118
+
0
-

Osobně neznám nikoho kdo by používal Nette 2.0 na PHP 5.2. Ve 2.0.x je určitě žádoucí podporu zachovat, ale pro 2.1.x to považuji za zbytečnou brzdu, kterou by téměř nikdo neocenil.

Editoval enumag (14. 5. 2013 16:24)

David Grudl
Nette Core | 8232
+
0
-

enumag napsal(a):

Osobně neznám nikoho kdo by používal Nette 2.0 na PHP 5.2. Ve 2.0.x je určitě žádoucí podporu zachovat, ale pro 2.1.x to považuji za zbytečnou brzdu, kterou by téměř nikdo neocenil.

To je velmi zajímavý a hodnotný komentář. Koho zajímá, že těch 7 % lidí neznáš?

Milo
Nette Core | 1283
+
0
-

David Grudl napsal(a):
…možná bude důstojné opustit PHP 5.2 s verzí Nette 2.0.11, která je velmi kvalitní

Souhlasím.

Ikdyž fórum nesleduju nonstop, nevšiml jsem si, že by někdo se svým problémem uvedl verzi PHP 5.2. Za sebe mohu říci, že pokud bude Nette držet podporu verze PHP se stable Debianem, který existoval před rokem, budu maximálně spokojen.

Možná namísto verze pro PHP 5.2 generovat soubor s class_aliases(), aby si i odpůrci use klauzule přišli na své :)

EDIT: Ikdyž teď mi došlo, že lidé občas uvedou prefixed/non-prefixed verzi.

Editoval Milo (14. 5. 2013 17:05)

hrach
Člen | 1838
+
0
-

Faktem zustava, ze casto se zamenuje podpora php 5.2 s prefix a non-prefix verzemi.

David Grudl
Nette Core | 8232
+
0
-

Po hodně dlouhé úvaze jsem nakonec podporu PHP 5.2 a balíčků bez namespaces odstřihl a Nette Framework 2.1 tak už bude jen pro PHP 5.3 – 5.5.