Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Podobné dokumenty
Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Použití databází na Webu

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Maturitní témata Školní rok: 2015/2016

Dobrý CMS Popis produktu a jeho rozšíření

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET)

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Programovací jazyky Přehled a vývoj

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

Architektura softwarových systémů

Projekt JetConf REST API pro vzdálenou správu

Olga Rudikova 2. ročník APIN

Dobrý FOTO Popis produktu a jeho rozšíření

1 Webový server, instalace PHP a MySQL 13

Ukázka knihy z internetového knihkupectví

Nové jazykové brány do Caché. Daniel Kutáč

Objekty v PHP 5.x. This is an object-oriented system. If we change anything, the users object.

Maturitní témata. pro obor vzdělávání M/01 Informační technologie

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Databáze II. 1. přednáška. Helena Palovská

Úvod do problematiky vývoje Vývoj informačních systémů

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

SYLABUS IT V. Jiří Kubica. Ostrava 2011

Evoluce deploye Od FTP po automatický deploy

Dobrý SHOP Popis produktu a jeho rozšíření

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal

Střední odborná škola a Střední odborné učiliště, Hořovice

Bakalářské. Vzdělání: Telefon: Ostrava. Bydliště: Ukázky práce: Správa a monitoring platformy provozované na AWS

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Databáze SQL SELECT. David Hoksza

KAPITOLA 1 SOCIÁLNÍ SÍTĚ A PHP...17

Střední odborná škola a Střední odborné učiliště, Hořovice

Informační systém autoškoly

Vyřešené teoretické otázky do OOP ( )

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.

Úvod do Entity Frameworku

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

PHP Best Practices. Please try to fit your code to 80 columns. That's decimal 80. A. Morton

D R U P A L V O J T Ě C H K U S W O J T H A

17. července :51 z moravec@yahoo.com

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

1. Webový server, instalace PHP a MySQL 13

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Sada 1 - PHP. 14. Úvod do jazyka SQL

Analýza a Návrh. Analýza

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Informační technologie. Název oboru: Školní rok: jarní i podzimní zkušební období 2017/2018

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Střední odborná škola a Střední odborné učiliště, Hořovice

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

ANOTACE vytvořených/inovovaných materiálů

Střední odborná škola a Střední odborné učiliště, Hořovice

Okruhy z odborných předmětů

RELAČNÍ DATABÁZOVÉ SYSTÉMY

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Operátory ROLLUP a CUBE

Ukázka knihy z internetového knihkupectví

Principy objektově orientovaného programování

Programování v jazyku C# II. 5.kapitola

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Jak se dělá sociální síť. Část 1- Implementace. Implementace, Startup, Motivace

Instalace a konfigurace web serveru. WA1 Martin Klíma

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Stěhování aplikací. Michal Tomek, Sales Manager

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

(Enterprise) JavaBeans. Lekce 7

TRANSFORMACE RELAČNÍHO DATOVÉHO MODELU NA OBJEKTOVÝ TRANSFORMATION OF RELATIONAL TO OBJECT DATA MODEL

IS pro podporu BOZP na FIT ČVUT

Transkript:

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: 26. 2. 2019 Webové aplikace PHP OOP, PHP a databáze, migrace DB, ORM, šablony, MVC/MVP, PHP frameworky

strana 2 PHP skriptovací jazyk dynamicky typovaný interpret skriptů spouští se jako modul v Apache HTTP server při instalaci se registruje koncovka php k interpretu v httpd.conf

strana 3 PHP objekty Viditelnost metod a vlastností public, private, protected Přetěžování metod Dědičnost jediný předchůdce Interfaces Traits Statické metody

strana 4 PHP objekty - magické metody construct() destruct() get($n) set($n, $v) call($n) tostring()... $this->cokoliv = ; zavolá set("cokoliv") $objekt = new ; echo $objekt;

strana 5 PHP jmenné prostory Mohou obsahovat třídy interface trait funkce konstanty

strana 6 PHP 7.x typ. kontrola pro skalární typy (volitelně) operátor?? pro null echo $a?? "..." operátor <=> pro řazení (vrací 0, -1, 1) $v = 1 <=> 2; -1 anonymní třídy zrušeno rozhraní MySQL (MySQLi, PDO) rychlost! Ještě existuje operátor?:

Frameworky a návrhové vzory strana 7

strana 8 Otázka k zamyšlení: Dokázali byste napsat server-klient aplikaci s GUI a databází v relativně krátkém čase v jiném než webovém prostředí? asi ne v PHP to umí kde kdo (i děti na ZŠ) mohou to dělat dobře? jak to dělat správně? jak se neztratit v kódu? jakou?

strana 9 Tvorba software a návrh Dobrý návrh aplikací je důležitý pro větší projekty udržovatelnost testovatelnost dodržet termín dodání vlastní psaní kódu je dílčí část procesu v PHP se píšou aplikace malé i velké je snadné začít může být těžké růst aby kód mohl upravovat i někdo jiný, aby mohlo spolupracovat víc vývojářů po delší čas volte správné nástroje pro vaše cíle

strana 10 Návrhový vzor znovupoužitelné řešení nějakého problému Programování Elektrotechnika Strojírenství Základní jednotka Řádek kódu Součástka (kondenzátor, odpor, dioda, ) Celek Funkce, třída Elektrický obvod (zapojené součástky) Funkční celek Vrstva aplikace, knihovna Osazený plošný spoj (zesilovač, zdroj, trafo, ) Produkt Software El. zařízení Stroj Díl (hřídel, ozubené kolo, šroubek, ) Sestava (převod, sešroubované díly, ložisko, ) Spojka, motor, převodovka, diferenciál

strana 11

strana 12 Ověřené postupy best practices Cesta k PHP frameworku vede přes použití a pochopení návrhových vzorů a ověřených postupů Migrace a seedování DB ORM (AR, Data mapper) Šablonovací systémy Framework je sestaven z těchto bloků

strana 13 MVC / MVP nebo presenter?

strana 14 Framework společný název pro mnoho nástrojů Framework Šablony (Latte, Twig, Smarty, Blade, ) Formuláře ORM systém (Doctrine, Eloquent, Propel, RedBean, ) Lokalizace MVC/MVP CLI DB migrace DB seedy Maily Autentizace Autorizace

strana 15 PHP Frameworky ucelené systémy určující způsob práce knihovny architektura aplikace

strana 16 Který si vybrat moderní, bezpečný a vyvíjený věnujte pozornost délce podpory vybrané verze vhodný pro můj cíl s dobrou dokumentací používající nástroje, které znám Composer, Git, PhpUnit, + automatizace s velkou (aktivní) komunitou

strana 17 PHP FIG Framework Interop Group skupina vývojářů frameworků PSR doporučení http://www.php-fig.org tzn. že to není závazné

strana 18 Framework VS knihovna Inversion of control Framework řídí vás, knihovnu řídíte vy Framework = ucelená sada myšlenek a postupů složená z knihoven a sladěná tak, aby co nejlépe plnila svůj účel

strana 19 PHP aplikace a databáze DB struktura je součástí aplikace chybějící sloupec způsobí kolaps aplikace problém jsou změny struktury při změnách aplikace kdo mi řekne, že kolega udělal změnu? jak udržet strukturu na všech strojích, kde aplikace běží stejnou? můžu si zapisovat ručně změny?

strana 20 Migrace DB systém pro procedurální tvorbu DB struktury výhodné pro týmy každá změna DB je realizována jako skript podpora rollback (undo) např. systém Phinx nebo součástí frameworku Laravel vhodné i pro různé DB systémy

strana 21 PHP aplikace a databáze Psaní SQL dotazů je otravné a časem stejné DELETE, INSERT, UPDATE SELECT? Entity někdy vyžadují přidanou logiku.

strana 22 ORM Object Relational Mapping mapuje databázi na objekty využívá cizí klíče nebo konfigurační soubory pro relace Vzory (design pattern): Active record Data mapper Generátory kódu

strana 23 ORM výhody a nevýhody výhody není nutné psát jednoduché SQL je nutné upravit strukturu DB některé ORM např. nepodporují kompozitní klíče nevýhody složitější dotazy a spojení tabulek se někdy realizují složitě nová jiná "syntaxe"

strana 24 ORM Active record objekty si řeší práci s DB samy $obj->save(), $obj->delete(); Data mapper práce s DB přes další objekt tzv. "mapper" $mapr->save($obj), $mapr->delete($obj)

strana 25 Active record vs Data mapper co dělat se smazanou instancí? Active record objekt obsahuje DB metody jako insert delete update Data mapper entita neobsahuje DB metody mapper může pracovat nad různými úložišti Mapper může vrátit instanci podle dat

strana 26 Active record vs Data mapper složitější, ale univerzálnější

strana 27 Checkpoint Je MySQL/PostgreSQL součástí serveru Apache nebo PHP? Je lepší používat jen knihovny nebo jen framework? Jsou všechny frameworky stejné? Je ORM lepší než psaní SQL dotazů?