Diskuze: Nové PHP tutoriály
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Vlastník

Zobrazeno 20 zpráv z 20.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Začnu se stringy (http://www.php.net/….strings.php):
Za zmínku IMHO stojí: echo, explode, printf? (rozdíl mezi fprintf?), implode, trim, md5, ord, parse_str, sha1, str_replace, (ty not utf-8 safe bych zde vůbec nezmiňoval, protože jsou k ničemu), mb_strlen, mb_strpos, mb_substr, strtr.
Co vy na to?
K řetězcům bych přidal rozdíl mezi uvozovkami a apostrofy, dále vkládání proměnných do řetězců.
Funkce k polím (ty jsou díky bohu označené prefixem array): array_fill, array_flip, array_intersect_key, array_intersect, (array_key_exists mi připadá zbytečný, když lze použít isset), array_keys, array_map, array_merge, array_pop, array_push, array_replace (úplně nevím co to dělá), array_reverse, array_search, array_shift, array_sum, array_unique, array_unshift, array_values, count, extract, ksort, sort, usort.
Jak to vidíte?
Úplně mi vypadly databáze, opět otázka objektů, budeme učit jen PDO nebo i funkcionální MySQLi? (vím, že je i objektová, ale proti PDO to nemá význam)
Souhlasím, že nemá cenu uvádět ty not utf-8 safe funkce. Ony mají stejně podobné parametry. Zmínil bych se také o http://php.net/…ion.hash.php
Asi bych to rozdělil na základy (neobjektové) a pak to ostatní psal objektově, aby tomu rozuměli i začínající programátoři. Ohledně databází bych hodně prosazoval to PDO a o něčem jako je MySQLi bych se zmínil jen tak okrajově. Chce to začátečníky nabádat k těm dobrým postupům a ne je učit něco, co jim pak bude k ničemu. Pro datum a čas bych tedy popsal ten objekt DateTime.
Vidíš, ta hash vydá za md5 a sha1 a další. Ty tedy škrtám a přidávám hash.
Já právě nevím, když tu je ten neobjektový tutoriál od Mirka pro začátečníky, tak jestli nedělat pak již rovnou objekty s tím, že bych tu udělal step by step tutoriál na OOP v PHP, který by byl předpokladem.
Tak to by bylo nejlepší
Ještě mě teď napadá zmínit se o escapování řetězců (jak pro výstup
tak pro zápis - třeba do databáze atd.), ale to už asi plánuješ.
Do databáze to řeší PDO. Pro výstup máš pravdu, htmlspecialchars a htmlspecialchars_decode jsem přehlédl, přidávám. Možná i ty entities, ale to ničí diakritiku, nevím, jestli je to užitečná funkce.
V XSLT se htmlspecialchars() nepoužívá, protože už je obsaženo a funguje kontextově. Uvnitř tagů escapuje jinak než v atributech. To také přidám do některého z dalších článků o šablonách.
Ještě jsem ten seznam funkcí pořádně nepročetl, vyjádřím se později.
Těch užitečných i méně užitečných funkcí je moc. Dokonce jsem našel i fungující třídu na vytváření excelovských tabulek, ale nebudu to tady říkat moc nahlas, aby to náhodou někdo nezačal používat místo databáze.
Funkce pro práce s řetězci bych rozdělil do 2 článků (Výpis a Manipulace). K výpisu bych ještě přidal var_dump a printr, byl by tam i speciachars.
Pole bych rozdělil na Operace s polem a operace s více poli.
Pokud nikdo nic nenamítá, dnes se do toho pustím.
Co dělá funkce die()
?
Myslel jsem si, že se nachází jen ve špatných učebnicích.
Aha. Mně by vadilo, že by se někdy i citlivé údaje zobrazily návštěvníkovi. Raději loguji a to i během řádného provozu a návštěvníkovi sdělím jen nezbytné minimum informací.
Teď mě napadá, že bych mohl zkusit die()
nějak odchytit a
zalogovat.
Co je nasazeno na produkčním serveru, tak tam die nemá co dělat, o tom žádná. Ale na localu ji používám velmi často, když něco nefunguje, dá se tím docela hezky "krokovat" a zjitit, kde je to rozbité. Nejčastě tam mám něco jako die(var_dump(...)).
Tak to je OK. Vybavila se mi zajímavá funkce, která v seznamu chybí:
assert()
.
Také mi trochu chybí pojednání o výjimkách. Nebo to chceš nechat na mně?
Výjimky jsem v PHP zatím nepoužíval, jestli se toho chceš chopit, budu
jen rád
OK, v PHP udělám výjimku. V Pythonu ani se jiné ošetření chyb nepoužívá. Kéž by to tak fungovalo i v PHP.
Zobrazeno 20 zpráv z 20.