Symfony kurzus 2014/2015 I. félév. Controller, Routing

Hasonló dokumentumok
PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Symfony kurzus 2014/2015 I. félév. Security: authentication, authorization, user provider, role-ok, access control, FOS user bundle

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

Bevezető. Servlet alapgondolatok

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Hálózati architektúrák és Protokollok GI Kocsis Gergely

10.óra CodeIgniter Framework #3. Gyimesi Ákos

Java és web programozás

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Java technológiák - ANTAL Margit. komponensek. A HTTP protokoll. Webkonténerek és szervletek. Egyszerű HTTP. ANTAL Margit.

Web-technológia PHP-vel

MailMasterPlus API. fejlesztői dokumentáció

Hálózati architektúrák és Protokollok GI Kocsis Gergely

KROMESCH SÁNDOR APP FELHŐ. API-k és Webszolgáltatások a Cloudban. Magyarországi Web Konferencia November 8.

JAVA webes alkalmazások

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Tartalom. Objektumorientált fejlesztés HTTP GET HTTP. HTTP REST REST kritikák JAX-RS WCF és REST Elosztott technológiák

Biztonság java web alkalmazásokban

Alapfogalmak, WWW, HTTP

Web-fejlesztés NGM_IN002_1

Webszolgáltatások (WS)

MVC. Model View Controller

Java Servlet technológia

SIP. Jelzés a telefóniában. Session Initiation Protocol

Hálózati architektúrák és Protokollok GI Kocsis Gergely

Web-fejlesztés NGM_IN002_1

Weboldalak fejlesztése mobil eszközökre

Ajax és Echo 2. Bokor Attila

A Http és a PHP kapcsolata. Web-Sky Consulting Kft Tóth Imre 2009

ColourSMS Protokol definíció. Version 1.2

JEE tutorial. Zsíros Levente, 2012

Model View Controller alapú alkalmazásfejlesztés

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Utolsó módosítás:

Széchenyi István Egyetem

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

C#, OOP. Osztályok tervezése C#-ban

Biztonságos PHP a gyakorlatban

4. Gyakorlat: Csoportházirend beállítások

PHP alapjai II. Vincze Dávid Miskolci Egyetem, IIT

Mi is ez? A Ruby nyelvre épülő nyílt forráskódú keresztplatformos MVC (Model-View-Controller) mintára épülő webalkalmazás-keretrendszer

A WEB programozása - JSP1 dr.gál Tibor őszi félév

API tervezése mobil környezetbe. gyakorlat

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

Számítógépes Hálózatok. 8. gyakorlat

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

Mobil Informatikai Rendszerek

Hálózati architektúrák és Protokollok GI - 9. Kocsis Gergely

9.óra CodeIgniter Framework #1. Gyimesi Ákos

Java servlet technológia 1 / 40

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

Rohonczy János: World Wide Web - Világháló

Két tűz között. statikus site generátorok és javascript alkalmazások és a Drupal

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Hálózati architektúrák és Protokollok GI - 8. Kocsis Gergely

Hálózati architektúrák és Protokollok MI 7,8. Kocsis Gergely

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

Internet technológiák

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Szervlet-JSP együttműködés

WEBES ALKALMAZÁSFEJLESZTÉS 1.

Bevezetés Működési elv AJAX keretrendszerek AJAX

Multimédia 2017/2018 II.

Tartalomjegyzék. EKAER Management Service

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms

Using the CW-Net in a user defined IP network

JavaServer Pages (JSP) (folytatás)

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Alkalmazások II. World Wide Web

CodeIgniter keretrendszer

Java servlet technológia. Web alkalmazások. Servlet-et használni érdemes, ha. JSP-t használni érdemes, ha. Servlet-JSP kombináció (MVC) szükséges, ha

Ethernet/IP címzés - gyakorlat

SDI ALKALMAZÁS I. Workspace / ResourceView / Toolbar / IDR_MAINFRAME. Workspace / ResourceView / Menu / IDR_MAINFRAME

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Mikor? Milyen alkalmazásnál?

Sokan nehezen tudják elképzelni, hogy hogyan és hol tudják az jeiket megkapni.

RIA Rich Internet Application

WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok

Szerver oldali technológiák Szerver oldali script nyelvek PHP

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

S z á m í t ó g é p e s a l a p i s m e r e t e k

Mérési útmutató a Secure Shell (SSH) controll és audit című méréshez

C# versus Java. Óbudai Egyetem, Java Standard Edition Mérnök Informatikus szak, BSc Labor 3. Bedők Dávid v0.4

Mobil Informatikai Rendszerek

.NET alapszolgáltatások 2.

PHP5 Új generáció (2. rész)

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

Web technológiák. Barabás Péter, Általános Informatikai Tanszék, Miskolci Egyetem. Barabás Péter Web technológiák 1

WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS

Pénzügyi algoritmusok

Számítógépes Hálózatok

UMN Mapserver és a Grass használata a Geológiában. Soós Dániel, Phd. Hallgató Miskolci Egyetem Geodéziai és Bányaméréstani Intézeti Tanszék

Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW3 SW2. Kuris Ferenc - [HUN] Cisco Blog -

Átírás:

Symfony kurzus 2014/2015 I. félév Controller, Routing

Request - Response GET / HTTP/1.1 Host: xkcd.com Accept: text/html User-Agent: Mozilla/5.0 (Macintosh) HTTP/1.1 200 OK Date: Sat, 02 Apr 2011 21:05:05 GMT Server: lighttpd/1.4.19 Content-Type: text/html <html> <!--... HTML for the xkcd comic --> </html>

Request Response PHP- ban $uri = $_SERVER['REQUEST_URI']; $foo = $_GET['foo']; header('content-type: text/html'); echo 'The URI requested is: '.$uri; echo 'The "foo" value is: '.$foo;

Request Symfony- ban // retrieve GET and POST variables respectively $request->getpathinfo(); $request->query->get('foo'); $request->request->get('bar', 'default value'); // retrieve SERVER variables $request->server->get('http_host'); // retrieves an instance of UploadedFile $request->files->get('foo'); // retrieve a COOKIE value $request->cookies->get('phpsessid'); // retrieve an HTTP request header, with normalized, lowercase keys $request->headers->get('host'); $request->headers->get('content_type'); // GET, POST, PUT, DELETE, HEAD $request->getmethod(); // an array of languages the client accepts $request->getlanguages();

Response Symfony- ban use Symfony\Component\HttpFoundation\Response; $response = new Response(); $response->setcontent( <html><body><h1>hello world!</h1></body></html>'); $response->setstatuscode(response::http_ok); $response->headers->set('content-type', 'text/ html'); - A Response egy Symfony objektum - Lényegében bármilyen értelmezhető kimenet lehet - HTML, XML, JSON, kép, redirect, stb.

Request útja 1. Front controller kap egy kérést 2. A kernel továbbítja a megfelelő controllerhez 3. A controller feldolgozza a kérést 4. A controller előállítja a választ 5. A választ továbbítjuk a felhasználóhoz

Helye általában PeldaBundle/Controller Controller Egy controller több feladatot lát el Ezekhez a feladatokhoz úgynevezett action -t fogunk definiálni Egy-egy action fogja a kérést válasszá alakítani Elnevezése: bundle:controller:action AcmeBlogBundle:Blog:show AcmeBlogBundle Blog controller showaction metódus

Egyszerű controller //src/acme/hellobundle/controller/hellocontroller.php namespace Acme\HelloBundle\Controller; use Symfony\Component\HttpFoundation\Response; class HelloController { public function indexaction($name) { return new Response('<html><body>Hello '.$name.'!</body></html>'); } }

Gyakori controller feladatok Redirect: return $this->redirect( ); $this->generateurl('homepage') Forward: $response = $this->forward( AcmeHelloBundle:Hello:fancy', array( )); 'name' => $name, 'color' => 'green', return $response;

Gyakori controller feladatok Template renderelés: // Resources/views/Hello/index.html.twig $content = $this->renderview( 'AcmeHelloBundle:Hello:index.html.twig', ); array('name' => $name) return new Response($content); Symfony service-ek elérése: $request = $this->getrequest(); $templating = $this->get('templating'); $router = $this->get('router'); $mailer = $this->get('mailer');

Gyakori controller feladatok Flashbag üzenetek megjelenítése: public function updateaction() { $form = $this->createform(...); $form->bind($this->getrequest()); if ($form->isvalid()) { // do some sort of processing $this->get('session') ->getflashbag() ->add('notice', 'Message'); return $this->redirect( $this->generateurl(...) ); } return $this->render(...); }

Response // create a simple Response with a 200 status code (the default) $response = new Response('Hello '. $name, 200); // create a JSON-response with a 200 status code $response = new Response( json_encode(array('name' => $name)) ); $response->headers->set('content-type', 'application/json');

RouCng Hogyan kössük össze a Requestet a megfelelő controller funkcióval? Route-ok segítségével meghatározzuk, hogy melyik URL-hez melyik controller action fut le Definiálása több helyen és módon lehetséges: Globálisan: app/config/routing.(yml xml php) Lokálisan: annotációk segítségével

Blog példa: blog: path: /blog/{page} defaults: { _controller: Globális roucng AcmeBlogBundle:Blog:index, page: 1 } methods: [GET] requirements: page: \d+

Annotációk Lokális roucng PHP komment blokkban definiált funkciók class PostController extends Controller { /** * @Route("/{id}", requirements={"id" = "\d+"}, name="blog") * @Route("/", defaults={"id" = 1}) */ public function indexaction($id) { //... } } Szükséges globális config: app/config/routing.yml post: resource: "@AcmeBlogBundle/Controller/ PostController.php" type: annotation

Route prefix Annotációk esetén az osztály annotációjában definiálhatóak /** * @Route("/blog") */ class PostController extends Controller { /** * @Route("/edit/{id}", name="blog_edit") * @Method({"GET", "POST"}) */ public function editaction($id) { } }