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

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

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

CodeIgniter keretrendszer

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

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

JavaServer Pages (JSP) (folytatás)

WEBES ALKALMAZÁSFEJLESZTÉS 1.

Model View Controller alapú alkalmazásfejlesztés

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

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

12.óra jquery Framework #1. Gyimesi Ákos

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Biztonságos PHP a gyakorlatban

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

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

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

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

WEBES ALKALMAZÁSFEJLESZTÉS 1.

MVC. Model View Controller

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

Internet technológiák

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Web programozás I. 4. előadás

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

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

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

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

Biztonság java web alkalmazásokban

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

JAVA SE/ME tanfolyam tematika

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

WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK

Web-fejlesztés NGM_IN002_1

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

Smarty AJAX. Miért jó ez? Ha utálsz gépelni, akkor tudod. Milyen műveletet tudunk elvégezni velük:

Csináld magad naplóelemzés syslog-ng-vel

Access adatbázis elérése OLE DB-n keresztül

Adatbázis-kezelés ODBC driverrel

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

WEBES ALKALMAZÁSFEJLESZTÉS 1.

RIA Rich Internet Application

Java Programozás 11. Ea: MVC modell

JEE tutorial. Zsíros Levente, 2012

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Cserép Máté.

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();

Széchenyi István Egyetem

ANDROID ALKALMAZÁSFEJLESZTÉS

A JavaScript főbb tulajdonságai

PHP. Adatbázisok gyakorlat

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

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

Struts2 keretrendszer

Természetesen készíts egy csempe nevű könyvtárat és ide mentsd az index.html állományt.

Objective-C PPKE-ITK

Webes űrlapok és az XForms ajánlás

Weboldalak Biztonsági Kérdései

Bánsághi Anna

3. Osztályok II. Programozás II

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

JAVA webes alkalmazások

OOP #14 (referencia-elv)

Forráskód formázási szabályok

webalkalmazások fejlesztése elosztott alapon

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira

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

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás Szükséges névterek Attribútumok. 1.3.

Az SQL*Plus használata

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Újdonságok és érdekességek CONSEDU BT.

Python modul készítés QGIS 2.8

Tulajdonságalapú tesztelés

Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Smalltalk 2. Készítette: Szabó Éva

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

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

MDAC - Microsoft Data Access Components

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

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

Programozási nyelvek Java

A szerzõrõl... xi Bevezetés... xiii

AWK programozás, minták, vezérlési szerkezetek

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

Osztály és objektum fogalma

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

Collections. Összetett adatstruktúrák

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

Adatbázisok webalkalmazásokban

SZERVER OLDALI JAVASCRIPT. 8. hét MongoDB, séma tervezés, performancia kérdések

Eddig még nem használt vezérlőket is megismerünk: PlaceHolder, RadioButtonList.

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő A PHP programozási nyelv JDBC, ODBC

Elektronikus szolgáltatás igénylés megvalósítása a NIIFI-ben. 2011/11/10 HBONE Workshop. Kiss Zoltán

Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver

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

Átírás:

10.óra CodeIgniter Framework #3 Gyimesi Ákos gyimesi.akos@gmail.com http://webprog.gy-i-m.com

Ismétlés Model View Controller

Ismétlés Model application/models/books_model.php: class Books_model extends Model { function Books_model() { parent::model(); function getallbooks() { return $this->db->get('books')->result(); View Controller

Ismétlés Model View application/views/book_index.php: <?php include dirname( FILE ). '/header.php');?> <?php foreach ($books as $book):?> <div class= book > <h2><?= $book->title?></h2> <p class= description ><?= $book->description?></p> </div> <?php endforeach;?> <?php include dirname( FILE ). '/footer.php');?> Controller

Ismétlés Model View Controller application/controllers/book.php: class Book extends Controller { function Book() { parent::controller(); $this->load->model('books_model'); function index() { $this->load->view('book_index', array( 'books' => $this->books_model->getallbooks() ));

Mi van még hátra? CodeIgniter kiterjesztések : Űrlapkezelés Munkamenet (session) kezelés URL előállítás...

Session kezelés application/controllers/book.php: class Book extends Controller { function Book() { parent::controller(); $this->load->library('session'); function index() { if ($this->input->get('add_id')) { $cart = $this->session->userdata('cart'); Session modul betöltése Olvasás a session-ből if (!$cart) $cart = array(); $cart[] = $this->input->get('add_id'); Írás a session-be $this->session->set_userdata('cart');

Session kezelés CodeIgniter session vs $_SESSION Testreszabható lejárat ideje titkosítás IP- és böngésző alapú szűrés adatbázisban tárolás Egy hasznos funkció: $this->session->flashdata() a megadott adat a következő kérésben kiolvasható, utána eltűnik tipikus felhasználás: redirect utáni egyszeri üzenet Sikeresen megrendelted a könyvet!

Űrlapkezelés Miket tud? Első betöltéskor default érték beírása a mezőkbe POST-olás után: validáció: kötelező mező, email, szám,... validáció sikerességének lekérdezése hibaüzenetek kiírása (előregyártott / beállított) POST-olt adatok visszaírása a mezőkbe (escape-elve)

Űrlapkezelés Részei: Űrlap validáció form_validation library Űrlap kirajzolását segítő függvények form helper

Űrlapkezelés Controller: application/controllers/book.php: class Book extends Controller { function Book() { parent::controller(); $this->load->library('form_validation'); $this->load->helper('form'); űrlap modulok betöltése

Űrlapkezelés Controller: application/controllers/book.php: class Book extends Controller { function Book() {... Szabálylánc: 1. Vágd le a spaceeket 2. Ellenőrizd, hogy nem üres-e 3. Ellenőrizd, hogy valid email-e function order() { $this->form_validation->set_rules( 'name', 'Name', 'trim required' ); $this->form_validation->set_rules( 'email', 'Email', 'trim required valid_email' ); if ($this->form_validation->run()) { // Valid a form $this->load->view('book_order');

Űrlapkezelés View: application/views/book_order.php: URL generáló segédfüggvény <form method= post action= <?= site_url('/book/order')?> > <?= validation_errors()?> <div class= form-field > <label for= name >Name:</label> hibák kiírása <input id= name type= text name= name value= <?= set_value('name')?> /> </div> <div class= form-field > <label for= email >Email:</label> <input id= email type= text name= name value= <?= set_value('email')?> /> </div> <div class= submit > <input type= submit value= OK /> </div> </form> post-olt érték visszaírása (escape-elve)

Űrlapkezelés Controller POST-olt adatok feldolgozása: application/controllers/book.php: class Book extends Controller { function order() { //... if ($this->form_validation->run()) { $postdata = array( 'name' => $this->input->post('name'), 'email' => $this->input->post('email') ); // Do something with $postdata $this->load->view('book_order'); validáció sikerességének lekérdezése POST-olt adatok lekérdezése

CodeIgniter kiterjesztések Tipikus minta a controller-ekben: $this->load() lesz egy objektumváltozónk a betöltött modullal $this->load->model('books_model'); $this->books_model->getallbooks(); $this->load->database(); $this->db->get(...) $this->load->library('session'); $this->session->set_userdata('cart', array());

CodeIgniter kiterjesztések Miket lehet így betölteni? Model-ek $this->load->model('books_model'); betöltött file: application/models/books_model.php fájl tartalma: class Books_model extends Model hatására lesz egy $this->books_model Adatbázis $this->load->database() hatására lesz egy $this->db

CodeIgniter kiterjesztések Miket lehet így betölteni? Library-k $this->load->library('session'); $this->load->library('form_validation'); hatására lesz egy $this->session ill. $this->form_validation objektum, ezek metódusait használjuk Mi is írhatunk library-ket! Helper-ek $this->load->helper('url'); $this->load->helper('form'); hatására segédfüggvényeink lesznek: site_url(), redirect(), set_value() stb. Mi is írhatunk helper-eket!

CodeIgniter kiterjesztések Beépített Library-k calendar cart email encrypt upload form_validation ftp table image_lib pagination session trackback parser typography unit_test user_agent xmlrpc zip

CodeIgniter kiterjesztések Saját library írása: application/libraries/mylib.php: class Mylib { function addnumbers($a, $b) { return $a+$b; controller: $this->load->library('mylib'); $result = $this->mylib->addnumbers(1, 2);

CodeIgniter kiterjesztések Meglévő library kiterjesztése application/libraries/my_session.php: class MY_Session { function MY_Session() { parent::session(); function cart() { $cart = $this->userdata('cart'); return ($cart? $cart : array()); controller: $this->load->library('session'); $cart = $this->session->cart();

CodeIgniter kiterjesztések Library használata library-ből: application/libraries/mylib.php: =&: class Mylib { PHP4 objektumok = hatására másolódnak, function Mylib() { (PHP5 objektumok: referencia másolódik) $this->ci =& get_instance(); $this->ci->load->library('session'); function getlastvalue() { return $this->ci->session->userdata('mylib_value'); function setvalue($value) { return $this->ci->session ->set_userdata('mylib_value', $value);

Űrlapkezelés Részei: Űrlap validáció form_validation library Űrlap kirajzolását segítő függvények form helper Miket tud? Első betöltéskor default érték beírása a mezőkbe POST-olás után: validáció, sikeresség lekérdezése hibaüzenetek kiírása POST-olt adatok visszaírása a mezőkbe (escape-elve)

CodeIgniter kiterjesztések Beépített Helper-ek array compatibility cookie date directory download email file form html inflector language number path security smiley string text typography url xml

CodeIgniter kiterjesztések Helper-ek: egyszerű segédfüggvény gyűjtemények betöltésük: $this->load->helper('helpername'); használat: controller-ben vagy view-ban saját helper létrehozása: system/application/helpers/myhelper_helper.php ki lehet terjeszteni a meglévő helper-eket (új függvények hozzáadásával): MY_url_helper.php néven

CodeIgniter kiterjesztések Kiterjesztések automatikus betöltése: application/config.php: $autoload['libraries'] = array(...) $autoload['helper'] = array(...)

CodeIgniter kiterjesztések Egyéb kiterjesztési formák: Plugin-ek 1db osztály, 1db metódus controller-ben vagy view-ban használható (vö. library: csak controller-ben) tipikus felhasználása: alkalmazások között megosztható kód, ami controller-ben és view-ban is kell (pl. captcha)

CodeIgniter kiterjesztések Egyéb kiterjesztési formák: Hook-ok: oldalbetöltés lépései előtt/után végrehajtódó függvények hook típusok: pre_system pre_controller post_controller_constructor post_controller display_override cache_override scaffolding_override post_system csak ritkán kell, óvatosan használjuk!