Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

Dean Edwards a jeho IE7

Geniální udělátko o kterém se u nás kupodivu moc neví. Některým webdesignérům prý natolik usnadnilo život, že začali fetovat a krást, aby zase nějaké problémy měli. Takže opatrně s tím!

Už to budou dva roky, co Dean Edwards začal psát záplatu pro Internet Explorer, která umožní webdesignerům používat pokročilé CSS vlastnosti. A nejen je. Nazval ji vyloženě nešťastně IE7, nejspíš nevěřil ve vznik další verze Microsoftího prohlížeče.

…pokračování continue

clock 19. 1. 2006 pencil HTML & CSS comments Komentáře: 33


Statistika zastoupení PHP 5.x

Babylon, zmatení jazyků, resp. jejich verzí

Zajímalo by vás, jak jsou rozšířeny pětkové verze PHP? Váháte, zda ve svém open-source projektu stále udržovat kompatibilitu s PHP 4, nebo ji konečně pustit k vodě? Tak to vás asi překvapím.

Statistiky zastoupení PHP 5.x jsem hledal už dávno, leč marně. Až dnes mi ta zajímavá čísla prozradil francouzský server Nexen.net (viz statistiky za listopad). Měření provádí pravidelně každý měsíc na vzorku téměř 8 milionů webů.

Výsledky za listopad 2005

  • PHP najdete na 37% serverů (tedy je tu obrovský trh, který lze komerčně využít)
  • 1. místo: PHP 4.3.10 (30 %)
  • 2. místo: PHP 4.3.11 (24 %)
  • PHP 5.x jen 4.9 %
  • což je dokonce méně, než zastoupení PHP 4.1.x nebo 4.2.x

Nenadávejte však na hostéry. Ona čísla neříkají, kolik procent hostingů PHP5 nabízí, ale kolik zákazníků jej používá. V reakci na dřívější článek Dávám PHP4 rok, maximálně dva mi napsal Stanislav Petr z HOSTING90:

Představte si firmu xy, vyrábějící třeba kolíčky na prádlo… Oni mají www stránky, které běží nad nějakým redakčním systémem, který jim někdo někdy napsal. A teď jim zkuste říct, že budou muset znovu investovat několik desítek tisíc korun do přepisu, jenom proto, že php5 je teďka in… Takže tady platí jedno krásné pravidlo – na něco, co funguje, se nesahá.

Naprosto s ním souhlasím. Elegantní východisko je tedy provozovat obě verze a dát klientům možnost výběru. Kdo bude mít ale chuť vytvářet prostor pro verzi třetí, PHP 6?

Co z toho plyne? Například to, že Texy! bude dále podporovat obě verze PHP. V praxi to řeším tak, že kód píši v pětce s využitím většiny jejich vlastností a čtverkovou variantu (de)generuji pomocí převodníku. Prostě zabíjí dvě mouchy jednou ranou :-)

Jo, abych nezapomněl, pěkný nový rok!

clock 30. 12. 2005 pencil PHP comments Komentáře: 16


PHP 5 -> 4 converter

I have wrote tool for automatic convert PHP5 scripts to PHP4. It converts new PHP 5 object model features and language constructions into PHP 4 equivalents. This tool may be useful, if you need transfer PHP5 scripts to run under previous version. It is not designated to provides missing functionality (try PHP_Compat), just missing syntax.

Supported are these constructions:

Try it here

clock 28. 11. 2005 pencil PHP comments


PHP 5 -> 4 converter

Vytvořil jsem nástroj pro automatický převod skriptů z PHP5 do PHP4. Slouží pro převod nových jazykových konstrukcí OOP. Nahrazuje je ekvivalentními konstrukcemi, které fungují v obou verzích.

Podporovány jsou tyto konstrukce:

Overloading se ponechává beze změny. Cílem převodníku také není nahrazovat chybějící funkce, od toho je tu třeba PEAR PHP_Compat.

Konvertor si můžete naživo vyzkoušet. Pokud narazíte na nějaké chybky, svěřte se v komentářích.

clock 28. 11. 2005 pencil PHP comments Komentáře: 20


Zlo si říká Database Abstraction Layer

Database Abstraction Layer je komponenta, která zpomalí aplikaci, zvýší její hardwarové nároky a zkomplikuje programátorům přístup k databázi. To vše výměnou za iluzi, že by aplikace mohla fungovat i pod jiným databázovým strojem, než pro který byla původně vyvíjena.

Toliko definice DAL (na Wikipedii mají jinší). A teď několik praktických ukázek.

ADOdb

Nejslavnější PéHáPéčková DAL si říká ADOdb. Po přilinkování cca 400kB kódu k vaší aplikaci můžete dát sbohem nudným SQL příkazům, jako je

UPDATE `table` SET lastname='Jones'
WHERE lastname LIKE 'Sm%'

a nahradit je vzrušujícím zápisem

$record["lastname"] = "Jones";
$conn->AutoExecute(
    $conn->nameQuote.'table'.$conn->nameQuote,
    $record, 'UPDATE', "lastname LIKE 'Sm%'");

To není má zběsilá fantazie, to cituji jeden svěží příklad z dokumentace. Zvládnout ADOdb tedy není nic složitého, stačí se jen naučit novou syntaxi a odměnou bude tento přehledný zápis, kde snad ani nelze udělat chybičku. Pravda, zjištění, že uvedené hned z několika důvodů nebude fungovat třeba v MSSQL, nás dvakrát nepotěší, ale hlavně že je mír.

PEAR DB

Tak teď jsem trošku na rozpacích – není náhodou tou nejslavnější DAL pro PHP právě tato?

PEAR DB je od své kolegyně o poznání štíhlejší (140kB), nicméně pro svůj chod vyžaduje ještě knihovnu PEAR. Čím nás za svou přízeň odmění? Především šikovným zapouzdřením (nemyšleno ironicky, protentokrát ne) všech důležitých funkcí pro práci s databází a několika užitečnými drobnostmi navíc.

Zajímavé je například vkládání parametrů do SQL příkazů:

$db->query('INSERT INTO numbers
  VALUES (?, ?, ?)', array(1, 'one', 'en'));

Leč při větším počtu parametrů je tato technika spíše kontraproduktivní. Shrnuto podtrženo: PEAR DB je zvládnutá rutina bez geniálních nápadů.

PDO

Dámy a pánové, o své místo na slunci se uchází novinka jménem PDO, nedílná součást PHP od verze 5.1. Funkčně se velice podobá PEAR DB, avšak obejde se bez linkování stovek kilobajtů (pomalého) kódu. Ale ptám se, je důvod k jásotu?

  1. zajistí alespoň základní přenositelnost mezi databázovými stroji?
  2. zjednoduší programátorům zápis SQL příkazů?

Obávám se, že nikoliv. Nebo snad znáte způsob, kterak snadno zapsat SQL příkaz, jenž by se pro MySQL resp. MS Access reprodukoval takto:

INSERT INTO `table` (`date`, `text`) VALUES ('2000-12-02', 'say: \'hello\'');

INSERT INTO [table] ([date], [text]) VALUES (#12/2/2000#, 'say: ''hello''');

Pokračování včetně jednoho řešení!

clock 4. 10. 2005 pencil PHP comments Komentáře: 27


phpFashion © 2004, 2012 David Grudlo webu

Pokud není uvedeno jinak, podléhá obsah těchto stránek licenci Creative Commons BY-NC-ND Creative Commons License BY-NC-ND

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.