PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette



Podobné dokumenty
IS pro podporu BOZP na FIT ČVUT

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

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

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

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

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

Analýza a Návrh. Analýza

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

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

Matematika v programovacích

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

IB111 Programování a algoritmizace. Programovací jazyky

Architektura aplikace

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

TÉMATICKÝ OKRUH Softwarové inženýrství

1. Struktura stránky, zásady při psaní kódu, MVC pattern. Web pro kodéry (Petr Kosnar, ČVUT, FJFI, KFE, PINF 2008)

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

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

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

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Vývoj informačních systémů. Přehled témat a úkolů

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

MVC (Model-View-Controller)

Reranking založený na metadatech

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

INFORMAČNÍ SYSTÉMY NA WEBU

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

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

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

Vývoj informačních systémů. Přehled témat a úkolů

Obsah. Zpracoval:

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Programovací jazyky Přehled a vývoj

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

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

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

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

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

Vstupní požadavky, doporučení a metodické pokyny

Olga Rudikova 2. ročník APIN

KIV/PIA Semestrální práce

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

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

CineStar Černý Most Praha

CZ.1.07/1.5.00/

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

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

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

Web. Získání informace z internetu Grafické zobrazení dat a jejich struktura Rozšíření funkcí pomocí serveru Rozšíření funkcí pomocí prohlížeče

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

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

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová

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

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

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

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

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

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI

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

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

E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka

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

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

MODULÁRNÍ REDAKČNÍ SYSTÉM (CMS), SE ZAMĚŘENÍM PRO FIREMNÍ

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

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

TÉMATICKÝ OKRUH Softwarové inženýrství

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Semináˇr Java X J2EE Semináˇr Java X p.1/23

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

Common Object Request Broker Architecture

Programování II. Modularita 2017/18

Úvod do aplikací internetu a přehled možností při tvorbě webu

Architektura softwarových systémů

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

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

PB161 Programování v jazyce C++ Přednáška 7

1 Webový server, instalace PHP a MySQL 13

Manuál pro implementaci aplikace Balík Do balíkovny

REGIONÁLNÍ INFORMAČNÍ SYSTÉM S PODPOROU MAP

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

PB161 Programování v jazyce C++ Přednáška 7

Úvod do tvorby internetových aplikací

AUTOMATICKÉ ŘÍZENÍ S INTERNETOVOU KOMUNIKACÍ V PHP Automatic Control with Internet Communication in PHP

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Informační systém autoškoly

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Nástroje na vývoj aplikací pro ios Trocha motivace na úvod Co budete potřebovat Co když nemáte k dispozici počítač s macos? Vývojové prostředí Xcode

Stručný úvod pro programátory. Michal Kuchta

Instalace a konfigurace web serveru. WA1 Martin Klíma

Úvod. Programovací paradigmata

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

SYLABUS IT V. Jiří Kubica. Ostrava 2011

Transkript:

Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá především z jednoduché syntaxe a pozvolné křivky učení. PHP je open-source a je vydáno pod PHP licencí v3.01[1]. PHP je jazyk interpretovaný a to na straně serveru. Původním záměrem vzniku jazyka bylo umožnit programátorům jednoduše a rychle vyvíjet dynamické webové stránky. Tato skutečnost vedla k tomu, že se hlavní hnací silou stala rozsáhlá databáze funkcí. Ukázalo se, že PHP je dostatečně výkonné na to, aby v něm mohly být napsány i rozsáhlé projekty a komplexní webové aplikace. Jeho původní procedurální přístup ale nebyl pro takové řešení optimální. Proto PHP od své čtvrté verze obsahuje podporu pro objektově orientované programování. Nové možnosti jazyka nenabízí pro takový koncept programování dostatečné zázemí. Vzniká proto množství frameworků, které se snaží tento nedostatek řešit. Jedním z nich je i framework Nette. 1.2 Architektura Nette Nette je objektově orientovaný balíček tříd, které zefektivňují vývojářovu práci při vývoji webové aplikace. Framework je založen na MVC 1 přístupu. Knihovna hojně využívá návrhového vzoru convention-over-configuration 2. Framework je rozdělen do několika části a ty jsou na sobě nezávislé. 0 Framework je softwarová struktura, která slouží jako podpora při programování a vývoji a organizaci jiných softwarových projektů[2]. 1 Model-View-Controller je softwarová architektura, která rozděluje datový model aplikace, uživatelské rozhraní a řídicí logiku do tří nezávislých komponent tak, že modifikace některé z nich má minimální vliv na ostatní[3]. 2 Princip convention-over-configuration snižuje množství práce, kterou by bylo jinak nutné vynaložit pro správné nastavení a propojení aplikace. 1

1.2.1 Komponenty frameworku Model Model tvoří rozhraní pro práci s daty. Různé aplikace mají rozdílné datové modely a každý takový model je specifický pro jinou aplikaci. Proto není rozhraní modelu ničím zastřešeno a způsob implementace je volný. Nette neobsahuje žádné podpůrné třídy pro vývoj této komponenty. View Pohled prezentuje stav aplikace uživateli. V případě webových stránek to jsou HTML dokumenty. Pohled by měl být nezávislý na modelu a převážně i na řadiči. Obsah jeho zpracování by měly být pouze jednoduché iterace a větvení. Pohled nemá vyvolávat žádnou změnu v aplikaci, proto by měl být oproštěn od logiky aplikace samotné. Díky tomu lze pohled upravit či zaměnit, aniž by to vyvolávalo nutnou změnu jiné části aplikace. U rozsáhlých aplikací není možné spravovat každou stránku samostatně. Takové řešení by bylo příliš časově náročné, nepřívětivé pro případnou změnu a náchylné k nekonzistenci. Nette proto poskytuje v této oblasti značné zjednodušení v podobě šablon. Šablony jsou dokumenty, jejichž zpracováním je sestavena výsledná HTML stránka. Správnou volbou hiearchie šablon je docíleno DRY 3 konceptu v pohledových komponentách. Tím se značně snižují původní rizika a navíc se kód stává snadno spravovatelným. Šablony zpracovává třída Template. Při vytváření instance třídy je jako parametr předána cesta k šabloně. Při požadavku o vykreslení šablony je tato intepretována jako PHP skript. K dispozici jsou proměnné, které v předchozím životním cyklu aplikace nastavil řadič (viz níže). Návrhář vzhledu aplikace není programátor a psaní šablon v PHP tvoří při výkonu jeho práce překážku. Proto lze šabloně zaregistrovat tzv. filtry. Filtry fungují jako preprocesory; šablonu před samotným vyhodnocením upraví. Tím můžeme sestavit vlastní syntaxi pro šablony a udělat je tak uživatelsky příjemné i pro neprogramátory. Nette pro tento účel poskytuje jako jeden ze základních filtrů CurlyBracketsFilter. Controller Řadič je výkonné jádro aplikace. Obsahuje veškerou logiku aplikace a tedy se jedná o primární komponentu. Jako jediná ze všech MVC komponent není nahraditelná. Řadič zprostředkovává samotné vykonávání operací v aplikaci. Komunikuje s datovým modelem a zpracovaná data z něj přeposílá pohledu, který je následně prezentuje uživateli. V Nette frameworku funkci řadiče zastávají potomci odvození od třídy Presenter. Tato třída prochází při zpracování třemi fázemi výkonnou, vy- 3 Don t repeat yourself. Vychází z principu slučováních stejných částí aplikace. 2

hodnocovací a vykreslovací. Ve fázi první se vyhodnocuje požadavek obdržený od uživatele (HTTP požadavky) tzv. akce. Ve fázi druhé se vyhodnocuje výsledek a vybírá pohled. Na stejnou akci tak lze odpovědět různými pohledy. Ve fázi poslední se předávají potřebné parametry výslednému pohledu (šabloně). Z těchto parametrů potom pohled čerpá a prezentuje podle nich výsledek. 1.2.2 URL abstrakce Jedním z požadavků, které jsou na moderní webové prezentace kladeny, jsou tzv. SEO 4 URLs. To jsou adresy obsahující klíčová slova stránky (zbavena diakritiky a interpunkce) a svou kompozicí odrážejí skutečnou logickou strukturu webu. Stránky splňující výše uvedené kritérium získávají lepší pozici ve vyhledávačích. Nette framework funguje na bázi URL abstrakce. Tvar a vzhled adres jednotlivých stránek lze kdykoliv změnit. K dosažení této vlastnosti slouží technika zvaná routování. Routa je obecný předpis webové adresy, který má být aplikován. Rozhraní IRouter definuje povinné metody, které musí routa obsahovat. Třída Router toto rozhraní implementuje a je základní součástí frameworku. S využitím této třídy můžeme vytvořit vlastní vzor adres, pomocí nichž budou tvořeny odkazy na samostatné stránky aplikace. Routy lze seskupovat do množin, jejichž namapování zpracovává třída MultiRouter, která také implementuje rozhraní IRouter. 4 Search engine optimization. 3

Rejstřík controller, 2 framework, 1, 2 model, 2 PHP, 1 URL, 3 view, 2 4

Literatura [1] T. P. Group. Php: License information, 2001. [Online; dostupné z http: //www.php.net/license/; navštíveno 23. 4. 2009]. [2] Wikipedie. Framework wikipedie: Otevřená encyklopedie, 2009. [Online; dostupné z http://cs.wikipedia.org/w/index.php?title= Framework&oldid=3574665; navštíveno 5. 20. 2009]. [3] Wikipedie. Model-view-controller wikipedie: Otevřená encyklopedie, 2009. [Online; dostupné z http://cs.wikipedia.org/w/index.php? title=model-view-controller&oldid=3911881; navštíveno 5. 20. 2009]. 5