Diskuze: Nové PHP tutoriály
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 20 zpráv z 20.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
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.
