I.Wojnicki, JiTW. Frameworks oraz Serwery Aplikacji. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie

Podobne dokumenty
I.Wojnicki, PHP. Smarty. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie. 28 marca 2014

I.Wojnicki, Tech.Inter.

Kompozycja Proceduralna

media Blitz wydajne sytemy szablonów

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Smarty PHP. Leksykon kieszonkowy

NoSQL Not Only SQL: CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Przetwarzanie dokumentów i widoków.

L eszek Sewastianowicz P odstawy systemu szablonów Smarty 1

Bazy Danych i Usługi Sieciowe

Wybrane działy Informatyki Stosowanej

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

Tomasz Grześ. Systemy zarządzania treścią

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PHP: bloki kodu, tablice, obiekty i formularze

Laboratorium 1 Wprowadzenie do PHP

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

SIECI KOMPUTEROWE I BAZY DANYCH

Programowanie internetowe

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

MVC w praktyce tworzymy system artykułów. cz. 1

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Umieszczanie kodu. kod skryptu

SSK - Techniki Internetowe

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem

NoSQL Not Only SQL, CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Igor Wojnicki

Zaawansowany kurs języka Python

Instalacja i uruchomienie Na stronie domowej projektu Smarty znajdziemy między innymi dokumentację oraz najnowszą wersję oprogramowania.

Technologie Informacyjne

Wprowadzenie do framework a Symfony

PHP zaawansowane programowanie

WPROWADZENIE. Użycie PHP

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Szablon główny (plik guestbook.php) będzie miał postać:

Facelets ViewHandler

Wybrane działy Informatyki Stosowanej

OPT Open Power Template. System szablonów OPT. Przykładowy skrypt oraz szablon OPT OPT API

Obiektowe bazy danych

Michał Bielecki, KNI 'BIOS'

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki skryptowe - PHP. Podstawy PHP. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Nazwa Platforma Wspierane bazy danych Ostatnia stabilna wersja

Wymagania edukacyjne z przedmiotu Witryny i aplikacje internetowe klasa 2iA. tworzenia stron. animację - multimedia

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Języki programowania wysokiego poziomu. Ćwiczenia

INSTALACJA I KONFIGURACJA SERWERA PHP.

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

Aplikacje WWW Wprowadzenie

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Podstawy JavaScript ćwiczenia

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

I.Wojnicki, JiTW. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie.

Programowanie w Internecie. Podstawy użycia JSP. Paweł Kasprowski. vl06z

REFERAT O PRACY DYPLOMOWEJ

System operacyjny Linux

Języki skryptowe w programie Plans

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Tomasz Grześ. Systemy zarządzania treścią, cz. II

Technologie informacyjne lab. 4

Ekspert MS SQL Server Oferta nr 00/08

Podstawy wzorca MVC MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.

Współczesne serwisy internetowe. Wykład 1 Dr Krzysztof Podlaski

Praca Dyplomowa Magisterska

Wybrane działy Informatyki Stosowanej

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Wymagania edukacyjne: Statyczne witryny internetowe (na podstawie programu nr )

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Zaawansowane aplikacje internetowe

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Specyfikacja implementacyjna aplikacji serwerowej

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Tworzenie raportów XML Publisher przy użyciu Data Templates

O stronach www, html itp..

Programowanie współbieżne i rozproszone

Wykład 03 JavaScript. Michał Drabik

Dlaczego PHP? - zalety

Aplikacje WWW - laboratorium

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Witryny i aplikacje internetowe

Języki programowania wysokiego poziomu. PHP cz.2.

Internetowe bazy danych

CMS - Joomla. Autor: Cyryl Sochacki Mail: cyryllo@task.gda.pl WWW:

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Tworzenie Stron Internetowych. odcinek 10

Transkrypt:

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 1 / 41 Frameworks oraz Serwery Aplikacji Igor Wojnicki Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie 22 stycznia 2014

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 2 / 41 Spis Treści 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 3 / 41 Outline Smarty: Cele 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Smarty: Cele Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 4 / 41 Charakterystyka Template/Presentation Framework tworzenie interfejsu. Buforowanie. Programowanie PHP Definiowanie szablonów (ograniczony język znaczników). Szablony do typowych zastosowań: Tabele, Formularze. Kompilacja on-the-fly do kodu PHP. http://www.smarty.net

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 5 / 41 Cel Smarty: Cele Separacja modelu oraz interfejsu (wizualizacji): Model/View (zastosowanie koncepcji MVC). Model: PHP. przyporzadkowanie logicznej struktury generowanym danym: tytuł, paragraf, zawartość tabeli, autor etc. View: Szablony. prezentacja struktury: HTML(statyczne oraz generowane przez PHP)+CSS.

Smarty: Cele Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 6 / 41 Wersje Smarty 3.x: PHP 5.2+ Smarty 2.x: PHP 4 lub 5

Smarty: Cele Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 7 / 41 Zalety Model/View Projektant interfejsu nie może zepsuć modelu. Interfejs może być przeprojektowany bez konieczności zmiany/modyfikacji modelu. Programista koncentruje się na modelu, nie na interfejsie.

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 8 / 41 Outline Instalacja 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 9 / 41 Instalacja Instalacja tar xvfz Smarty-stable.tar.gz mkdir templates templates_c configs cache chmod a+xr cache/ configs/ templates/ chmod a+w templates_c/ cache/

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 10 / 41 Test instalacji Instalacja index.php <?php require(./smarty-3.1.7/libs/smarty.class.php ); $smarty = new Smarty(); $smarty->testinstall();?>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 11 / 41 Test instalacji, rezultat, cd. Instalacja <PRE> Smarty Installation test... Testing template directory... /home/users/vip/wojnicki/public_html/smarty/templates is OK. Testing compile directory... /home/users/vip/wojnicki/public_html/smarty/templates_c is OK. Testing plugins directory... /home/users/vip/wojnicki/public_html/smarty/smarty-3.1.7/libs/plugins is O Testing cache directory... /home/users/vip/wojnicki/public_html/smarty/cache is OK. Testing configs directory... /home/users/vip/wojnicki/public_html/smarty/configs is OK. Testing sysplugin files...... OK Testing plugin files...... OK Tests complete. </PRE>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 12 / 41 Test instalacji, typowe błędy Instalacja <PRE> Smarty Installation test... Testing template directory... /home/users/vip/wojnicki/public_html/smarty/templates is OK. Testing compile directory... FAILED: /home/users/vip/wojnicki/public_html/smarty/templates_c is not writable. Testing plugins directory... /home/users/vip/wojnicki/public_html/smarty/smarty-3.1.7/libs/plugins is O Testing cache directory... FAILED: /home/users/vip/wojnicki/public_html/smarty/cache is not writable. Testing configs directory... /home/users/vip/wojnicki/public_html/smarty/configs is OK. Testing sysplugin files...... OK Testing plugin files...... OK Tests complete. </PRE>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 13 / 41 Instalacja Test instalacji, prosta aplikacja index.php <?php require(./smarty-3.1.7/libs/smarty.class.php ); $smarty = new Smarty(); $smarty->assign( imie, Ned ); $smarty->display( index.tpl );?>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 14 / 41 Test instalacji, szablon Instalacja templates/index.tpl <html> <head> <title>smarty</title> </head> <body> Czesc, {$imie}! </body> </html>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 15 / 41 Test instalacji, rezultat Instalacja templates/index.tpl <html> <head> <title>smarty</title> </head> <body> Czesc, Adam! </body> </html>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 16 / 41 Outline 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 17 / 41 Model index.php 1 include( Smarty.class.php ); // utwórz obiekt $smarty = new Smarty; $smarty->assign( nazwisko, adam kowalski ); $smarty->assign( adres, 45th & Harris ); // użyj wzorca $smarty->display( index.tpl ); 1 Na podstawie: http://www.smarty.net/crash_course

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 18 / 41 View index.tpl <html> <head> <title>osoba</title> </head> <body> <p>informacje osobowe: <p> Nazwisko: {$nazwisko}<br> Adres: {$adres}<br> </body> </html> wyjście <html> <head> <title>osoba</title> </head> <body> <p>informacje osobowe: <p> Nazwisko: adam kowalski<br> Adres: 45th & Harris<br> </body> </html>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 19 / 41 Konkurencyjny View Użycie modyfikatorów logika prezentacji. index.tpl wyjście: <html> <head> <title>osoba</title> </head> <body> <p>informacje: <p> {$nazwisko capitalize}<br> Adres: {$adres escape}<br> Data: {$smarty.now date_format:"%y-%m-%d"}<br> </body> </html> <html> <head> <title>osoba</title> </head> <body> <p>informacje <p> Adam Kowalski<br> Adres: 45th & Harris<br> Data: 2003-12-19<br> </body> </html>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 20 / 41 Funkcje View I index.tpl wartość title tylko dla wskazanego pliku. {include file="header.tpl" title="informacje osobowe"} <p>informacje <p> Nazwisko: {$nazwisko capitalize}<br> Adres: {$adres escape}<br> {include file="footer.tpl"}

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 21 / 41 Funkcje View II header.tpl wartość domyślna title jeżeli nie jest przekazana. <html> <head> <title>{$title default:"brak tytułu"}</title> </head> <body> footer.tpl </body> </html>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 22 / 41 Funkcje View III wyjście: <html> <head> <title>informacje osobowe</title> </head <p>informacje <p> Nazwisko: Adam Kowalski<br> Adres: 45th & Harris<br> </body> </html>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 23 / 41 Funkcje generujace HTML I index.php include( Smarty.class.php ); // utwórz obiekt $smarty = new Smarty; // wartościami atrybutów mogą być tablice $smarty->assign( id, array(1,2,3,4,5)); $smarty->assign( imiona, array( bob, jim, joe, jerry, fred )); // użyj wzorca $smarty->display( index.tpl );

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 24 / 41 Funkcje generujace HTML II index.tpl <select name="user"> {html_options values=$id output=$imiona selected="5"} </select> wyjście: <select name="user"> <option label="bob" value="1">bob</option> <option label="jim" value="2">jim</option> <option label="joe" value="3">joe</option> <option label="jerry" value="4">jerry</option> <option label="fred" value="5" selected="selected">fred</option> </select>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 25 / 41 Pętle w View I index.php include( Smarty.class.php ); // utwórz obiekt $smarty = new Smarty; // złożone dane $smarty->assign( imie, array( bob, jim, joe, jerry, fred )); // tablice asocjacyjne $smarty->assign( users, array( array( imie => bob, tel => 555-3425 ), array( imie => jim, tel => 555-4364 ),

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 26 / 41 Pętle w View II array( imie => joe, tel => 555-3422 ), array( imie => jerry, tel => 555-4973 ), array( imie => fred, tel => 555-3235 ) )); // display it $smarty->display( index.tpl );

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 27 / 41 Pętle w View III index.tpl <table> {section name=i loop=$imie} {strip} <tr class="{cycle values="n,p"}"> <td>{$imie[i]}</td> </tr> {/strip} {/section} </table>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 28 / 41 Pętle w View IV <table> {section name=i loop=$users} {strip} <tr class="{cycle values="n,p"}"> <td>{$users[i].imie}</td> <td>{$users[i].tel}</td> </tr> {/strip} {/section} </table>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 29 / 41 Pętle w View V wyjście: <table> <tr class="n"><td>bob</td></tr> <tr class="p"><td>jim</td></tr> <tr class="n"><td>joe</td></tr> <tr class="p"><td>jerry</td></tr> <tr class="n"><td>fred</td></tr> </table><table> <tr class="n"><td>bob</td><td>555-3425</td></tr> <tr class="p"><td>jim</td><td>555-4364</td></tr> <tr class="n"><td>joe</td><td>555-3422</td></tr> <tr class="p"><td>jerry</td><td>555-4973</td></tr> <tr class="n"><td>fred</td><td>555-3235</td></tr> </table>

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 30 / 41 Outline Użyteczne modyfikatory 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 31 / 41 Modyfikatory I Użyteczne modyfikatory count_characters ilość znaków count_paragraphs ilość akapitów (oddzielone pusta linia) count_sentences ilość zdań lower zamiana znaków na małe upper zamiana znaków na duże replace zastap ciag znaków string_format formatowanie danych, podobnie jak format dla printf strip usunięcie wielokrotnych spacji, znaku nowej linii, tabulatora strip_tags usuwa znaczniki HTML truncate obcinanie łańcucha znaków escape zastapienie znaków encjami unescape zastapienie encji znakami

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 32 / 41 Outline Użyteczne funkcje 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 33 / 41 Funkcje I Użyteczne funkcje {capture} przypisanie fragmentu wzorca do zmiennej {for} {foreach} {while} pętle {if} {elseif} {else} konstrukcje warunkowe {function} funkcje

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 34 / 41 Outline Serwery Aplikacji Zope 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Serwery Aplikacji Zope Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 35 / 41 Zope: Charakterystyka Kompletny serwer aplikacji: Model, View. Oparty o Python. Koncepcja obiektowej bazy danych. Kombajn, integruje języki wysokiego poziomu, szablony, bazę danych. Szeroka gama dostępnych modułów: obsługa dokumentów, galerii zdjęć, blogów, wiki. Zarzadzany poprzez interfejs Web. Ścisła kontrola dostępu (użytkownicy). Open Source. http://www.zope.org

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 36 / 41 Zope: zarzadzanie Serwery Aplikacji Zope

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 37 / 41 Zope: aplikacja Serwery Aplikacji Zope

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 38 / 41 Outline Serwery Aplikacji Inne 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Serwery Aplikacji Inne Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 39 / 41 Inne J2EE (JSP), Java EE, (SUN) specyfikacja, produkty: Sun Java System Application Server, http://www.sun.com JBoss (Open Source), http://www.jboss.org. WebSphere (IBM), http://www.ibm.com/software/websphere/. Ruby on Rails (Open Source) silne użycie koncepcji MVC, http://www.rubyonrails.org.

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 40 / 41 Zarzadzanie Treścia Systemy zarzadzania treścia CMS Content Management System (nie mylić z Course Management System!) System Zarzadzania Treścia. Drupal. Joomla. Wiki MediaWiki. DokuWiki.

Igor Wojnicki (AGH, KIS) Frameworks 22 stycznia 2014 41 / 41 Zarzadzanie Treścia Systemy Zarzadzania Dokumentami CMS: Content Management System!!! (nazwa poważnie przeciażona), bardziej szczęśliwa nazwa: ECM: Enterprise Content Management. Documentum, EMC, www.emc.com. Alfresco, www.alfresco.com, (Opensource). Nuxeo, www.nuxeo.org, (Opensource).