načítání...
nákupní košík
Košík

je prázdný
a
b

E-kniha: Mistrovství - PHP a MySQL - Luke Welling; Laura Thomson

Mistrovství - PHP a MySQL
-6%
sleva

Elektronická kniha: Mistrovství - PHP a MySQL
Autor: ;

Naučte se vytvářet interaktivní webové aplikace od těch nejjednodušších formulářů až po komplexní projekty. V Mistrovství najdete vše o PHP a MySQL, co k tvorbě webových ...
Titul je skladem - ke stažení ihned
Médium: e-kniha
Vaše cena s DPH:  649 Kč 610
+
-
20,3
bo za nákup

ukázka z knihy ukázka

Titul je dostupný ve formě:
elektronická forma tištěná forma

hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%   celkové hodnocení
0 hodnocení + 0 recenzí

Specifikace
Nakladatelství: » Computer press
Dostupné formáty
ke stažení:
PDF
Upozornění: většina e-knih je zabezpečena proti tisku
Médium: e-book
Počet stran: 799
Rozměr: 23 cm
Úprava: tran
Vydání: 1. vydání
Spolupracovali: překlad: Ondřej Baše
Jazyk: česky
ADOBE DRM: bez
ISBN: 978-80-251-4892-1
Ukázka: » zobrazit ukázku
Popis

Naučte se vytvářet interaktivní webové aplikace od těch nejjednodušších formulářů až po komplexní projekty. V Mistrovství najdete vše o PHP a MySQL, co k tvorbě webových aplikací potřebujete, na jednom místě. Dvojice autorů s bohatými zkušenostmi v oblasti tvorby webových aplikací vás postupně seznámí s PHP, MySQL a možnostmi jejich propojení při vývoji. Naučíte se správně nastavit prostředí, vytvářet jednoduché dynamické stránky a postupně přidávat další a další funkce až po propracované webové aplikace. V závěru knihy si vyzkoušíte vytvořit vlastního webového e-mailového klienta. Publikace se mimo jiných věnuje následujícím tématům: - Ukládání a načítání dat - Správa webové databáze - Práce se systémem souborů - Generování obrázků - Internacionalizace a lokalizace - Správa relací v PHP, zabezpečení webové aplikace - Ladění, logování, zpracování chyb a výjimek - Autentizace a personalizace uživatelů O autorech: Laura Thomson je technickou ředitelkou ve společnosti Mozilla Corporation. V minulosti bývala ředitelkou ve společnostech OmniTI a Tangled Web Design a pracovala pro univerzitu RMIT University a společnost Boston Consulting Group. Luke Welling pracuje jako softwarový analytik. Pravidelně přednáší o tématech otevřeného zdrojového kódu a webového vývoje na konferencích, jako jsou například OSCON, ZendCon, MySQLUC, PHPCon, OSDC a LinuxTag. Pracoval také ve společnostech OmniTI, Hitwise.com, MySQL AB a jako nezávislý konzultant ve společnosti Tangled Web Design. 

Předmětná hesla
Zařazeno v kategoriích
Luke Welling; Laura Thomson - další tituly autora:
Recenze a komentáře k titulu
Zatím žádné recenze.


Ukázka / obsah
Přepis ukázky
Mistrovství PHP a MySQL Vyšlo také v tištěné verzi Objednat můžete na www. computerpress.cz www.albatrosmedia.cz Luke Welling a Laura Thomson Mistrovství PHP a MySQL – e-kniha Copyright © Albatros Media a. s., 2017 Všechna práva vyhrazena. Žádná část této publikace nesmí být rozšiřována bez písemného souhlasu majitelů práv. Luke Welling Laura Thomson Mistrovství PHP a MySQL Computer Press Brno 2017 Mistrovství PHP a MySQL Luke Welling, Laura Thomson Překlad: Ondřej Baše Obálka: IMIDEA Odpovědný redaktor: Martin Herodek Technický redaktor: Jiří Matoušek Authorized translation from the English language edition, entitled PHP AND MYSQL WEB DEVELOPMENT, 5th Edition by LUKE WELLING; LAURA THOMSON, published by Pearson Education, Inc, publishing as Addison-Wesley Professional, Copyright © 2017 by Pearson Education, Inc. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. CZECH language edition published by Computer Press, an imprint of ALBATROS MEDIA A.S, Copyright © 2017 Translation © Ondřej Baše, 2017 Objednávky knih: www.albatrosmedia.cz eshop@albatrosmedia.cz bezplatná linka 800 555 513 ISBN tištěné verze 978-80-251-4892-1 ISBN e-knihy 978-80-251-4901-0 (1. zveřejnění, 2017) Cena uvedená výrobcem představuje nezávaznou doporučenou spotřebitelskou cenu. Vydalo nakladatelství Computer Press v Brně roku 2017 ve společnosti Albatros Media a. s. se sídlem Na Pankráci 30, Praha 4. Číslo publikace 31 420. © Albatros Media a. s., 2017. Všechna práva vyhrazena. Žádná část této publikace nesmí být kopírována a rozmnožována za účelem rozšiřování v jakékoli formě či jakýmkoli způsobem bez písemného souhlasu vydavatele. 1. vydání Stručný obsah Autoři 25 Přispěvatelé 27 Úvod 29 1. Rychlokurz jazyka PHP 39 2. Ukládání a načítání dat 81 3. Pole 103 4. Textové řetězce a regulární výrazy 129 5. Opětovné používání kódu a psaní funkcí 159 6. Objektově orientovaný jazyk PHP 187 7. Zpracování chyb a výjimek 225 8. Navrhujeme webovou databázi 235 9. Vytváříme webovou databázi 247 10. Práce s databází MySQL 273 11. Přistupujeme do databáze z webu s jazykem PHP 295 12. Pokročilá správa systému MySQL 315 13. Pokročilé programování se systémem MySQL 339 14. Bezpečnostní rizika webové aplikace 355 15. Budování bezpečné webové aplikace 365 16. Implementace autentizačních metod v jazyce PHP 389 17. Práce se systémem souborů a serverem 403 18. Síťové a protokolové funkce 427 19. Správa data a času 447 20. Internacionalizace a lokalizace 463 21. Generování obrázků 475 22. Řízení relací v jazyce PHP 501 23. Spojení jazyků JavaScript a PHP 517 24. Další užitečné funkce 543 25. Používáme jazyk PHP a systém MySQL ve velkých projektech 553 26. Ladění a logování 569 27. Autentizace a personalizace uživatelů 587 28. Vývoj webového e-mailového klienta s frameworkem Laravel, první část 625 29. Vývoj webového e-mailového klienta s frameworkem Laravel, druhá část 647 30. Sdílení a přihlašování pomocí sociálních sítí 699 31. Vývoj nákupního košíku 715 32. Instalace Apache, PHP a MySQL 759 Rejstřík 775 Obsah Autoři 25 Přispěvatelé 27 Úvod 29 Proč byste si měli přečíst tuto knihu? 29 Co se naučíte v této knize? 29 Co je PHP? 30 Co je MySQL? 31 Proč používat PHP a MySQL? 31 Několik předností jazyka PHP 32 Výkon 32 Škálovatelnost 32 Integrace s databází 33 Vestavěné knihovny 33 Cena 33 Snadnost učení jazyka PHP 33 Podpora objektově orientovaného programování 33 Přenositelnost 33 Flexibilita vývojového přístupu 34 Zdrojový kód 34 Dostupnost podpory a dokumentace 34 Klíčové funkce jazyka PHP 7 34 Několik předností systému MySQL 35 Výkon 35 Nízká cena 35 Snadnost použití 35 Přenositelnost 35 Zdrojový kód 36 Dostupnost podpory 36 Co je nového v MySQL 5.x? 36 Jak je uspořádaná tato kniha? 37 Závěrem 38 Zpětná vazba od čtenářů 38 Zdrojové kódy ke knize 38 Errata 38 6 Obsah Kapitola 1 Rychlokurz jazyka PHP 39 Než začnete – nainstalovaný jazyk PHP 40 Tvorba ukázkové aplikace – Bobovy autodíly 40 Tvorba objednávkového formuláře 40 Zpracování formuláře 42 Vkládání kódu PHP do dokumentu HTML 42 Značky jazyka PHP 43 Příkazy jazyka PHP 44 Bílé znaky 44 Komentáře 45 Přidání dynamického obsahu 46 Volání funkce 47 Funkce date() 47 Přístup k proměnným formuláře 47 Proměnné formuláře 48 Řetězení textových řetězců 50 Proměnné a literály 50 Identifikátory 51 Typy proměnných 52 Datové typy jazyka PHP 52 Síla typování 52 Přetypování 53 Definujeme a používáme konstanty 54 Oblast platnosti proměnných 54 Operátory 55 Aritmetické operátory 56 Operátory řetězení 57 Operátor přiřazení 57 Hodnoty vrácené přiřazením 57 Kombinované operátory přiřazení 58 Operátory inkrementace a dekrementace 58 Operátor reference 59 Porovnávací operátory 59 Operátor rovnosti 59 Další porovnávací operátory 60 Logické operátory 60 Bitové operátory 61 Další operátory 62 Ternární operátor 62 Operátor potlačení chyby 62 Operátor spuštění 62 Operátory pro práci s poli 63 Typový operátor 63 7 Obsah Výpočet součtů formuláře 64 Pochopení priorit a asociací 65 Funkce pro zpracování proměnných 66 Testování a nastavení typů proměnných 67 Testování stavu proměnné 68 Reinterpretace proměnných 69 Rozhodování podle podmínek 69 Příkaz if 69 Bloky kódu 70 Příkaz else 70 Příkaz elseif 71 Příkaz switch 72 Srovnání různých podmíněných příkazů 73 Opakujeme akce v iteracích 74 Cyklus while 75 Cykly for a foreach 77 Cyklus do...while 78 Jak ukončit řídicí strukturu nebo skript 78 Alternativní syntaxe řídicích struktur 79 Řídicí struktura declare 79 Co bude dál? 79 Kapitola 2 Ukládání a načítání dat 81 Ukládání dat 81 Ukládání a načítání Bobových objednávek 82 Zpracování souborů 82 Otevírání souboru 83 Výběr režimu souboru 83 Otevírání souboru funkcí fopen() 83 Otevírání souborů přes FTP nebo HTTP 86 Řešení problémů s otevíráním souborů 86 Zapisování do souboru 88 Parametry funkce fwrite() 89 Formáty souborů 89 Zavírání souboru 90 Čtení ze souboru 92 Otevření souboru pro čtení – fopen() 93 Příznak zastavení – feof() 94 Čtení po řádcích – fgets(), fgetss() a fgetcsv() 94 Čtení celého souboru – readfile(), fpassthru(), file() a file_get_contents() 95 Čtení znaku – fgetc() 96 Čtení libovolně dlouhých dat – fread() 96 8 Obsah Další souborové funkce 97 Ověření existence souboru – file_exists() 97 Určení velikosti souboru – filesize() 97 Smazání souboru – unlink() 97 Navigování v souboru – rewind(), fseek() a ftell() 97 Zamykání souborů 98 Lepší řešení – databáze 100 Problémy textových souborů 100 Jak databázové systémy řeší tyto problémy 101 Další zdroje 101 Co bude dál 101 Kapitola 3 Pole 103 Co je pole? 103 Číselně indexovaná pole 104 Inicializace číselně indexovaného pole 104 Přístup k obsahu pole 105 Přístup k prvkům pole v cyklu 106 Pole s jinými klíči 107 Inicializace pole 107 Přístup k prvkům pole 107 Používáme cykly 107 Operátory pro práci s poli 109 Vícerozměrná pole 110 Řazení polí 113 Funkce sort() 113 Funkce asort() a ksort() 114 Řadíme obráceně 114 Řazení vícerozměrných polí 115 Funkce array_multisort() 115 Uživatelsky definované řazení 116 Obrácené uživatelské řazení 117 Přeuspořádání polí 118 Funkce shuffle() 118 Převracíme pole 119 Načítání polí ze souborů 120 Další manipulace s poli 124 Navigace v poli – each(), current(), reset(), end(), next(), pos() a prev() 124 Aplikování funkce na jednotlivé prvky pole – array_walk() 125 Počítání prvků v poli – count(), sizeof() a array_count_values() 126 Převod polí na skalární proměnné – extract() 126 Další zdroje 128 Co bude dál 128 9 Obsah Kapitola 4 Textové řetězce a regulární výrazy 129 Vytváříme ukázkovou aplikaci – chytrý formulář zpětné vazby 129 Formátování textových řetězců 132 Ořezávání textových řetězců – chop(), ltrim() a rtrim() 132 Formátování textových řetězců pro výstup 132 Filtrování textových řetězců pro výstup 132 Filtrování textových řetězců pro výstup do webového prohlížeče funkcí htmlspecialchars() 133 Filtrování textových řetězců pro jiné formy výstupu 134 Formátování jazyka HTML – funkce nl2br() 135 Formátování textového řetězce pro tisk 136 Změna velikosti písmen 139 Spojování a rozdělování textových řetězců 140 Funkce explode(), implode() a join() 140 Funkce strtok() 141 Funkce substr() 141 Porovnávání textových řetězců 142 Uspořádání textových řetězců – strcmp(), strcasecmp() a strnatcmp() 142 Zjišťujeme délku textového řetězce funkcí strlen() 143 Vyhledávání a nahrazování podřetězců 143 Vyhledávání textových řetězců v textových řetězcích – strstr(), strchr(), strrchr() a stristr() 144 Vyhledávání pozice podřetězce – funkce strpos() a strrpos() 145 Nahrazování podřetězců – funkce str_replace() a substr_replace() 146 Představení regulárních výrazů 147 Základy 147 Oddělovače 148 Třídy a typy znaků 148 Opakování 150 Podvýrazy 150 Počítané podvýrazy 150 Odkazy na začátek a konec textového řetězce 150 Větvení 151 Hledání speciálních znaků doslovně 151 Shrnutí meta znaků 152 Escapovací sekvence 152 Zpětné reference 153 Tvrzení 154 Vše smícháme dohromady ve formuláři zpětné vazby 154 Vyhledávání podřetězců regulárními výrazy 156 Nahrazování podřetězců regulárními výrazy 157 Rozdělování textových řetězců regulárními výrazy 157 Další zdroje 158 Co bude dál 158 10 Obsah Kapitola 5 Opětovné používání kódu a psaní funkcí 159 Výhody opětovného používání kódu 159 Cena 159 Spolehlivost 160 Konzistence 160 Funkce require() a include() 160 Vkládání kódu funkcí require() 161 Funkce require() pro šablony webových stránek 163 Konfigurační možnosti auto_prepend_file a auto_append_file 167 Funkce v jazyce PHP 168 Volání funkcí 168 Volání nedefinované funkce 170 Velikost písmen v názvech funkcí 171 Definujeme vlastní funkce 171 Základní struktura funkce 172 Pojmenování funkcí 173 Parametry funkce 174 Oblast platnosti 176 Předávání parametrů odkazem versus hodnotou 179 Klíčové slovo return 180 Vracení hodnot z funkcí 181 Implementujeme rekurzi 182 Anonymní funkce (uzávěry) 183 Další zdroje 185 Co bude dál 185 Kapitola 6 Objektově orientovaný jazyk PHP 187 Koncepce objektově orientovaného programování 187 Třídy a objekty 187 Polymorfismus 189 Dědičnost 189 Tvorba tříd, vlastností a metod v jazyce PHP 190 Struktura třídy 190 Konstruktory 190 Destruktory 191 Vytváření instancí tříd 191 Vlastnosti třídy 192 Volání metod 192 Řízení přístupu modifikátory private a public 193 Magické metody __get() a __set() 194 11 Obsah Implementace dědičnosti v jazyce PHP 195 Řízení viditelnosti modifikátory private a protected 196 Přepisování 197 Zabraňujeme dědění a přepisování klíčovým slovem final 199 Vícenásobná dědičnost 200 Rozhraní 200 Traits 201 Navrhujeme třídy 203 Píšeme kód pro naši třídu 204 Pokročilé objektově orientované koncepce 211 Konstanty tříd 211 Statické metody 211 Ověřování typu objektu a typování 212 Pozdní statické vazby 212 Klonujeme objekty 213 Abstraktní třídy 214 Přetěžování metod metodou __call() 214 Funkce __autoload() 215 Implementace iterátorů a iterací 215 Generátory 217 Převod tříd na textové řetězce 219 Rozhraní Reflection API 219 Jmenné prostory 220 Dceřiné jmenné prostory 222 Globální jmenný prostor 222 Import a tvorba aliasů jmenných prostorů 223 Co bude dál 223 Kapitola 7 Zpracování chyb a výjimek 225 Koncepce zpracování výjimek 225 Třída Exception 227 Uživatelsky definované výjimky 228 Výjimky na Bobových stránkách 230 Výjimky a další mechanismy zpracování chyb v jazyce PHP 233 Další zdroje 233 Co bude dál 233 Kapitola 8 Navrhujeme webovou databázi 235 Koncepce relačních databází 236 Tabulky 236 Sloupce 236 Řádky 237 12 Obsah Hodnoty 237 Klíče 237 Schémata 238 Vztahy 239 Navrhování webové databáze 239 Představujte si skutečné objekty, které se snažíte modelovat 239 Neukládejte redundantní data 241 Používejte atomické hodnoty sloupců 242 Vybírejte smysluplné klíče 243 Přemýšlejte, na co se chcete dotazovat databáze 243 Vyhýbejte se návrhům s mnoha prázdnými sloupci 243 Přehled typů tabulek 244 Architektura webové databáze 244 Další zdroje 246 Co bude dál 246 Kapitola 9 Vytváříme webovou databázi 247 MySQL monitor 248 Přihlášení k serveru MySQL 249 Vytváříme databázi 250 Nastavujeme uživatelské účty a oprávnění 251 Systém oprávnění MySQL 251 Princip minimálních oprávnění 251 Založení uživatelského účtu – příkazy CREATE USER a GRANT 252 Typy a úrovně oprávnění 254 Příkaz REVOKE 257 Příklady s příkazy GRANT a REVOKE 257 Vytvoření uživatelského účtu pro web 258 Vybíráme správnou databázi 259 Tvorba databázových tabulek 259 Co znamenají další klíčová slova 261 Typy sloupců 262 Průzkum databáze s příkazy SHOW a DESCRIBE 264 Tvorba indexů 265 Identifikátory systému MySQL 265 Vybíráme datové typy sloupců 267 Číselné typy 268 Typy pro datum a čas 269 Textové typy 270 Další zdroje 272 Co bude dál 272 13 Obsah Kapitola 10 Práce s databází MySQL 273 Co je jazyk SQL 273 Vkládání dat do databáze 274 Načítání dat z databáze 276 Načítání dat splňujících určitá kritéria 277 Načítání dat z více tabulek 279 Jednoduchá spojení dvou tabulek 280 Spojování více než dvou tabulek 281 Hledání řádků, které neodpovídají kritériím 282 Používání jiných názvů pro tabulky – aliasy 283 Shrnutí spojení 284 Načítání dat v určitém pořadí 284 Seskupování a agregování dat 285 Vybíráme řádky, které chceme vrátit 287 Poddotazy 288 Základní poddotazy 288 Poddotazy a operátory 289 Související poddotazy 289 Řádkové poddotazy 290 Poddotaz jako dočasná tabulka 290 Aktualizujeme záznamy v databázi 290 Změna tabulek po vytvoření 291 Mažeme záznamy z databáze 293 Mazání tabulek 294 Odstranění celé databáze 294 Další zdroje 294 Co bude dál 294 Kapitola 11 Přistupujeme do databáze z webu s jazykem PHP 295 Jak funguje architektura webové databáze 295 Dotazování databáze z webu 299 Ověřování a filtrování vstupních dat 299 Připojování 300 Výběr databáze 301 Dotazování databáze 302 Nedělejte to 302 Připravené příkazy 303 Načítání výsledků dotazu 304 Odpojení od databáze 305 Vkládání nových dat do databáze 306 14 Obsah Další databázová rozhraní jazyka PHP 310 Obecné databázové rozhraní PDO 310 Další zdroje 313 Co bude dál 313 Kapitola 12 Pokročilá správa systému MySQL 315 Pochopení systému oprávnění detailněji 315 Tabulka user 317 Tabulka db 319 Tabulky tables_priv, columns_priv, procs_priv a proxies_priv 320 Řízení přístupu – jak systém MySQL používá grant tabulky 321 Aktualizace oprávnění – kdy se změny projeví? 322 Zabezpečení databáze MySQL 322 Systém MySQL v operačním systému 322 Hesla 323 Oprávnění uživatelů 323 Webové problémy 324 Získávání informací o databázích 324 Získávání informací příkazem SHOW 325 Získávání informací o sloupcích příkazem DESCRIBE 327 Jak prozkoumat dotazy příkazem EXPLAIN 327 Optimalizace databáze 332 Optimalizace návrhu 332 Oprávnění 332 Optimalizace tabulek 332 Indexy 333 Výchozí hodnoty 333 Další tipy 333 Zálohování databáze MySQL 333 Obnova databáze MySQL 334 Implementace replikace 334 Nastavení master serveru 335 Provedení úvodního přenosu dat 336 Nastavení slave serverů 336 Další zdroje 337 Co bude dál 337 Kapitola 13 Pokročilé programování se systémem MySQL 339 Příkaz LOAD DATA INFILE 339 Databázová úložiště 339 Transakce 341 Transakce v databázovém úložišti InnoDB 342 15 Obsah Cizí klíče 343 Uložené procedury 344 Základní příklad 344 Lokální proměnné 347 Kurzory a řídicí struktury 348 Triggery 352 Další zdroje 354 Co bude dál 354 Kapitola 14 Bezpečnostní rizika webové aplikace 355 Identifikace hrozeb, kterým čelíme 355 Přístup k citlivým datům 355 Snížení rizika 356 Úprava dat 358 Únik nebo ztráta dat 358 Snížení rizika 359 Denial of Service 359 Snížení rizika 360 Injekce zákeřného kódu 361 Snížení rizika 362 Kompromitovaný server 362 Snížení rizika 362 Odmítnutí 362 Snížení rizika 362 Kdo stojí proti nám 363 Útočníci a hackeři 363 Uživatelé, kteří nemají ponětí, že je jejich počítač infikovaný 363 Nespokojení zaměstnanci 364 Zloději hardwaru 364 My sami 364 Další zdroje 364 Co bude dál 364 Kapitola 15 Budování bezpečné webové aplikace 365 Strategie pro zacházení s bezpečností 365 Začněte správným myšlením 365 Vyvažování bezpečnosti a použitelnosti 366 Sledování bezpečnosti 366 Základní přístup 367 Zabezpečení zdrojového kódu 367 Filtrování vstupu uživatele 367 Dvakrát kontrolujte očekávané hodnoty 368 Filtrujte i základní hodnoty 370 16 Obsah Zabezpečení textových řetězců pro dotazy SQL 371 Escapování výstupu 372 Uspořádání zdrojového kódu 374 Co patří do zdrojového kódu 375 Úvahy nad systémem souborů 376 Stabilita a chyby kódu 376 Spouštíme příkazy 377 Zabezpečení webového serveru s jazykem PHP 378 Aktualizujte software 378 Instalace nových verzí 378 Nasazení nové verze 379 Prohlížení souboru php.ini 379 Konfigurace webového serveru 380 Apache http Server 380 Sdílený hosting pro webové aplikace 381 Bezpečnost databázového serveru 382 Uživatelé a systém oprávnění 382 Odesílání dat na server 383 Připojování k serveru 383 Spouštění serveru 383 Ochrana sítě 384 Brány firewall 384 DMZ 384 Připravujeme se na útoky DoS a DDoS 385 Zabezpečení počítače a operačního systému 386 Pravidelné aktualizace operačního systému 386 Spouštějte jen nezbytné programy 386 Fyzické zabezpečení serveru 387 Krizové plánování 387 Co bude dál 388 Kapitola 16 Implementace autentizačních metod v jazyce PHP 389 Identifikace návštěvníků 389 Implementace řízení přístupu 390 Ukládáme hesla 393 Zabezpečení hesel 393 Zabezpečení více stránek 395 Základní autentizace 396 Základní autentizace v jazyce PHP 396 Základní autentizace serveru Apache pomocí souborů .htaccess 398 Tvorba vaší vlastní autentizace 401 Další zdroje 402 Co bude dál 402 17 Obsah Kapitola 17 Práce se systémem souborů a serverem 403 Uploadování souborů 403 Kód HTML pro upload souborů 405 Kód PHP pro zpracování souboru 406 Průběh uploadu 410 Vyhněte se běžným problémům s uploadem 411 Adresářové funkce 412 Čtení z adresářů 413 Načítáme informace o aktuálním adresáři 416 Vytváření a mazání adresářů 417 Interakce se systémem souborů 417 Získávání informací o souboru 418 Změna vlastností souboru 420 Vytváření, mazání a přesouvání souborů 421 Funkce pro spouštění programů 422 Interakce s prostředím – getenv() a putenv() 424 Další zdroje 425 Co bude dál 425 Kapitola 18 Síťové a protokolové funkce 427 Průzkum dostupných protokolů 427 Odesílání a přijímání e-mailů 428 Používáme data z jiných webových stránek 428 Funkce pro vyhledávání na síti 432 Zálohování nebo zrcadlení souboru 436 Zálohování nebo zrcadlení souboru přes protokol FTP 436 Připojování ke vzdálenému serveru FTP 439 Přihlašování k serveru FTP 440 Kontrola časů poslední úpravy souboru 441 Stahování souboru 442 Zavíráme spojení 443 Uploadování souborů 443 Zabraňujeme překročení časového limitu 443 Další FTP funkce 444 Další zdroje 445 Co bude dál 445 Kapitola 19 Správa data a času 447 Načítání data a času v jazyce PHP 447 Časové zóny 447 Funkce date() 448 18 Obsah Pracujeme s časovými známkami systému Unix 450 Funkce getdate() 451 Validujeme datum funkcí checkdate() 453 Formátování časových známek 453 Převádění formátů data mezi jazykem PHP a systémem MySQL 455 Výpočty s daty v jazyce PHP 457 Výpočty s daty v systému MySQL 458 Mikrosekundy 459 Kalendářové funkce 460 Další zdroje 461 Co bude dál 461 Kapitola 20 Internacionalizace a lokalizace 463 Lokalizace není jen překlad 463 Porozumění znakovým sadám 464 Dopady znakových sad na bezpečnost 465 Vícebajtové funkce pro práci s textovými řetězci 466 Tvorba základní struktury lokalizovatelných stránek 466 Jak používat funkci gettext() v mezinárodní aplikaci 470 Nastavení systému pro použití funkce gettext() 470 Tvorba souborů s překlady 472 Implementace lokalizovaného obsahu v jazyce PHP s pomocí funkce gettext() 473 Další zdroje 474 Co bude dál 474 Kapitola 21 Generování obrázků 475 Nastavení podpory zpracování obrázků v jazyce PHP 475 Obrazové formáty 476 Formát JPEG 476 Formát PNG 477 Formát GIF 477 Tvorba obrázků 477 Vytváříme plátno 479 Kreslení a tisk textu do obrázku 479 Výstup finální grafiky 481 Úklid 482 Jak používat automaticky generované obrázky na dalších stránkách 482 Jak vytvářet obrázky s texty a písmy 483 Vytváříme základní plátno 486 Umístění textu na tlačítko 487 19 Obsah Umístění textu 490 Píšeme text na tlačítko 491 Dokončujeme 491 Vykreslování čísel a grafových dat 491 Další obrazové funkce 500 Co bude dál 500 Kapitola 22 Řízení relací v jazyce PHP 501 Co je řízení relací? 501 Pochopení základů relací 501 Co je cookie? 502 Nastavujeme cookies z jazyka PHP 502 Cookies a relace 503 Ukládání identifikátoru relace 503 Implementace jednoduchých relací 504 Spuštění relace 504 Registrace relačních proměnných 504 Používání relačních proměnných 505 Mažeme proměnné a ukončujeme relaci 505 Příklad s jednoduchou relací 505 Konfigurace řízení relací 508 Implementujeme autentizaci s použitím relací 509 Co bude dál 516 Kapitola 23 Spojení jazyků JavaScript a PHP 517 Technologie AJAX 517 Stručný úvod do jQuery 517 Aplikace frameworku jQuery ve webových aplikacích 518 Základní techniky a koncepce frameworku jQuery 519 Selektory knihovny jQuery 519 Zpracování vybraných skupin 522 Úvod do událostí frameworku jQuery 523 Spojení frameworku jQuery s technologií AJAX a jazykem PHP 528 Skript na straně serveru umožňující chatovat pomocí technologie AJAX 528 Ajaxové metody frameworku jQuery 532 Metoda $.ajax() 532 Pomocné ajaxové metody 533 Klientská část chatu jako aplikace v jQuery 535 Další zdroje 541 Co bude dál 541 20 Obsah Kapitola 24 Další užitečné funkce 543 Vyhodnocování textových řetězců – eval() 543 Ukončujeme běh skriptu – die() a exit() 544 Serializování proměnných a objektů 545 Načítání informací o prostředí PHP 546 Pátráme po načtených rozšířeních 546 Identifikujeme vlastníka skriptu 547 Zjištění času poslední úpravy skriptu 548 Dočasná změna běhového prostředí 548 Zvýrazňování zdrojového kódu 549 Ovládání interpretu PHP z příkazového řádku 550 Co bude dál 551 Kapitola 25 Používáme jazyk PHP a systém MySQL ve velkých projektech 553 Aplikujeme principy softwarového inženýrství na webový vývoj 554 Plánování a zpracování projektu webové aplikace 554 Znovupoužitelnost zdrojového kódu 555 Píšeme udržovatelný kód 556 Standardy programování 556 Definice konvencí pojmenování 557 Komentování kódu 558 Odsazování kódu 559 Rozdělení kódu 559 Standardní adresářová struktura 560 Dokumentace a sdílení funkcí interně 560 Implementace správy verzí 561 Výběr vývojového prostředí 562 Dokumentování projektů 562 Prototypování 563 Oddělení logiky od obsahu 564 Optimalizace zdrojového kódu 565 Jednoduché optimalizace 565 Testování 566 Další zdroje 567 Co bude dál 567 21 Obsah Kapitola 26 Ladění a logování 569 Programovací chyby 569 Syntaktické chyby 569 Běhové chyby 570 Volání neexistující funkce 571 Čtení a zapisování do souborů 572 Interakce s databází MySQL a jinými databázemi 573 Připojení k síťovým službám 575 Absence validace vstupních dat 576 Logické chyby 576 Pomoc s laděním proměnných 577 Úrovně hlášení chyb 579 Změna konfigurace hlášení chyb 580 Vyvolávání vlastních chyb 582 Elegantní logování chyb 583 Logování chyb do souboru 585 Co bude dál 586 Kapitola 27 Autentizace a personalizace uživatelů 587 Komponenty řešení 587 Identifikace a personalizace uživatelů 588 Ukládáme záložky 589 Doporučování záložek 589 Přehled řešení 589 Implementace databáze 591 Implementace základních stránek 592 Implementujeme autentizaci uživatelů 595 Registrace uživatelů 595 Přihlašování 601 Odhlášení 605 Změna hesla 606 Obnova zapomenutého hesla 609 Implementujeme ukládání a načítání záložek 613 Přidávání záložek 613 Zobrazování záložek 616 Mazání záložek 617 Implementace doporučování 620 Možná rozšíření ke zvážení 623 22 Obsah Kapitola 28 Vývoj webového e-mailového klienta s frameworkem Laravel, první část 625 Úvod do frameworku Laravel 5 625 Tvorba nového projektu s frameworkem Laravel 625 Struktura aplikace Laravel 626 Cyklus požadavků frameworku Laravel a architektura MVC 628 Jádra aplikace 628 Poskytovatelé služeb 629 Modely, pohledy a kontrolery frameworku Laravel 629 Směrovač Laravel 629 Parametry cesty 630 Skupiny cest 632 Kontrolery 632 Přistupujeme k datům požadavku 634 Pohledy 636 Šablony Blade 637 Modely frameworku Laravel 639 Operace CRUD v modelech Eloquent 644 Poslední nápady týkající se frameworku Laravel 645 Kapitola 29 Vývoj webového e-mailového klienta s frameworkem Laravel, druhá část 647 Vývoj jednoduchého klienta IMAP pomocí frameworku Laravel 647 Funkce pro práci s protokolem IMAP 647 Otevření spojení se serverem IMAP 648 Protokol IMAP a e-mailové schránky 649 Načítání zpráv protokolem IMAP 651 Načítání a parsování konkrétních zpráv ze serveru IMAP 654 Začlenění funkčnosti IMAP do naší aplikace Laravel 656 Třída klienta IMAP 659 Třída zprávy a rozhraní zprávy 664 Třída Attachment 674 Skládáme vše dohromady, abychom vytvořili webového e-mailového klienta 675 Implementace poskytovatele ImapServiceProvider 675 Přihlašovací stránka webového klienta 676 Implementujeme hlavní pohled 682 Implementujeme prohlížení zprávy 688 Mazání a odesílání zprávy 692 Závěr 697 23 Obsah Kapitola 30 Sdílení a přihlašování pomocí sociálních sítí 699 Přihlašování k webové službě standardem OAuth 699 Povolení typu autorizační kód 701 Implicitní povolení 702 Stavíme webového klienta propojeného se sítí Instagram 703 Přihlašovací stránka OAuth 705 Dokončení autorizačního povolení OAuth 707 Zobrazujeme feed sítě Instagram 708 Lajkování fotografií na síti Instagram 712 Závěr 713 Kapitola 31 Vývoj nákupního košíku 715 Komponenty řešení 715 Stavba online katalogu 716 Sledování vybraných produktů uživatelů při nakupování 716 Implementace platebního systému 716 Vývoj administračního rozhraní 717 Návrh řešení 717 Implementujeme databázi 721 Implementace online katalogu 723 Výpis kategorií 725 Výpis knih v kategorii 728 Zobrazujeme detail knihy 729 Implementace nákupního košíku 731 Skript show_cart.php 731 Zobrazení košíku 734 Přidávání položek do košíku 736 Ukládáme aktualizovaný košík 738 Výpis shrnutí v záhlaví 739 Objednávání 739 Implementujeme platby 746 Implementujeme administrační rozhraní 748 Rozšiřování projektu 757 24 Obsah Dodatek A Instalace Apache, PHP a MySQL 759 Instalace programů Apache, PHP a MySQL v systému UNIX 760 Binární instalace 760 Instalace ze zdrojového kódu 761 Instalace systému MySQL 762 Instalace PHP a Apache 765 Základní úpravy konfigurace serveru Apache 769 Funguje podpora jazyka PHP? 770 Funguje vrstva SSL? 770 Instalace programů Apache, PHP a MySQL v systémech Windows a Mac OS pomocí souhrnných instalačních balíků 772 Otestujte výsledek své práce 773 Instalace repozitáře PEAR 773 Instalace interpretu PHP s jinými webovými servery 774 Rejstřík 775 Autoři Laura Thomson je technickou ředitelkou ve společnosti Mozilla Corporation. V minulosti bývala ředitelkou ve společnostech OmniTI a Tangled Web Design a pracovala pro univerzitu RMIT University a společnost Boston Consulting Group. Je držitelkou bakalářského titulu aplikované informatiky a informačních technologií, přičemž absolvovala s vyznamenáním. Ve svém volném čase ráda jezdí na koni, diskutuje o softwaru s otevřeným zdrojovým kódem a spí. Luke Welling pracuje jako softwarový analytik. Pravidelně přednáší o tématech otevřeného zdrojového kódu a webového vývoje na konferencích, jako jsou například OSCON, ZendCon, MySQLUC, PHPCon, OSDC a  LinuxTag. Pracoval také ve společnostech OmniTI, Hitwise.com, MySQL AB a jako nezávislý konzultant ve společnosti Tangled Web Design. Přednášel o informatice na univerzitě RMIT University ve městě Melbourne v Austrálii a je držitelem bakalářského titulu aplikované informatiky. Ve svém volném čase se snaží zdokonalit svou nespavost. Přispěvatelé Julie C. Meloni je produktovou manažerkou a technickou konzultantkou. Žije ve městě Washington, D.C. Napsala několik knih a článků o webových programovacích jazycích a databázích, a to včetně bestselleru Sams Teach Yourself PHP, MySQL and Apache All in One. John Coggeshall vlastní společnost Internet Technology Solutions, LLC, celosvětovou konzultantskou společnost v oblastech internetu a jazyka PHP, a také společnost CoogleNet, která poskytuje síť WiFi. V minulosti býval členem týmu Zend Technologies‘ Global Services. S jazykem PHP se seznámil v roce 1997 a napsal čtyři knihy a více než 100 článků o PHP technologiích. Jennifer Kyrnin pracuje jako webová designérka od roku 1995. Napsala kupříkladu knihy Sams Teach Yourself Bootstrap in 24 Hours, Sams Teach Yourself Responsive Web Design in 24 Hours a Sams Teach Yourself HTML5 Mobile Application Development in 24 Hours. Úvod Vítejte, v této knize najdete souhrn našich znalostí, které jsme nabyli používáním jazyka PHP a databázového systému MySQL – jedná se o dva nedůležitější a nejpoužívanější nástroje pro webový vývoj. Proč byste si měli přečíst tuto knihu? V této knize se naučíte vytvářet interaktivní webové aplikace od nejjednoduššího objed - návkového formuláře až po složité zabezpečené webové aplikace. A co víc – dozvíte se, jak toho dosáhnout s pomocí technologií s otevřeným zdrojovým kódem. Tato kniha je určena čtenářům, kteří už znají základy jazyka HTML a programovali v některém moderním programovacím jazyku, přičemž nemuseli nutně programovat pro web nebo používat relační databáze. Jestliže začínáte programovat, bude pro vás tato kniha stále užitečná, ale proniknout do ní vám může trvat déle. Snažili jsme se nevynechat žádnou základní koncepci, ale i tak je pouze stručně shrnujeme. Typickými čtenáři této knihy jsou programátoři, kteří chtějí ovládnout jazyk HTML a databázový systém MySQL za účelem tvorby rozsáhlých komerčních webových stránek. Pokud již programujete v některém jiném webovém programovacím jazyku, nemělo by vám v rychlém přečtení této knihy nic překážet. První vydání této knihy jsme napsali, protože nás unavovaly knihy o jazyce PHP, které byly pouhými referencemi základních funkcí. Ačkoliv jsou tyto knihy užitečné, nijak vám nepomůžou, když za vámi přijde šéf a řekne: „Vytvořte mi nákupní košík.“ Snažili jsme se co nejvíce zjednodušit všechny příklady v této knize. Spoustu ukázkových zdrojových kódu můžete přímo použít ve svých webových stránkách, řadu jiných můžete použít jen s drobnými úpravami. Co se naučíte v této knize? Po přečtení této knihy budete umět vytvářet skutečné dynamické webové aplikace. Jestliže jste vytvořili nějaké statické webové stránky v jazyce HTML, znáte omezení tohoto přístupu. Statický obsah z čistých HTML stránek je prostě statický. Zůstává stejný, dokud ho fyzicky nezměníte. Uživatelé nemůžou interagovat s takovými webovými stránkami žádným smysluplným způsobem. S pomocí skriptovacího jazyka (například PHP) a databázového systému (například MySQL) můžete udělat své webové stránky dynamické tak, aby byly přizpůsobitelné a obsahovaly aktuální informace. 30 ÚvOd Tato kniha se zaměřuje na aplikace z reálného světa, a to dokonce i v úvodních kapitolách. Nejprve se podíváte na jednoduché systémy a potom se budete propracovávat různými částmi jazyka PHP a databázového systému MySQL. Posléze se dozvíte o jednotlivých aspektech bezpečnosti a autentizace, jelikož jsou nedílnou součástí skutečných webových stránek, a také zjistíte, jak je implementovat v jazyce PHP a databázi MySQL. Kromě toho se seznámíte s integrací frontendových a backendových technologií – objevíte jazyk JavaScript a roli, jakou může hrát při vývoji vašich aplikací. V poslední části této knihy se naučíte, jak přistupovat ke skutečným projektům – projdete si fázemi návrhu, plánování a budování níže uvedených projektů: „ Uživatelská autentizace a personalizace „ Webový e-mail „ Integrace se sociálními sítěmi Všechny tyto projekty můžete zužitkovat tak, jak jsou. Případně je můžete přizpůsobit svým požadavkům. Vybrali jsme je, protože se domníváme, že se jedná o nejběžnější webové aplikace. Pokud potřebujete něco jiného, tato kniha by vám měla pomoct v dosa - žení vašich cílů. Co je PHP? PHP je skriptovací jazyk na straně serveru, který byl navržený speciálně pro web. Do stránky HTML můžete vkládat kód jazyka PHP, jenž se provede při každé návštěvě této stránky. Váš kód jazyka PHP je interpretován webovým serverem, přičemž generuje dokument HTML nebo jiný výstup, který uvidí návštěvník. Jazyk PHP vznikl v roce 1994. Původně se jednalo o výsledek práce jediného muže – Rasmuse Lerdorfa. Postupně se přidávali k jeho vývoji další talentovaní lidé a z velké části ho přepsali, až se z něj stal rozšířený vyspělý produkt, jakým je dnes. Podle Grega Michillieho ze společnosti Google poháněl tento jazyk v květnu 2013 více než tři čtvrtiny všech webových stránek, přičemž toto číslo vzrostlo na více než 82 % v červenci 2016. PHP je projekt s otevřeným zdrojovým kódem, což znamená, že máte přístup k jeho zdrojovému kódu, můžete ho používat, měnit a distribuovat ho. PHP bylo původně zkratkou pro Personal Home Page, ale její význam se změnil po vzoru rekurzivní konvence pojmenování GNU (GNU = Gnu’s Not Unix) – nyní znamená PHP Hypertext Preprocessor. Aktuální hlavní verzí jazyka PHP je verze 7. V této verzi se jazyk dočkal kompletního přepsání jádra Zend a několika podstatných vylepšení. Veškerý zdrojový kód pro tuto knihu je otestovaný v poslední verzi PHP 7 a také v poslední verzi z rodiny verzí PHP 5.6, které jsou v současnosti stále oficiálně podporované. 31 ÚvOd Domovská stránka jazyka PHP je k dispozici na internetové adrese http://php.net/. Domovská stránka společnosti Zend Technologies se nachází na internetové adrese http:// www.zend.com/. Co je MySQL? MySQL je velmi rychlý a robustní systém pro správu relačních databází (RDBMS). Databáze umožňuje efektivně ukládat, vyhledávat, řadit a načítat data. MySQL server řídí přístup k vašim datům. Zajišťuje, aby k datům mohlo přistupovat více uživatelů současně, nabízí rychlý přístup a dohlíží na to, aby přístup získali pouze oprávnění uživatelé. MySQL je tudíž server s podporou více uživatelů a více vláken. Používá jazyk SQL (Structured Query Language) – standardní databázový dotazovací jazyk. MySQL je veřejně dostupný od roku 1996, ale počátek jeho vývoje sahá až do roku 1979. Jedná se o celosvětově nejoblíbenější databázi s otevřeným zdrojovým kódem, která mnohokrát vyhrála cenu Volba čtenářů časopisu Linux Journal. MySQL je k dispozici pod dvěma licencemi. Můžete si zvolit volně dostupnou licenci s otevřeným zdrojovým kódem (GPL), jestliže splníte její podmínky. Pokud chcete vydat aplikaci s jinou licencí než GPL, která bude zahrnovat MySQL, můžete si koupit komerční licenci. Proč používat PHP a MySQL? Když se rozhodnete, že budete vytvářet webové stránky, můžete si vybírat z mnoha různých produktů. Musíte si vybrat: „ kde budete chtít provozovat svůj webový server – v cloudu, na soukromých virtuálních serverech nebo na skutečném hardwaru, „ operační systém, „ webový server, „ systém pro správu databází nebo jiné datové úložiště, „ programovací nebo skriptovací jazyk. Můžete skončit s hybridní architekturou s více datovými úložišti. Některé volby závisejí na jiných. Například ne všechny operační systémy běží na všech typech hardwaru, ne všechny webové servery podporují všechny programovací jazyky atd. Tato kniha nevěnuje příliš pozornosti hardwaru, operačním systémům ani webovým serverům. Není to ani nutné. Na jazyku PHP a systému MySQL je krásné, že fungují na všech nejrozšířenějších operačních systémech, a dokonce na řadě méně známých. 32 ÚvOd Většinu kódu v jazyce PHP lze napsat tak, aby byl přenositelný mezi operačními systémy a webovými servery. Existuje několik funkcí tohoto jazyka, které jsou závislé na systému souborů (jenž závisí na operačním systému), ale ty jsou v dokumentaci i v této knize řádně označené. Ať už si vyberete jakýkoliv hardware, operační systém nebo webový server, měli byste vážně uvažovat, že si zvolíte jazyk PHP a systém MySQL. Několik předností jazyka PHP Mezi hlavní konkurenty jazyka PHP patří jazyk Python, Ruby, Perl, Java, prostředí Node. js a Microsoft .NET. V porovnání s těmito produkty má jazyk PHP několik předností: „ výkon, „ škálovatelnost, „ rozhraní pro spoustu různých databázových systémů, „ vestavěné knihovny pro většinu běžných webových úloh, „ nízká cena, „ snadnost učení a používání, „ silná podpora objektově orientovaného programování, „ přenositelnost, „ flexibilita vývojového přístupu, „ dostupnost zdrojového kódu, „ dostupnost podpory a dokumentace. Následuje podrobnější informace o jeho přednostech. Výkon PHP je velmi rychlý jazyk. S pomocí jediného levného serveru můžete zpracovat miliony návštěv denně. Umí obsluhovat vše – od malého kontaktního formuláře až po webové stránky typu Facebook nebo Etsy. Škálovatelnost PHP má něco, co Rasmus Lerdorf často označuje jako architektura SN (sdílené nic). To znamená, že ho můžete efektivně a levně implementovat do velkého množství webových serverů. 33 ÚvOd Integrace s databází PHP nativně podporuje spoustu databázových systémů. Kromě databáze MySQL se můžete připojovat kupříkladu k databázím PostgreSQL, Oracle, MongoDB a MSSQL. Verze PHP 5 a PHP 7 rovněž nabízejí SQL rozhraní pro běžné soubory, které se nazývá SQLite. Prostřednictvím standardu ODBC (Open Database Connectivity) se můžete připojovat k libovolné databázi přes ovladač ODBC. Řadí se k nim především produkty společnosti Microsoft, ale také spousta jiných. Kromě nativních knihoven poskytuje jazyk PHP rovněž abstraktní vrstvu databázo - vých objektů (PDO), jež přináší konzistentní přístup a prosazuje postupy bezpečného programování. Vestavěné knihovny Protože jazyk PHP byl navržený pro použití na webu, obsahuje spoustu vestavěných funkcí, které vykonávají mnoho užitečných webových úloh. Můžete dynamicky generovat obrázky, připojovat se k webovým službám a jiným síťovým službám, parsovat kód jazyka XML, odesílat e-maily, pracovat s cookies a generovat dokumenty PDF, a to vše jen s pomocí několika řádků kódu. Cena PHP je k dispozici zdarma. Jeho poslední verzi si můžete kdykoliv stáhnout na internetové adrese http://www.php.net bez poplatků. Snadnost učení jazyka PHP Syntaxe jazyka PHP vychází z jiných programovacích jazyků – zejména z jazyků C a Perl. Pokud už znáte jazyk C nebo Perl nebo jiný programovací jazyk podobný jazyku C, napří - klad jazyk C++ nebo Java, budete produktivní s jazykem PHP téměř okamžitě. Podpora objektově orientovaného programování Jazyk PHP ve verzi 5 přinesl skvěle navržené objektově orientované prvky, které byly dále vylepšeny ve verzi 7. Jestliže umíte programovat v jazyce Java nebo C++, najdete zde prvky, které už znáte – kupříkladu dědičnost, soukromé a chráněné vlastnosti a metody, abstraktní třídy a metody, rozhraní, konstruktory a destruktory. Objevíte v něm dokonce i méně obvyklé prvky, jako jsou například iterátory nebo traity. Přenositelnost PHP je k dispozici pro spoustu různých operačních systémů. Psát kód v jazyce PHP je možné ve volně dostupných unixových operačních systémech (například Linuxu nebo FreeBSD), v komerčních unixových systémech, v systému OS X a v systému Windows. 34 ÚvOd Flexibilita vývojového přístupu V jazyce PHP můžete vyřešit jednoduché úkoly jednoduše, a stejně tak jednoduše můžete vytvářet obrovské aplikace s pomocí některého frameworku založeného na architektuře MVC (Model-View-Controller). Zdrojový kód Máte přístup ke zdrojovému kódu jazyka PHP. Pokud chcete něco upravit nebo přidat do tohoto jazyka, můžete to udělat. Nemusíte čekat na to, až jeho výrobce vydá novou verzi. Nemusíte se obávat, že by výrobce přestal podnikat nebo se rozhodl přestat podporovat svůj produkt. Dostupnost podpory a dokumentace Společnost Zend Technologies ( http://www.zend.com/), která stojí za vývojem jádra jazyka PHP, financuje svůj vývoj tak, že nabízí placenou podporu a související software. Dokumentace a  komunita okolo jazyka PHP jsou vyspělé a  bohaté zdroje spousty informací. Klíčové funkce jazyka PHP 7 Dlouho očekávaná verze PHP 7 vyšla veřejně v prosinci roku 2015. Jak už víte z úvodu, tato kniha se zabývá verzemi PHP 5.6 a PHP 7, což vás pravděpodobně přivede k otázce: „Kam se poděla verze PHP 6?“ Krátká odpověď zní: „Neexistuje žádná verze PHP 6 a nikdy ani veřejně nevyšla.“ Existovala sice snaha o vývoj kódu, která byla označovaná jako „PHP 6“, ale samotný vývoj se nikdy neuskutečnil. Vývojový tým měl spoustu ambiciózních plánů, přičemž následně narazil na spoustu komplikací, které nakonec znemožnily věnovat se dále vývoji. PHP 7 není PHP 6 – neobsahuje funkce, které byly navrhované pro PHP 6. Místo toho se jedná o zcela novou verzi se svým vlastním cílem, a tím je lepší výkon. Pod kapotou jazyka PHP 7 se skrývá kompletně přepsané jádro Zend Engine, které přináší výrazné vylepšení výkonu pro mnoho webových aplikací – někdy až o 100 %. Cílem verze PHP 7 nebylo pouze zvýšit efektivitu a snížit paměťové nároky, ale také zachovat zpětnou kompatibilitu. A skutečně bylo zavedeno jen velmi málo nekompatibilních změn. Tyto změny budou popsané v jednotlivých kapitolách této knihy tak, aby příklady fungovaly ve verzi PHP 5.6 i ve verzi PHP 7. Někteří poskytovatelé webhostingu totiž zatím nepřešli na verzi PHP 7. 35 ÚvOd Několik předností systému MySQL Hlavními konkurenty MySQL v oblasti relačních databází jsou PostgreSQL, Microsoft SQL Server a Oracle. Na webu se však začíná objevovat rostoucí trend používání NoSQL/ nerelačních databází, jejichž hlavním zástupcem je databáze MongoDB. Existuje však stále celá řada důvodů, proč pohlížet na databázový systém MySQL jako na dobrou volbu. MySQL má mnoho předností: „ vysoký výkon, „ nízká cena, „ snadnost konfigurace a učení, „ přenositelnost, „ dostupnost zdrojového kódu, „ dostupnost podpory. Následuje podrobnější popis jeho předností. Výkon Databázový systém MySQL je nepopiratelně rychlý. Stránku s banchmarky vývojářů najdete na internetové adrese http://www.mysql.com/why-mysql/benchmarks/. Nízká cena MySQL je k dispozici zdarma pod licencí otevřeného softwaru a za mírný poplatek pod komerční licencí. To znamená, že pokud distribuujete MySQL jako součást aplikace, potře - bujete komerční licenci, ale nepotřebujete ji pro aplikace s otevřeným zdrojovým kódem. Pokud nehodláte distribuovat svou aplikaci (což je typické pro většinu webových aplikací), pracujete na volně dostup


       
Knihkupectví Knihy.ABZ.cz - online prodej | ABZ Knihy, a.s.
ABZ knihy, a.s.
 
 
 

Knihy.ABZ.cz - knihkupectví online -  © 2004-2018 - ABZ ABZ knihy, a.s. TOPlist