tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Podpora pro PHP 5.1 a další vývoj

před 10 lety

David Grudl
Nette Core | 6806

Bleskový průzkum odhalil, že dibi pod PHP 5.1 používá cca 13 % uživatelů. Sám k metodice moc důvěru nemám, nicméně číslo celkem reflektuje zastoupení PHP 5.2 versus 5.1, takže není překvapivé.

Co z toho vyplývá? Že podporu pro PHP 5.1 lze klidně odstřihnout. Pro těch 13 % to není nijak špatná zpráva, současná verze je stabilní a dobře funkční. A nepředpokládám, že by se na PHP 5.1 rozjížděly nové projekty, které by měly využívat budoucích vlastností dibi.

Proč PHP 5.1 nepodporovat? Důvodem je třída DateTime, která se objevila až v PHP 5.2. Současná verze dibi ji umí používat volitelně, příští verze dibi by ji používala standardně. Z dibi by se mohly odstranit (samozřejmě se zachováním zpětné kompatibility) obezličky jako:

  • dibi::datetime() a dibi::date() → lze nahradit za new DateTime()
  • IDibiVariable a DibiVariable (využívá je někdo?)

a také datum by se mohlo v DibiRow vracet jako objekt DateTime namísto současného čísla UNIX timestamp (opět konfigurovatelně).

před 10 lety

deric
Člen | 93

php 5.1 je hodně nepovedená verze, jsem pro odstřihnutí. I v skoro rok starém výzkumu Verze php v ČR – únor 2009

je vidět klesající tendence php 5.1, doufám, že zastoupení bude teď ještě nižší.

Co získáme přechodem na DateTime?

Bylo by možné využít time zone?

$dateTime = new DateTime("now", new DateTimeZone('GMT'));
echo $dateTime->format("Y-m-d H:i:s");
$dateTimeZone = new DateTimeZone('Europe/Prague');
$dateTime->setTimezone($dateTimeZone);

echo $dateTime->format("Y-m-d H:i:s");

jenom takový nápad… chtělo by to vymyslet jak by to šlo jednoduše zabudovat do syntaxe formátování datumu…

před 10 lety

hurvajs
Člen | 86

S tim souhlasim. Podpora PHP 5.1 mi prijde zbytecna. Podobne jako Vy, nemam duveru ve statistiky, ale myslim ze drtiva vetsina lidi je na PHP 5.2/PHP 5.3.

před 10 lety

David Grudl
Nette Core | 6806

Timezone využít lze – možná jsem se nevyjádřil přesně, dibi už cca tři měsíce Datetime používá – ale jen pod PHP 5.2

před 10 lety

David Grudl
Nette Core | 6806

Zkusil jsem vypustit testovací verzi s výše zmíněnými úpravami – můžete prosím vyzkoušet, zda vše funguje?

před 9 lety

viktorc
Člen | 21

Možno sa ozývam „po funuse“, ale prihováram sa za to, aby IDibiVariable (spolu s funkcionalitou v DibiTranslator::formatValue) zostalo. Umožňuje to v SQL dotazoch pracovať s vlastnými objektami.

Keďže používam PHP 5.2, kde nie je dostatočná podpora pre DateTime, DateInterval, … mám vlastné Date* objekty a vďaka IDibiVariable ich môžem v dibi používať rovnako pohodlne, ako DateTime.

Predpokladám, že sa to hodí aj iným a aj pri iných vlastných objektoch (IP adresa, cidr, …) a vzhľadom k tomu, že to je to len pár riadkov, mohlo by to tam zostať.

A trochu nad rámec… – videl som v https://forum.dibiphp.com/…e-a-bc-break že si pre DateTime vyriešil aj opačný smer (pretypovanie výsledkov SQL dotazu do objektov). Možno by sa aj pri tomto dala využiť IDibiVariable (a nejaká funkcia fromSql), aby táto funkcionalita nebola obmedzená len na DateTime, ale mohli sme ju využiť aj pre vlastné objekty.

před 8 lety

David Grudl
Nette Core | 6806

Ok, přidal jsem IDibiVariable s metodou toSql()

před 8 lety

viktorc
Člen | 21

Diky.