Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vývoj PHP 6

Sotva vyšlo PHP 5.1 a v kuchyni už se delší dobu vaří další velká verze. Skoro všichni významní vývojáři jádra PHP se 11. a 12. listopadu 2005 sešli na konferenci v Paříži a probrali, jakým směrem se má ubírat vývoj PHP 6. Derick Rethans z toho vytvořil precizní závěry a já zase nabízím jejich souhrn.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Unicode

Asi nejméně kontroverzní jsou změny v Unicode, které má být hlavní novinkou PHP 6 a o kterém už jsem stručně psal.

  • To, zda se má Unicode interně používat, nepůjde určit při každém požadavku, ale pouze v php.ini (1.1).
  • Kromě stávajících kódování bude možné určit také kódování názvů souborů, protože různé systémy používají různá kódování (1.5).
  • Novinkou pro mě je, že přestože interní kódování PHP 6 bude UTF-16, tak jeden znak bude moci zabírat dva nebo čtyři bajty (budou podporovány i znaky s kódem nad 65535). Kvůli tomu by byly operace pro přístup k jednotlivým znakům pomalé a bude pravděpodobně nutné implementovat nějakou cache (1.7). Když už to tak je, kladu si otázku, proč vlastně interní kódování nebude UTF-8, které pravděpodobně bude převažovat na vstupu a výstupu – ušetřilo by se tím mnoho zbytečných konverzí.
  • Pro chyby při převodu kódování bude vytvořena nová úroveň chyb (1.10).

Odstraněné vlastnosti

Spoustě lidí spadne kámen ze srdce a spoustě lidí se ztíží přechod na novou verzi odstraněním některých vlastností.

Zachované obraty

Některé sporné obraty naproti tomu budou zachovány:

  • Vynucení reference při volání funkce vyvolá E_STRICT místo E_NOTICE, var zůstane aliasem pro public a varování zmizí a přiřazení new referencí zůstane E_STRICT (2.4).
  • Direktiva open_basedir přežije (2.7).
  • Funkce dl bude přesunuta do SAPI, ve kterých dává smysl (momentálně CLI) (2.8).
  • Třídy nadále bude možné definovat podmíněně (2.10) a zůstanou i staré konstruktory – podivné chování PHP 4, kdy se metoda rodiče stala konstruktorem potomka, pokud měla stejné jméno, už není ani v PHP 5 (2.12).
  • U funkcí se nadále nebude rozlišovat velikost písmen, ale použití nesprávné velikosti pravděpodobně vyvolá E_STRICT (2.13).
  • Zápis do nedeklarované vlastnosti objektu nadále nevyvolá žádnou chybu (5.7) a zápis prvku do neinicializovaného pole zmíněn není, zůstane tedy spolu s bezpečnostními riziky (zmírněnými zakázáním register_globals) a těžko odhalitelnými chybami (posílenými definitivním nerozdělením operátorů pro přístup ke znakům řetězce a prvkům pole) bez jakéhokoliv varování.
  • Zahájení PHP bloku nadále bude možné pomocí krátkého <?, syntaxe <% naopak bude spolu s direktivou asp_tags odstraněna, <?php= přidáno nebude a blok bude možné ukončit pouze značkou odpovídající té, kterou byl zahájen (6.7). Z toho mi vyplývá, že syntaxe <script language="php"> zůstane zachována, přestože to není explicitně uvedeno.

Přidané novinky

Do jazyka přibudou i některé často diskutované novinky:

  • Vznikne typ int64, typ int zůstane platformově závislý (4.1), ale jestli se na tento typ bude převádět i při překročení velikosti čísla, zatím nevím.
  • Příkaz goto, o kterém se také vášnivě debatovalo, se do jazyka dostane, ale vzhledem k zásadním omezením (nebude možné skákat dovnitř bloků kódu a bude možné skákat pouze směrem vpřed) se pro něj použije syntaxe break label (4.2). Myslím, že to je vhodný kompromis použitelný pro ošetření chyb a těžko zneužitelný k používání ve stylu Basicu.
  • vášnivě probírané konstrukce ifsetor ještě definitivní rozhodnutí nepadlo, jisté je zatím pouze to, že u ternárního operátoru bude možné vynechat prostřední část (4.3).
  • V konstrukci foreach bude možné místo hodnoty používat funkci list (4.4). Párkrát by se mi tato konstrukce bývala hodila, dokonce čas od času zkouším, jestli v jazyce náhodou už není, vzhledem k jednořádkové náhradě to ale samozřejmě není nic zásadního.
  • Uvnitř operátoru [] bude možné používat složitější výrazy stejně jako u funkcí substr a array_slice (4.5). U řetězců proti tomu nic nemám, ale už se „těším“ na zmatky, které vyplynou z toho, že [] u pole bude moci vrátit kromě jednoho prvku také pole obsahující jeho část.
  • Za zásadní omyl považuji změnu výchozí hodnoty parametru funkce microtime (4.10). Připomínám, že před PHP 5 se tato funkce volala bez parametru a vracela řetězec. V PHP 5 byl přidán nepovinný parametr zajišťující, že funkce vrátí desetinné číslo s výchozí hodnotou způsobující původní chování. V PHP 6 se má výchozí hodnota tohoto parametru změnit tak, aby funkce bez parametru vracela desetinné číslo. Vývojáři to obhajují tím, že nejčastější použití funkce vracející řetězec ho stejně převádí na číslo a tento kód zůstane funkční (s jednou E_NOTICE navíc). Co ale ostatní použití funkce? Co když chce někdo třeba jenom desetinnou část a volá funkci bez parametru? Jednoduchá odpověď – v PHP 6 kód bez jakékoliv výstrahy přestane fungovat. Navíc mi není úplně jasné, jaký přínos tato změna přinese – o něco hezčí budoucí kód za cenu znefunkčnění mnoha skriptů myslím nestojí.
  • Konstrukce self:: se vždy vztahuje ke třídě, ve které je použita. Problém to může být u potomků, kdy by se často hodilo, aby se vztahovala ke třídě, přes kterou jsme se k self v rodiči dostali. Z toho důvodu bude zavedena nová konstrukce static:: (nebo možná this::), která tuto funkčnost zajistí (5.4).
  • Jmenné prostory se do PHP nakonec pravděpodobně dostanou, ale jejich přesná podoba ještě bude dořešena (5.6).
  • Statické volání nestatické metody vyvolá místo E_STRICT rovnou E_ERROR (5.10).
  • Z projektu Hardened PHP se do PHP převezmou některé opravy. Asi nejvýznamnější změnou bude vznik nové direktivy allow_url_inclu­de, která bude ovlivňovat používání vzdálených souborů při vkládání PHP kódu (6.2). Pokud nicméně zůstane zachována možnost používat ostatní wrappery, bezpečnostní riziko se zmírní jen částečně.
  • Chyby produkované jednotlivými rozšířeními budou zrevidovány a ve většině případů nahrazeny za E_WARNING nebo novou chybu E_RECOVERABLE_ER­ROR. Z té bude možné se vzpamatovat v případě, že bude ošetřena (6.4).
  • Úroveň chyb E_STRICT se stane součástí konstanty E_ALL, ale výchozí nastavení zůstane E_ALL & ~E_NOTICE, takže chyby E_STRICT ve výchozím nastavení zobrazovány budou, ale E_NOTICE ne (6.6). Zvláštní.

Zamítnuté novinky

Další novinky se naopak do jazyka nedostanou:

  • Nebude umožněn průchod polem bez přiřazování hodnot do proměnné (4.7).
  • Na své si nepřijdou ani příznivci pojmenovaných parametrů funkcí (4.8).
  • Pořadí parametrů jednotlivých funkcí bude nadále začátečníkům činit problémy (4.9). Vývojáři jsou sice toho názoru, že to je u interních funkcí v podstatě konzistentní, ale nevzali v úvahu funkce pro práci s regulárními výrazy, které mají pořadí parametrů obráceně. Kromě toho funkce str_replace také přijímá prohledávaný řetězec až jako třetí parametr a ne jako první, jak je to zvykem v databázích a jak to má i strpos. I tak jsem rád, že k žádné změně nedojde, přeházení parametrů by způsobilo nedozírné zmatky a to i v případě, že by bylo doprovázeno např. přejmenováním funkcí na  str_*.
  • Při použití objektu v kontextu řetězce se volá metoda __toString. Pro použití v kontextu jiných primitivních typů nové magické metody nevzniknou a nadále se vždy bude volat tato (5.5).
  • Type-hinting je nyní možné používat u parametrů, nově bude zaveden i u návratových hodnot funkcí, naopak nebude zaveden u vlastností. Syntaxe bude ještě zvolena, osobně se mi nejvíc líbí function &ObjectName funcname() (5.8). Napovídání primitivních typů zmíněno není, takže v jazyce ani nadále s největší pravděpodobností nebude.
  • Nevznikne ani delegování metod rozhraní (5.12).
  • Interní PHP funkce ani nadále nebudou vyvolávat výjimky, protože překlad jednotlivých úrovní chyb lze na výjimky snadno zajistit již od jejich uvedení (6.5).

Závěr

Většinu změn je určitě možné hodnotit pozitivně. Unicode je nesporným přínosem, byť bude nutné chování jednotlivých kódování stejně jako u databází nejprve pečlivě nastudovat. Pozitivně lze hodnotit i odstranění konfiguračních direktiv, které ve většině případů hlavně u začínajících programátorů způsobovaly víc zmatku než užitku. Některé změny mi ale připadají poněkud samoúčelné ve snaze jazyk vyčistit, ovšem za cenu pomalého a bolestného přechodu. Je s podivem, že při pohledu na pomalý přechod na PHP 5 (způsobený ale hlavně důležitou změnou objektového modelu) se vývojáři chtějí pouštět do takových kousků jako je zbytečná změna výchozí hodnoty parametru u podružné funkce nebo odstranění čtyři roky doporučované syntaxe na úkor té, která byla označena jako zastaralá. Snaha o vyčištění jazyka se tak podle mého názoru ubírá ne zcela správným směrem – řada programátorů by spíše uvítala upozornění na potenciálně nebezpečné chování (jako je přiřazování prvků do neinicializovaného pole nebo do nedeklarovaných vlastností) nebo větší jednoznačnost jazyka (rozlišením operátorů pro přístup ke znakům řetězce a prvkům pole), zkrátka jeho lepší předvídatelnost. Místo toho ale např. dojde k tomu, že spolu se sjednocením parsování parametrů funkcí (všimněte si, že v současných verzích např. wordwrap("abc", "b"); informaci o špatném typu parametrů vypíše, ale substr("abc", "b"); ne) bude chybová hláška o nepřevoditelnosti na správný typ potlačena.

Cesta do vydání PHP 6 je nicméně ještě dlouhá a za tu dobu se ještě může leccos změnit.

Anketa

Jaká syntaxe je nejlepší?

       

Jakub Vrána

Jakub Vrána

Autor se živí programováním v PHP, podílí se na jeho oficiální dokumentaci, vyučuje ho na MFF UK a vede odborná školení. Poznámky si zapisuje na weblog PHP triky.

Školení: Django framework: Struktura a základy vývoje (nejen) webových aplikací

Django je vyspělý webový framework napsaný v jazyce Python, který podporuje extrémně rychlý vývoj společně s dodržováním principů dobrého návrhu. Snaží se co nejvíce automatizovat a drží se principu DRY (z anglického Don't Repeat Yourself — neopakuj se).

  • Instalace potřebného softwaru
  • Programování v Pythonu: příkazy, funkce, datové typy, moduly, objekty, výjimky
  • Struktura aplikace v Djangu
  • Typické záležitosti webových aplikací: Napojení na databázi, zpracování vstupu od uživatele, přihlášení či generování dynamického obsahu.
  • Implementace principu MVC: modely, pohledy (views) a šablony
  • Seznámení s užitečnými komponenty frameworku Django
  • Šikovné praktiky

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,87

Přehled názorů

no nevim ...
Bilbo 5. 12. 2005 01:29
Nový
└ 
Re: no nevim ...
Ondrej Ivanič 5. 12. 2005 15:14
Nový
 
├ 
Re: no nevim ...
Bilbo 5. 12. 2005 15:20
Nový
 
│
└ 
Re: no nevim ...
Ondrej Ivanič 5. 12. 2005 15:22
Nový
 
│
 
└ 
Re: no nevim ...
Bilbo 5. 12. 2005 15:49
Nový
 
└ 
Re: no nevim ...
Jirka Kosek 6. 12. 2005 00:05
Nový
 
 
└ 
Re: no nevim ...
Ondrej Ivanič 6. 12. 2005 00:20
Nový
 
 
 
└ 
Re: no nevim ...
Jirka Kosek 6. 12. 2005 00:33
Nový
 
 
 
 
└ 
Re: no nevim ...
Ondrej Ivanič 6. 12. 2005 01:01
Nový
Python
Petr Mach 5. 12. 2005 02:04
Nový
└ 
Re: Python
HKMaly 5. 12. 2005 22:55
Nový
 
├ 
Re: Python
Bilbo 6. 12. 2005 04:24
Nový
 
└ 
Re: Python
Petr Mach 7. 12. 2005 12:23
Nový
 
 
└ 
Re: Python
Bilbo 7. 12. 2005 20:59
Nový
 
 
 
├ 
Re: Python
dave 8. 12. 2005 06:26
Nový
 
 
 
└ 
Re: Python
A 2. 1. 2007 16:16
Nový
Tak tedy jupí :-(
Zorg 5. 12. 2005 03:05
Nový
└ 
Re: Tak tedy jupí :-(
Ondrej Ivanič 5. 12. 2005 15:20
Nový
nový jazyk
pytel 5. 12. 2005 08:21
Nový
└ 
Re: nový jazyk
anonymní uživatel 11. 12. 2005 22:47
Nový
UTF-16
Pavel Tišnovský 5. 12. 2005 09:22
Nový
├ 
Re: UTF-16
Michal Kubeček 5. 12. 2005 22:53
Nový
│
└ 
Re: UTF-16
Pavel Tišnovský 5. 12. 2005 23:33
Nový
└ 
Re: UTF-16
Jirka Kosek 6. 12. 2005 00:14
Nový
 
├ 
Re: UTF-16
Bilbo 6. 12. 2005 04:29
Nový
 
│
└ 
Re: UTF-16
Jirka Kosek 6. 12. 2005 09:08
Nový
 
│
 
└ 
Re: UTF-16
anonymní uživatel 6. 12. 2005 11:32
Nový
 
│
 
 
└ 
Re: UTF-16
Jirka Kosek 6. 12. 2005 11:53
Nový
 
│
 
 
 
└ 
Re: UTF-16
anonymní uživatel 7. 12. 2005 12:24
Nový
 
└ 
Re: UTF-16
HKMaly 16. 12. 2005 19:20
Nový
Utf8
Trained.Monkey 5. 12. 2005 10:12
Nový
├ 
Re: Utf8
Jakub Vrána 5. 12. 2005 11:16
Nový
│
└ 
Re: Utf8
Bilbo 5. 12. 2005 15:19
Nový
│
 
└ 
Re: Utf8
Jakub Vrána 5. 12. 2005 15:30
Nový
├ 
Re: Utf8
Pavel Tišnovský 5. 12. 2005 13:52
Nový
│
└ 
Re: Utf8
Bilbo 5. 12. 2005 15:16
Nový
│
 
└ 
Re: Utf8
Pavel Tišnovský 5. 12. 2005 16:06
Nový
├ 
Re: Utf8
Michal Kubeček 5. 12. 2005 22:57
Nový
│
└ 
Re: Utf8
Pavel Tišnovský 5. 12. 2005 23:38
Nový
│
 
└ 
Re: Utf8
Bilbo 6. 12. 2005 04:32
Nový
└ 
Re: Utf8
Petr 6. 12. 2005 02:03
Nový
 
├ 
Re: Utf8
Michal Kubeček 10. 12. 2005 14:57
Nový
 
└ 
Re: Utf8
Michal Kubeček 10. 12. 2005 14:59
Nový
for a break
vasil 5. 12. 2005 10:14
Nový
├ 
Re: for a break
Daniel 5. 12. 2005 10:16
Nový
│
└ 
Re: for a break
salko 5. 12. 2005 10:34
Nový
│
 
└ 
Re: for a break
Jakub Vrána 5. 12. 2005 11:11
Nový
│
 
 
└ 
Re: for a break
Bilbo 5. 12. 2005 15:03
Nový
│
 
 
 
└ 
Re: for a break
dgx 6. 12. 2005 00:50
Nový
└ 
Re: for a break
Mickey 5. 12. 2005 10:30
Nový
 
├ 
Re: for a break
KarolL 5. 12. 2005 10:56
Nový
 
└ 
Re: for a break
deda.jabko 5. 12. 2005 12:11
Nový
 
 
├ 
Re: for a break
Jakub Hegenbart 5. 12. 2005 12:55
Nový
 
 
├ 
Re: for a break
rezna 5. 12. 2005 13:05
Nový
 
 
│
└ 
Re: for a break
deda.jabko 6. 12. 2005 00:03
Nový
 
 
└ 
Re: for a break
Pavel Tišnovský 5. 12. 2005 23:42
Nový
PHP
Miloslav Ponkrác 5. 12. 2005 12:43
Nový
└ 
Re: PHP
jára 5. 12. 2005 14:31
Nový
 
└ 
Re: PHP
Miloslav Ponkrác 5. 12. 2005 17:10
Nový
beznadejna patlanice
Elite 5. 12. 2005 13:52
Nový
utf
newb 5. 12. 2005 15:28
Nový
└ 
Re: utf
anonymní uživatel 5. 12. 2005 17:59
Nový
takhle budu jednat s phpckarem co mi prijde na pohovor
Elite 5. 12. 2005 18:34
Nový
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Jakub Hegenbart 5. 12. 2005 18:40
Nový
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
rezna 5. 12. 2005 18:56
Nový
│
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Olomoučan 5. 12. 2005 19:15
Nový
│
│
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Elite 5. 12. 2005 23:34
Nový
│
│
│
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
dgx 6. 12. 2005 00:58
Nový
│
│
│
│
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Jakub Hegenbart 6. 12. 2005 03:13
Nový
│
│
│
│
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
anonymní uživatel 6. 12. 2005 11:59
Nový
│
│
│
│
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
anonymní uživatel 6. 12. 2005 11:57
Nový
│
│
│
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Kero 6. 12. 2005 16:35
Nový
│
│
│
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
.oOo. 6. 12. 2005 08:33
Nový
│
│
│
│
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Elite 6. 12. 2005 10:22
Nový
│
│
│
│
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
.oOo. 6. 12. 2005 12:04
Nový
│
│
│
│
│
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
.oOo. - ten skutečný 6. 12. 2005 12:52
Nový
│
│
│
│
│
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Elite 6. 12. 2005 13:09
Nový
│
│
│
│
│
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Elite 6. 12. 2005 13:11
Nový
│
│
│
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
.oOo. 9. 12. 2005 14:58
Nový
│
│
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
A 2. 1. 2007 16:39
Nový
│
│
│
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
anonymní uživatel 2. 3. 2007 17:39
Nový
│
│
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
deda.jabko 6. 12. 2005 00:24
Nový
│
│
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
VUTAK rules UPOL suckz 6. 12. 2005 00:31
Nový
│
│
│
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Olomoučan 6. 12. 2005 08:11
Nový
│
│
│
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
anonymní uživatel 6. 12. 2005 10:25
Nový
│
│
│
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Olomoučan 6. 12. 2005 13:07
Nový
│
│
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Igor Bujna 6. 12. 2005 11:40
Nový
│
│
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Igor Bujna 6. 12. 2005 11:41
Nový
│
│
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Olomoučan 6. 12. 2005 11:46
Nový
│
│
│
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Olomoučan --- ten pravý 7. 12. 2005 13:06
Nový
│
│
│
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Elite 7. 12. 2005 14:48
Nový
│
│
│
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
tak a dost 8. 12. 2005 09:48
Nový
│
│
│
 
 
 
 
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
tak a dost 8. 12. 2005 15:00
Nový
│
│
│
 
 
 
 
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
tak a dost 8. 12. 2005 20:43
Nový
│
│
│
 
 
 
 
│
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
fak a kost 8. 12. 2005 23:19
Nový
│
│
│
 
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
HKMaly 16. 12. 2005 19:28
Nový
│
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Elite Profesor 8. 12. 2005 17:26
Nový
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
javista 14. 12. 2005 00:56
Nový
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
anonymní uživatel 6. 12. 2005 10:07
Nový
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Ondrej Ivanič 6. 12. 2005 10:30
Nový
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Lispak 6. 12. 2005 10:40
Nový
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Pavel Tisnovsky 6. 12. 2005 10:59
Nový
 
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Jakub Hegenbart 7. 12. 2005 13:15
Nový
 
 
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Pavel Tišnovský 7. 12. 2005 14:20
Nový
 
 
 
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
anonymní uživatel 7. 12. 2005 14:25
Nový
 
 
 
 
 
 
 
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Jakub Hegenbart 7. 12. 2005 14:28
Nový
 
 
 
 
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
JP 7. 12. 2005 16:30
Nový
 
 
 
 
 
 
 
 
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Jakub Hegenbart 7. 12. 2005 16:37
Nový
 
 
 
 
 
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Jakub Hegenbart 7. 12. 2005 16:40
Nový
 
 
 
 
 
 
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
anonymní uživatel 7. 12. 2005 17:44
Nový
 
 
 
 
 
 
 
 
 
 
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Jakub Hegenbart 7. 12. 2005 18:23
Nový
 
 
 
 
 
 
 
 
 
 
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Pavel Křívánek 7. 12. 2005 20:50
Nový
 
 
 
 
 
 
 
 
 
 
│
 
├ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Jakub Hegenbart 7. 12. 2005 20:55
Nový
 
 
 
 
 
 
 
 
 
 
│
 
│
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Pavel Křívánek 7. 12. 2005 22:16
Nový
 
 
 
 
 
 
 
 
 
 
│
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
Pavel Tišnovský 9. 12. 2005 08:20
Nový
 
 
 
 
 
 
 
 
 
 
└ 
Re: takhle budu jednat s phpckarem co mi prijde na pohovor
tak a dost 7. 12. 2005 22:38
Nový
GOTO
Jakub Hegenbart 5. 12. 2005 18:50
Nový
├ 
Re: GOTO
jarek 5. 12. 2005 22:04
Nový
│
├ 
Re: GOTO
jarek 5. 12. 2005 22:05
Nový
│
│
└ 
Re: GOTO
Jakub Hegenbart 6. 12. 2005 00:11
Nový
│
├ 
Re: GOTO
Fčelda 5. 12. 2005 23:18
Nový
│
└ 
Re: GOTO
Bilbo 6. 12. 2005 04:40
Nový
│
 
├ 
Re: GOTO
míša kulička 6. 12. 2005 08:25
Nový
│
 
└ 
Re: GOTO
Pavel Tišnovský 7. 12. 2005 09:52
Nový
│
 
 
├ 
Re: GOTO
Bilbo 7. 12. 2005 21:02
Nový
│
 
 
└ 
Re: GOTO
anonymní uživatel 2. 3. 2007 07:59
Nový
└ 
Re: GOTO
Jakub Vrána 6. 12. 2005 09:52
Nový
 
└ 
Re: GOTO
Jakub Hegenbart 6. 12. 2005 15:09
Nový
 
 
└ 
Re: GOTO
Pavel Tišnovský 7. 12. 2005 09:55
Nový
 
 
 
├ 
Re: GOTO
Bilbo 7. 12. 2005 20:53
Nový
 
 
 
│
└ 
Re: GOTO
Jakub Hegenbart 7. 12. 2005 21:04
Nový
 
 
 
└ 
Re: GOTO
HKMaly 16. 12. 2005 19:56
Nový
 
 
 
 
└ 
Re: GOTO
Pavel Tišnovský 19. 12. 2005 08:34
Nový
 
 
 
 
 
└ 
Re: GOTO
HKMaly 19. 12. 2005 18:47
Nový
 
 
 
 
 
 
├ 
Re: GOTO
Jakub Hegenbart 20. 12. 2005 01:50
Nový
 
 
 
 
 
 
│
└ 
Re: GOTO
HKMaly 20. 12. 2005 07:21
Nový
 
 
 
 
 
 
│
 
├ 
Re: GOTO
Jakub Hegenbart 20. 12. 2005 11:56
Nový
 
 
 
 
 
 
│
 
│
└ 
Re: GOTO
HKMaly 20. 12. 2005 18:38
Nový
 
 
 
 
 
 
│
 
├ 
Re: GOTO
Jakub Hegenbart 20. 12. 2005 14:04
Nový
 
 
 
 
 
 
│
 
│
└ 
Re: GOTO
HKMaly 20. 12. 2005 18:40
Nový
 
 
 
 
 
 
│
 
│
 
└ 
Re: GOTO
Jakub Hegenbart 20. 12. 2005 19:03
Nový
 
 
 
 
 
 
│
 
│
 
 
└ 
Re: GOTO
HKMaly 20. 12. 2005 19:52
Nový
 
 
 
 
 
 
│
 
└ 
Re: GOTO
Pavel Tišnovský 20. 12. 2005 16:41
Nový
 
 
 
 
 
 
│
 
 
└ 
Re: GOTO
HKMaly 20. 12. 2005 18:47
Nový
 
 
 
 
 
 
│
 
 
 
└ 
Re: GOTO
Pavel Tišnovský 21. 12. 2005 08:38
Nový
 
 
 
 
 
 
│
 
 
 
 
└ 
Re: GOTO
HKMaly 21. 12. 2005 20:58
Nový
 
 
 
 
 
 
│
 
 
 
 
 
└ 
Re: GOTO
Pavel Tišnovský 22. 12. 2005 08:52
Nový
 
 
 
 
 
 
├ 
Re: GOTO
Jakub Hegenbart 20. 12. 2005 01:50
Nový
 
 
 
 
 
 
└ 
Re: GOTO
Pavel Tišnovský 20. 12. 2005 16:34
Nový
diskutující co nestojí za to
Anti Olomoučan 9. 12. 2005 22:48
Nový
UTF>=16
A 2. 1. 2007 16:07
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem