Pokud chcete provozovat PHP a MySQL jednoduše přímo na svém počítači, lze si nainstalovat EasyPHP. Já tedy používám raději podobný server XAMPP. EasyPHP je balíček, kde máte již předinstalovaný linuxový server Apache s databází MySQL a s programovacím jazykem PHP. Podporovaná verze je až PHP 7.3.x. Vytvoříte si tak lokální server, na kterém můžete provádět vývoj vaší webové aplikace. Nemusíte umět správu serveru, přesto budete schopni programovat. Produkční server vám již může zajistit správce hostingu, kam pak skripty nahrajete. EasyPHP DevServer není stavěný jako produkční server, ale je určen čistě pro vývoj.
Aktuální verze EasyPHP Devserver 17.0 obsahuje moduly: Virtual Hosts Manager, Xdebug Manager, PhpMyAdmin, WordPress, PrestaShop, Drupal, Joomla!, Webgrind, Codiad Editor. Součástí EasyPHP jsou komponenty: PHP, Apache, MySQL, Nginx. EasyPHP může fungovat i jako ostrý produkční web server nainstalovaný do prostředí Windows.
Jak psát web – jakpsatweb.cz – toto je hodně „stará“ stránka, která vznikla v dobách začátku internetu a od té doby se v zásadě „nezměnila“. Nicméně pořád na ní najdete ten správný základ, obzvláště, pokud začínáte. Autor Dušan Janovský ji průběžně aktualizuje se zachováním dnes již „retro designu“.
Webové stránky krok za krokem – itnetwork.cz, web je velice dobře zpracovaný, některé články mohou být však na předplatné.
Pavel Satrapa www kousky – Pavel Satrapa je učitel, jeho kurz je přehledný, jen bych chtěla podotknout, že XHTML je v dnešní době již prakticky mrtvé, nicméně na výuku základů HTML to vliv příliš nemá.
W3C je mezinárodní konzorcium, které vydává standardy pro web. Tyto standardy nejsou přímo závazné, ale udávají určitý směr celkovému vývoji webu a jeho technologii.
Protože mi web W3.org přijde poněkud nepřehledný, vytáhnu zde pár klíčových odkazů:
Nechte si zobrazit vaši HTML stránku na různých zařízeních. Uvidíte, jak bude vypadat na mobilu, tabletu či desktopu.
Screenfly – Test Your Website at Different Resolutions – bluetree.ai.
Přímo v prohlížeči Mozilla Firefox můžeme zapnout Responsive Design Mode volbou z menu: F10 / Tools / Browser tools / Responsive Design Mode. Také je užitečná volba: F10 / Tools / Browser tools / Web developer Tools.
SEO
Zde jsou zdarma nástroje, která projdou webovou stránku z hlediska SEO a sdělí, co by bylo dobré zlepšit:
Aktualizováno: 23. 11. 2019, datum vydání: 31. 12. 2018
Popularita frameworků pro práci s webem se mění každým rokem. Zajímavé porovnání můžeme získat z nástroje Google Trends po zadání termínů (frameworků), které chceme porovnat. Analýza se zakládá na vyhledávaných slovech pomocí Google. Je vidět i region rozšíření daného frameworku, pokud odstraníme postupně zadané termíny. Podle tohoto nástroje zatím vede Ruby on Rails s aktuálním rozšířením hlavně v Číně. Oblíbenost Ruby on Rails v ČR příliš velká není.
Aktualizováno: 9. 12. 2020, datum vydání: 7. 9. 2018
Bluefish je jednoduchý HTML editor určený pro programátory. Umožňuje jednoduše vkládat HTML tagy. Nepatří mezi WYSIWYG editory.
Zalamování řádků
Editor automaticky nezalamuje řádky. Lze to jednoduše nastavit volbou v menu: Document / Wrap Text. Další možná nastavení jsou v menu: Edit / Preferences… / Nastavení editoru / Zalamovat řádky na značce pravého okraje či případně zde: Edit / Preferences… / Počáteční nastavení dokumentu / Zalamovat řádky. Tyto volby však nejsou aktivní do té doby, dokud se nezaškrtne možnost v menu: Document / Wrap Text.
Aktualizováno: 30. 11. 2020, datum vydání: 8. 8. 2017
Rychlost načítání webových stránek je pro web důležitá. Jedním z kritérií v hodnocení dané stránky u Googlu (tzv. pagerank) by měla být také rychlost načtení stránky. Webová stránka by se měla načítat do dvou sekund. Rychlost načítání je důležitá pro SEO (Search Engine Optimization).
On-line nástroje pro testování rychlosti stránky
Na netu existuje pár různých nástrojů, kterými lze hotový web otestovat:
Aktualizováno: 29. 11. 2020, datum vydání: 17. 8. 2016
Design tohoto webu jsem proměnila do následující palety barev vygenerované pomocí W3.CSS Color Themes. Za základní barvu jsem zvolila #673ab7, což je jedna z nabízených palet (themes) w3-deep-purple.
Aktualizováno: 4. 12. 2020, datum vydání: 22. 7. 2016
Design tohoto webu jsem proměnila do následující palety barev vygenerované pomocí W3.CSS Color Themes. Za základní barvu jsem zvolila #888844. Základní barva byla vybrána pomocí Color Pickeru.
Aktualizováno: 29. 11. 2020, datum vydání: 22. 7. 2016
W3.CSS nabízí k použití barvy (W3.CSS Colors) a k některým z nich jsou připravené palety barev (W3.CSS Color Themes) a k nim předpřipravená CSS (w3.css). Já však v designu používám např. opozitní barvy a pak mi chybí pěkně zpracovaná protilehlá paleta barev. Také mi chybí u palet jejich vyjádření v číselném hexadecimálním kódu. Člověk mnohdy potřebuje vědět, která to je přesně barvička, např. pro úpravy v grafických programech, pro nastavení Google reklamy apod.
Aktualizováno: 29. 11. 2020, datum vydání: 13. 7. 2016
Funkční postup instalace
XAMPP je prostředí, které v sobě obsahuje webový server Apache, PHP, MySQL atd. Mně se podařilo po pár neúspěšných pokusech nainstalovat verzi XAMPP for Windows 5.6.23 (xampp-win32-5.6.23-0-VC11-installer.exe), který podporuje PHP 5.6.23. Aby instalace ve Windows 10 proběhla úspěšně, tak jsem provedla následující kroky:
Vypnula jsem antivirový program (nechtělo se mi do toho, ale instalace se nedařily, tak jsem nakonec povolila).
Zvolila jsem defaultní nabízený adresář C:\xampp. Je to prasárna, ale např. verze XAMPP for Windows 7.0.8 při zvoleném jiném adresáři stejně u MySQL očekávala adresář C:\xampp a vyhazovala nějakou chybu v error logu a také instalace vyhazovala chybu, že nemůže systém Windows najít položku -n a spuštění php.exe následně neproběhlo… Adresář C:\xampp nedělal problém.
Následně po instalaci bylo zapotřebí přenastavit porty v konfiguraci Apache v souboru httpd.conf např. na Listen 8080 a vypnout Skype, který zase obsazuje port 443. Dashboard je následně přístupný z adresy http://localhost:8080/dashboard/.
Po spuštění webového serveru Apache a MySQL jsem pro tyto služby povolila bránu Windows Firewall pro místní sítě.
Aktualizováno: 29. 11. 2020, datum vydání: 12. 7. 2016
EasyPHP
EasyPHP využívá port 80. Pokud je blokovaný, vyhodí při spuštění hlášku:
Apache port (80) is already used by another application ! Close this application and try to run again the server. To close this application : open <easyphp folder>/binaries/tools/cports.exe, find the line with the port already used in the column "Local Port", right click and coose "Kill Processes Of Selected Ports".
Po spuštění tohoto cports.exe souboru se nám zobrazí procesy a můžeme je případně ukončit. Použité porty lze také vidět pomocí příkazu v příkazovém řádku netstat -ano.
Aktualizováno: 29. 11. 2020, datum vydání: 5. 7. 2016
Responzivní design by měl v dnešní době být základem každého webu. Pro rychlý vývoj webu lze využít předem připravené šablony (kostru responzivního webu). Zde vybírám některé z nich.
W3schools.com
Ačkoli je na webu nepřeberné množství responzivních šablon, tak u mne zvítězil známý web w3schools.com a jeho W3.CSS. W3schools připravilo a dalo k dispozici od roku 2015 free CSS design. Toto CSS je v zásadě postaveno na principech Material Design a Google Design.
Aktualizováno: 5. 10. 2020, datum vydání: 1. 1. 2016
Wordpress má omezení na velikost nahrávaného souboru. U obrázků to většinou nebývá problém, ale pokud chceme nahrát video, tak se můžeme dostat do problémů.
Navýšení limitu nahrávaného souboru
Navýšit velikost nahrávaného souboru můžeme učinit pomocí úpravy php skriptů. Zde jsou návody:
Aktualizováno: 9. 12. 2020, datum vydání: 7. 12. 2015
SQLite je softwarová knihovna implementující SQL. Dokumentaci k SQLite najdeme na php.net. Databáze včetně dat a definic tabulek je uložena pouze v jednom jediném souboru umístěném na serveru. Můžeme tak mít vícero databází, aniž bychom za ně museli extra platit na hostingu. Podpora SQLite je zahrnutá v PHP 5.0. Počínaje PHP 5.4 je SQLite dostupné pouze s knihovnou PECL.
Aktualizováno: 24. 9. 2020, datum vydání: 26. 4. 2015
Chytré CSS s proměnnými a funkcemi
V tutoriálu Ruby on Rails od Michaela Hartla v páté kapitole je použit Bootstrap. Bootstrap je HTML, CSS a JavaScriptový framework postavený na preprocesorech CSS: Less a Sass. Preprocesory Less a Sass umožňují CSS obohatit o proměnné, funkce a následně takovýto kód předělají do klasického CSS.
Bootstrap framework používá nativně Less, které lze následně překonvertovat pomocí bootstrap-sass z Less na Sass. Bootstrap umožňuje vývojářům vytvořit jednoduše responzivní desing.
Aktualizováno: 24. 9. 2020, datum vydání: 8. 4. 2015
MySQL Workbench 6.2.5 je nestabilní
MySQL Workbench je nástroj pro návrh tabulek MySQL. Jde o pokračovatele staršího nástroje DBDesigneru 4. Je k dispozici zdarma jako open source pod MySQL GPL Licencí.
Ozkoušela jsem aktuální verzi 6.2.5. Při stažení jsem vybrala defaultně nabízenou volbu instalátoru. Instalace byla hodně dlouhá, je to svým způsobem moloch. Navíc je vyžadováno založení účtu na Oracle. Instalovaly se knihovny C++, zvlášť se musel nainstalovat Python, instaloval se také do Windows MySQL server. Instalace dopadla dobře. Bohužel po vytvoření malého projektu se záhy projevil problém s ukládáním projektů. Nešel uložit ani nově vytvořený projekt, který nic neobsahoval. Prostě to celé spadlo. Vyhodilo to hlášku, že MySQL Workbench přestal pracovat a konec (v angličtině pravděpodobně: MySQL Workbench has stopped working). Naštěstí šel projekt obnovit přes záložní soubor s příponou .bak.
Aktualizováno: 5. 10. 2020, datum vydání: 31. 10. 2014
Adobe Color CC
Hledáte vhodné barevné navržení pro web? Může vám pomoci tento generátor barevných schémat Adobe Color CC od společnosti Adobe.
Paletton.com
Dalším obdobným nástrojem je tento generátor barevných schémat. Je v češtině i angličtině a nabízí různé barevné variace. Na světě je jeho novější podoba.
Aktualizováno: 21. 9. 2020, datum vydání: 31. 10. 2014
Pěkným projektem je také CSS Zen Garden, který obsahuje jednoduché HTML a veškerý vzhled je upravený pomocí CSS. Web obsahuje různé grafické varianty zpracování daného kódu. Vzhled je upraven pouze pomocí stylů. Jde o typickou ukázku, jaká kouzla se pomocí grafiky a CSS nechají dělat.
Začínající i pokročilí HTML kodéři se mohou inspirovat a tímto způsobem se učit. Veškerý kód stránek je samozřejmě volně přístupný k prohlížení. Stránky nemají zas tak složitou strukturu, aby bylo příliš obtížné se v nich vyznat.
Aktualizováno: 26. 11. 2020, datum vydání: 2. 1. 2014
Dejme tomu, že se nám celkem líbí šablona Protostar pro veřejnou část webu. Chceme ji zachovat, abychom se k ní případně mohli kdykoli vrátit, a měnit pouze její kopii.
Kopie šablony
Správce šablony » Šablony
Nejprve musíme vybrat v administraci volbu Obládací planel » Správce šablon » Šablony. Vybereme šablonu Protostar podrobnosti a soubory » Vytvořit kopii šablony » a nazveme si ji např. Protostar-moje.
Aktualizováno: 25. 9. 2020, datum vydání: 31. 12. 2013
Rozhodla jsem se ozkoušet WampServer, což je připravený balíček Apache, PHP a MySQL.
Instalace Wampu 2.4
Před instalací Wamp použaduje instalaci Visual C++ 2010 SP1 Redistributable Package x86 or x64.
Instalaci Wampu doporučuji provést např. do lokální složky konkrétního uživatele Dokumenty, např. Documents\wamp. Pokud totiž necháme Wamp nainstalovat např. do Program Files (x86), tak lokální adresář se soubory www, do kterého se pak nahrávají projekty, bude taky ve složce ProgramFiles, což není příliš praktické. Cesta k němu by vedla přes Program Files (x86)\wamp\www.
Aktualizováno: 21. 5. 2020, datum vydání: 27. 12. 2013
Popisuji zde spíše problematická nastavení, která se obtížně v administraci Joomly hledají.
Zapnutí češtiny v Joomle
Uvedené volby jsou popsány v jejich překladu do češtiny. Překlad do češtiny již Joomla obsahuje a je ho možné zapnout v Konfigurace » Správce jazyků » Jazyk Czech (Czech Republic) » Výchozí.
Počet sloupců na titulní stránce (v úvodníku)
Počet sloupců na úvodní stránce (v úvodníku) se nastavuje v dané položce menu, která zobrazuje úvodníky hlavních článků. U této položky menu je Typ položky nabídky nastaven na Hlavní články.
Aktualizováno: 21. 5. 2020, datum vydání: 27. 12. 2013
Běžný web mívá určité menu, kde jsou položky menu a po kliknutí na danou položku menu se zobrazí určité články. Základní logická struktura v Joomle je taková, že článek má přiřazenu určitou kategorii. Položka v menu může následně vypisovat například články z této kategorie, ale mohla by vypisovat i třeba něco jiného… V Joomle jsou položky menu nezávislé na kategoriích, ve kterých mohou být články.
Aktualizováno: 8. 9. 2020, datum vydání: 19. 12. 2013
Joomla je oblíbený redakční systém pro správu webu. Návod na instalaci Joomly 3.2 je popsán na stránce Installing Joomla. Zde jsou krátké body mého postupu:
Nakopírujeme soubory obsažené v zipu na FTP do rootu webu.
Aby nikdo nemohl manipulovat s naší instalací, tak doporučuji upravit a nahrát soubor .htaccess a zakázat přístup na server všem, kromě naší IP adresy.
Na serveru musíme zřídit databázi a poznamenat si k ní přístupy.
Joomla obsahuje instalátor, který se spouští přes naší hlavní doménu index.php našich stránek. Instalátor pouští skripty v adresáři /installation/index.php. Vyplníme údaje dané instalátorem.
Smažeme instalační složku installation.
Naplníme web pomocí administrátorského rozhraní.
Zpřístupníme ho veřejnosti upravením souboru .htaccess.
Doporučuji udělat zálohu souborů i databáze po čisté instalaci a nastavení Joomly.
Aktualizováno: 7. 6. 2020, datum vydání: 19. 8. 2013
Pro testování aplikací v PHP na Window je vhodné mít na svém lokálním PC rozchozen lokální server. Pokud nechcete konfigurovat a instalovat zvlášť Linux, Apache, MySQL a PHP, lze využít například tyto již hotové servery:
Aktualizováno: 20. 5. 2020, datum vydání: 30. 7. 2013
Potřebovala jsem funkci, která mi vrátí číslo v matematickém formátu vhodném například pro zápis do matematických vzorců ve formátu HTML.
Vytvořila jsem si pro tento účel funkci, která přidá oddělovače tisíců, desetinnou tečku čísla float nahradí desetinnou čárkou a dále ponechá příslušná desetinná místa aniž by stanovila či měnila jejich počet.
Pro tento účel mi nestačila PHP funkce number_format, protože vyžaduje určitý počet desetinných míst, pokud mají být vyplněny další parametry. Navíc i kdych ve funkci number_format použila určitý pevný počet míst a přebytečné nuly zprava „vyhodila“, tak bych mohla mít například problém s malými čísly, které by mohly díky této úpravě vyjít 0. A kdyby to bylo ve jmenovateli, tak 0 ve jmenovateli být nesmí a byl by to problém.
Aktualizováno: 30. 4. 2020, datum vydání: 25. 7. 2013
Následující funkce rozdělí číslo ve formátu integer či float na desetinnou část a celou část. Pokud je číslo záporné, tak funkce vrací zápornou desetinnou část. Udělala jsem to z důvodu, aby v případě součtu celé a desetinné části vzniklo původní číslo.
Použitá PHP funkce floor zaokrouhluje dolu, funkce ceil zaokrouhluje nahoru. Jenže pro záporná čísla se tyto funkce chovají tak, jak my zrovna nepotřebujeme, proto nelze jednoduše použít pouze zaokrouhlení dolů! Je zapotřebí zkombinovat patřičně floor s ceil.
Aktualizováno: 30. 4. 2020, datum vydání: 20. 7. 2013
Zde je funkce getScriptName(), která vrátí aktuální volaný skript. Ve funkcích se využívá PHP funkcí strrchr(), která najde poslední výskyt lomítka a vrací string od lomítka včetně dál. Dále se využívá funkce substr(), která nám vrátí string už bez počátečního lomítka. Proměnná $_SERVER["SCRIPT_NAME"] je vrácená serverem a její hodnota je například vidět ve výpise proměnných po volání funkce phpinfo().
Zdrojový kód
/* např. pro $path = '/www/public/index.html'; funkce vrátí "index.html" */
function getFileName($path) {
return substr(strrchr($path, "/"), 1);
}
/* funkce vrací název souboru aktuálního skriptu */
function getScriptName() {
return getFileName($_SERVER["SCRIPT_NAME"]);
}
Aktualizováno: 24. 4. 2020, datum vydání: 24. 2. 2013
Tak jsem si trochu pohrála s konstruktorem DateTime::__construct třídy DateTime. Zkoušela jsem náchylnost k zadání chybného parametru do konstruktoru. V případě úplně chybného zadání, konstruktor vyvolá výjimku. Nicméně nemůžete na to spoléhat, protože například neexistující datum 30. 2. 2013 bylo uloženo jako 2. 3. 2013!. Datum se uložil o dva dny dál – došlo k jeho posunu. Co se nevešlo do února, tak schlamstnul březen :-). Proto před voláním konstruktoru, pokud si nejste jisti správností formátu, je vhodné volat funkci checkdate, která by v tomto případě vrátila false.
Aktualizováno: 24. 4. 2020, datum vydání: 24. 2. 2013
Funkce checkdate() na otestování správnosti data funguje správně i pro data mimo interval od roku 1970 do roku 2038. Je to logické, protože pro kontrolu správnosti data není třeba mít samotné datum uloženo jako integer.
bool checkdate (int $month , int $day , int $year)
Aktualizováno: 21. 4. 2020, datum vydání: 23. 2. 2013
Tak si klidně programuji, a když vše naprogramuji a na závěr testuji, tak zjistím, že mi nejdou zadat roky větší jak 2038. Místo toho se mi vracel 1. 1. 1970. Nemilé překvapení!
Příklad použití pro rok 2042
<?php
echo date('j. n. Y', strtotime('2042-12-31'));
?>
Aktualizováno: 21. 5. 2020, datum vydání: 2. 11. 2012
Administrace Joomly 1.6 neumožňuje vynulování počtu shlédnutí článků. Pokud si necháváte zobrazovat nejčtenější články na webu, tak úspěšné starší články, které mají větší počet shlédnutí, skoro vždy „převálcují“ novější články. Novější články, byť jsou úspěšné, tak nemohou mít takový počet shlédnutí už jen proto, protože jsou na webu kratší dobu. Z tohoto důvodu nejčtenější články neodráží aktuálně nejvíce navštěvované odkazy (např. v období posledního týdne).
Joomla ukládá do atributu databáze hits úplně celkový počet shlédnutí daného článku za celou dobu existence článku. Abyste zamezili tomuto nevhodnému chování z důvodu běhu času, je vhodné jednou za čas počet shlédnutí vynulovat.
Aktualizováno: 24. 11. 2019, datum vydání: 16. 9. 2012
Odkazy umístěné na HTML stránkách se časem mohou stát nefunkční. Existují nástroje, které Vám projdou web nebo danou stránku a odkazy zkontrolují. Uvádím zde pouze ta řešení, která jsou k dispozici zdarma.
Webová řešení validace odkazů
W3C Link Checker – validator.w3.org (umí prohledávat rekurzivně do hloubky, stačí zaškrtnout a nastavit „Check linked documents recursively, recursion depth“), zkontroluje maximálně 150 stránek
Na stránkách download EasyPHP najdeme ještě zajímavé nástroje pro vývojáře. Za zmínku stojí také nástroj kodeshot, pomocí kterého jednoduše vygenerujete obrázek ze vloženého zdrojového kódu.
Aktualizováno: 10. 11. 2019, datum vydání: 23. 4. 2011
Pokud provozujete dynamický web, v němž je veškerý obsah webu uložen v databázi, pak určitě časem narazíte na tuto důležitou "drobnost", která vás může trochu překvapit.
Aktualizováno: 10. 11. 2019, datum vydání: 23. 4. 2011
Jak se zálohuje MySQL databáze a jaký nejjednodužší příkaz použít? Na to se v rychlosti podíváme a některé příklady si ukážeme. Pokud používáte rozhraní phpMyAdmin, tak zálohování databáze je primitivní, stačí využít záložku pro "Export" a uložit si databázi do souboru. Pokud však phpMyAdmin nepoužíváte a chcete zálohovat databázi přímo z nějakého operačního systému typu Linux, FreeBSD apod., situace je složitější a je třeba využít příkaz mysqldump.
Abyste mohli použít příkaz pro zazálohování databáze mysqldump, musíte být v shellu a nikoli přímo v MySQL. Konkrétní manuál najdete na stránkách 4.5.4. mysqldump — A Database Backup Program.
Výstupem zálohování bude textový soubor, který bude obsahovat SQL příkazy nutné pro obnovu databáze.
Aktualizováno: 10. 11. 2019, datum vydání: 23. 4. 2011
MySQL Workbench
Na návrh databáze MySQL je vhodný nástroj MySQL Workbench, který je vyvíjen přímo pod MySQL (Oracle Corporation). Na stránce se screanshoty si můžete udělat základní představu o práci MySQL Workbench. Workbench je určen pro grafické znázornění tabulek, jejich relací apod. Je k dispozici zdarma pod licencí GPL. Jedná se o open source.
Aktualizováno: 7. 11. 2019, datum vydání: 5. 3. 2011
Demo Simplescripts.com
Pro jednoduché vyzkoušení redakčního systému Joomla můžete vyzkoušet například demo na serveru simplescripts.com. Bohužel toto demo Vám bude fungovat pouze chvilku, než Vám ho někdo jiný smázne. Další nevýhodou je, že nemáte přístup k databázi, takže se nemůžete podívat například na strukturu tabulek.