Webes alkalmazások helyes szerkezete PHP-ban
|
|
- Alexandra Szabóné
- 8 évvel ezelőtt
- Látták:
Átírás
1 Webes alkalmazások helyes szerkezete PHP-ban Konstantinusz Kft. 2010
2 1. Tartalomjegyzék 1. Tartalomjegyzék Mi az a leíró?... Hiba! A könyvjelző nem létezik. 3. Közvetett paraméter átadások... Hiba! A könyvjelző nem létezik. 4. Absztrakt metódusok, absztrakt konstrukció... Hiba! A könyvjelző nem létezik. 5. Validálás leíróval... Hiba! A könyvjelző nem létezik. 2. Bevezetés Még ma is (2010-ben) a PHP továbbra is a legelterjedtebb webes programozási nyelv és fejlesztői környezet. Hamar meg lehet tanulni, és könnyen lehet benne eredményeket elérni. Viszont ismerni egy programozási nyelvet nem ugyanaz, mint tudni, hogyan fejlesszünk összetett alkalmazásokat. Sajnos ez a probléma eléggé elterjedt, sőt, a PHP-s világban ezzel kapcsolatban kifejezetten rossz szokások terjedtek el. Nyelv ide vagy oda, az általános programozási elvek weben, PHP-ban is ugyanúgy érvényesek, amiket ajánlott betartani, hiszen nem csak az a lényeg hogy a program elkészüljön és működjön, hanem könnyen módosíthatónak, bővíthetőnek, és karbantarthatónak kell lennie, mindezt persze megbízható módon. A következőkben megnézünk néhány PHP-s eszközt, és a hozzájuk kapcsolódó elveket, amivel tiszta, elegáns szerkezetű PHP-s alkalmazásokat építhetünk fel. 2/11
3 3. Hogyan ne csináld PHP-ban alapvetően nagyon kényelmes dolog PHP fájlok include-olása. Az egyik PHP fájlomon belül egy tetszőleges ponton, futási időben betölthetek egy másik PHP fájlt, ami ennek hatására ott helyben értelmeződik, és le is fut. Ezt általában 3 féle céllal szokták használni. Ebből azt a kettőt nézzük meg először ami helytelen alkalmazás szerkezethez vezet. Az első, amikor egy weboldalt akarunk a különböző részekből összeollózni. Ilyenkor például az index.php valahogy így szokott kinézni: <table> </table> <tr> </tr> <tr> </tr> <td> </td> <td> </td> include menu.php ; include tartalom.php ; Tehát az oldal tetejébe betöltjük a menüt, alá pedig a tartalmat. Ebben az esetben a betöltött PHP fájl ott helyben fut le, ahol betöltjük. Ennek viszont két elvi hibája is van. Egyrészt, úgy gondolkodik, mintha a alapvetően HTML-en belül futtatnánk PHP-t. Ez rossz megközelítés, mivel mi itt egy programot írunk, márpedig egy program alapvetően utasítások sorozata, amik aztán produkálnak valamilyen kimenetet. 3/11
4 A másik probléma, hogy az include-ot arra használja, hogy egy az egyben lefuttasson php fájlokat az adott helyen. Ez teljesen rossz. Gondoljunk bele mi lenne ha ez egy hagyományos gépi kódú program lenne, vagyis index.exe, menu.exe, tartalom.exe. Hát hogy nézne ez ki, kérem? Az index.exe lefuttatja a menu.exe-t, az meg majd kirajzolja a menüt? Ilyen nincs. Egyébként is ekkor már nem egy programot írtam, hanem 3 kicsit programocskát. Arról nem is beszélve, hogy ezt a három kicsi programocskát külön-külön is le lehet futtatni, mivel mindegyik önállóan futtatható. Ez pedig ki tudja milyen biztonsági problémákat jelenthet. Például ha csak bejelentkezés után férhetnék hozzájuk, akkor meg kell írnom az ellenőrzést mindegyikbe külön-külön, nehogy valaki lefuttassa őket magukban. Ez pedig kódtöbbszörözést jelent, ami megint egy alapvető elv megsértése. Egy másik szintén gyakori hiba, hogy arra akarják használni az include-ot, hogy kód hordozhatóságot, vagy procedurális absztrakciót imitáljanak vele. Például itt egy kód részlet, ami összeállít egy táblázatot egy tömbbe, majd betölti a tablazat_rajzol.php-t ami a $tablazat nevű változó tartalmát megjeleníti egy táblázatban. $tablazat=array( array( Alma, Piros ),array( Kötre, Sárga ),array( Szilva, Lila ) ); include tablazat_rajzol.php ; Ezzel azt akarja a programozó megvalósítani, hogy a táblázat rajzoló kód hordozható és paraméterezhető legyen. Viszont amellett hogy a fent említett problémák miatt ez eleve rossz megoldás, még az is súlyosbítja a helyzetet, hogy a tablazat_rajzol.php-n belül egy olyan változóhoz akar hozzáférni, ami azon a fájlon kívül van, és a kód csak feltételezi hogy majd valahogyan a globális térben ott lesz amikor kell. Emiatt a kód rettenetesen megbízhatatlanná válik, mivel képtelenség átlátni hogy a tablazat_rajzol.php-nek milyen paraméterekre van szüksége, ráadásul így a tablazat_rajzol.php-n belüli kód ugyanabban a névtérben fog létezni mint az őt betöltő kód, tehát bármikor felléphet névütközés, amit képtelenség követni. 4/11
5 4. Hogyan csináld jól Most lássuk tehát, hogy a fent említett esetek helyett mik a jó megoldások. Először is programozzunk objektum orientáltan. PHP-ban is remek OO eszközrendszer áll rendelkezésre 5- ös verziótól felfele. Külön az OO alapvető elveire most nem térünk ki, csak néhány PHP-s jellegzetességre. Osztályok elhelyezésére az általános elv a legtöbb nyelv esetén az szokott lenni, hogy minden osztályt egy külön fájlba helyezzünk el. Ez egyrészt az átláthatóságot segíti, de PHP-ban ennek működési szempontból is fontos szerepe lesz. Az első fontos dolog, hogy az alkalmazásunknak lehetőség szerint 1 belépési pontja legyen. Belépési pont alatt azt értjük, hogy melyik az a fájl amit közvetlenül is le lehet futtatni, és közvetlenül végrehajtható kódot tartalmaz. Ez a fenti példákban csak az index.php lehet. Minden más fájl csak osztályokat és függvénydefiníciókat tartalmazhat. Ezzel nem futtathatóak közvetlenül. Tehát innentől kezdve azért töltünk be más fájlokat, hogy használhassuk a bennük lévő osztályokat vagy függvényeket. Továbbá ne egyből HTML kimenettel kezdjük a programunkat. Ha már osztályokból és függvényekből áll minden, akkor az index.php-nak igazából csak pár függvényt kellene meghívnia, illetve objektumokat példányosítani, azok metódusait meghívni. Szóval így nézhetne ki a fent látott példa helyesen: fooldal.php: require_once menu.php ; require_once tartalom.php ; class Fooldal{ function megjelenit(){ $menu=new Menu(); 5/11
6 $tartalom=newtartalom(); <table> <tr> <td> $menu->megjelenit(); </td> </tr> <tr> <td> $tartalom->megjelenit(); </table> </td> </tr> } } index.php: require_once fooldal.php ; 6/11
7 $fooldal=new Fooldal(); $fooldal->megjelenit(); Ez így már program. A menü, a tartalom, de még a főoldal is egy osztály, aminek egy metódusa jeleníti majd meg a HTML kódot, az index.php pedig csak annyit teszt, hogy ezeket betölti és futtatja. Ezzel az is megvalósul, hogy nincs sok belépési pont, mivel az egyes fájlokban csak osztálydefiníciók vannak, így azokat hiába futtatom le, nem csinálnak semmit. Ha csak ezt a formátumot betartja valaki, akkor máris mérföldeket lépett előre a minőségi PHP-s alkalmazás fejlesztése irányába. 7/11
8 5. Autoload Persze itt még van egy kis probléma, amit tisztázni kell. Láthatjuk ugyanis, hogy különböző osztályok hivatkozhatnak egymásra, és persze mindannyian külön fájlban vannak. Ez az jelenti, hogy ha az egyik osztály szeretné a másikat használni, akkor annak is be kell töltve lennie. A fenti példában azt láttuk, hogy a Fooldal osztályt tartalmazó php fájl automatikusan betölti a menu.php-t és a tartalom.php-t is, mivel az azokban lévő osztályokat fogja használni. Ez viszont még mindig nem a legjobb megoldás. Az egyik oka, hogy például a Menu és Tartalom osztályokat több másik osztály is használhatja, nem csak a Fooldal. Ezért, hogy biztosra mehessünk, azoknak az osztályoknak is be kellene töltenie ezt a kettőt. Viszont ekkor belefuthatunk abba a problémába, hogy többször akarjuk betölteni ugyanaz a fájl, márpedig egy osztály csak egyszer lehet definiálva. Persze ez adott esetben könnyen megoldható ha require_once-ot használunk, mivel akkor csak egyszer kerül betöltésre a fájl. A másik probléma viszont az, hogy ha úgy írjuk meg a függőséget betöltését, ahogy fentebb láthattuk, akkor például az Menu és a Tartalom osztály akkor is betöltődik ha a Fooldal osztály igazából nem is fogja őket használni. Ez gondot jelenthet ha sok osztályunk van, hiszen a PHP interpreteres nyelv, ezért az is némi időt igényel, hogy értelmezze a betöltött fájl, függetlenül attól hogy annak a kódja lefut-e. Persze ezt megoldhatjuk úgy is, hogy a függőségek betöltését oda tesszük ahol tényleg használni fogjuk őket, viszont ekkor több helyre is el kell helyeznünk a kódban, ráadásul ez a munka teljesen manuális, nekünk kell figyelni rá, hogy minden ott legyen ahol szükséges. Ez nagyon megbonyolítja a munkát, és túlságosan sok benne a hibalehetőség, nehezen tesztelhető, átláthatatlan és megbízhatatlan lesz a kód. Szerencsére a PHP-nak van egy beépített eszköze ami kényelmes, megbízható, és teljesítmény szempontból is hatékony megoldást nyújt, az autoload. Az autoload lényege az, hogy egy osztály akkor kerül betöltésre, amikor arra futási időben legelőször ténylegesen szükség van. Ez által gyors lesz a kódunk, hiszen nem végez felesleges munkát, és nem is nekünk kell figyelni arra, hogy minden osztály betöltését a megfelelő helyen elvégezzük. Az autoload használatához írnunk kell egy egyszerű függvényt, ami egyetlen paramétert vár, majd regisztrálni kell e függvényünket, hogy ez egy autoload függvény. Ezután a rendszer ha találkozik egy olyan osztállyal amit még nem ismer, akkor meghívja a regisztrált autoload függvényeket (több is lehet), és átadja nekik a keresett osztály nevét paraméterként. Innentől kezdve pedig ránk van bízva, hogy a keresett osztályt betöltsük a megfelelő fájlból (hiszen mi írjuk a függvényt). 8/11
9 Módosítsuk tehát a fenti példánkat autoload-osra: betolto.php: function betolto($osztalynev){ /*Itt most egy switch-case-szel döntjük el, melyik fájlt kell betölteni, egyébként ez tetszőleges. */ switch ($osztalynev) { case "Menu": require_once menu.php ; break; case "Tartalom": require_once tartalom.php ; break; case "Fooldal": require_once fooldal.php ; break; default: echo Ismeretlen osztály:.$osztalynev; break; } } //regisztráljuk autoload függvényként a betolt függvényünket spl_autoload_register( betolto ); 9/11
10 index.php: require_once betolto.php ; $fooldal=new Fooldal(); $fooldal->megjelenit(); Tehát itt van egy külön fájlunk amiben csak a betöltő van, és innentől kezdve nem is kell a fooldal.php-ban betölteni a menu.php-t és a tartalom.php-t. Mindent az autoload függvényünk tölt be, így az index.php-ban is csak azt kell betölteni, és onnantól azonnal hivatkozhatunk is akármelyik osztályunkra. 10/11
11 6. Összefoglalás Tehát, legfontosabb tanulság, hogy nem sok kis szkriptecskét írunk, hanem alkalmazást, ami csak osztályokat és függvényeket tölt be más fájlokból. Nem összeollózzuk a weboldalunkat php fájlok include-olgatásával, hanem függvényeket és metódusokat futtatunk. Nem HTML-t írunk amibe PHP szkriptet rakunk, hanem programot, ami HTML-t ír ki. Mindenki a saját érdekében fogadja meg ezeket az egyszerű elveket, még annak ellenére is, hogy sajnos a PHP-s világ többsége még ma is az ellenpéldákban leírtak szerint működik. 11/11
Függőség injekció Konstantinusz Kft 2010
Függőség injekció Konstantinusz Kft 2010 1 Tartalomjegyzék 1 Tartalomjegyzék 2 2 Bevezetés 3 3 Függőségek formái 4 4 Függőség kezelés problémái 8 5 Megvalósítás 9 2/16 2 Bevezetés Egy objektum modellben
RészletesebbenBevezetés a Python programozási nyelvbe
Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban
RészletesebbenWebprogramozás szakkör
Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás
RészletesebbenPHP-MySQL. Adatbázisok gyakorlat
PHP-MySQL Adatbázisok gyakorlat Weboldalak és adatbázisok Az eddigiek során megismertük, hogyan lehet a PHP segítségével dinamikus weblapokat készíteni. A dinamikus weboldalak az esetek többségében valamilyen
RészletesebbenC++ programozási nyelv
C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/12 Tartalomjegyzék Miért
RészletesebbenBevezetés a Python programozási nyelvbe
Bevezetés a Python programozási nyelvbe 8. Gyakorlat modulok random számok (utolsó módosítás: 2017. aug. 3.) Szathmáry László Debreceni Egyetem Informatikai Kar 2017-2018, 1. félév Modulok Amint a programunk
RészletesebbenOsztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;
PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function
RészletesebbenAz alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.
JSON tutorial Készítette: Cyber Zero Web: www.cyberzero.tk E-mail: cyberzero@freemail.hu Msn: cyberzero@mailpont.hu Skype: cyberzero_cz Fb: https://www.facebook.com/cyberzero.cz BEVEZETÉS: A JSON (JavaScript
RészletesebbenProgramozási nyelvek Java
statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály
RészletesebbenC++ programozási nyelv
C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok
RészletesebbenDr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:
RészletesebbenProgramozási alapismeretek 4.
Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)
RészletesebbenEgészítsük ki a Drupal-t. Drupal modul fejlesztés
Egészítsük ki a Drupal-t Drupal modul fejlesztés Drupal 6.0 2008. február 13. Miért írjunk Drupal modult? Nincs az igényeinknek megfelelő modul Valamilyen közösségi igény kielégítése Valami nem úgy működik
RészletesebbenFlash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft
Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül
RészletesebbenPHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT
alapjai, bevezetés Vincze Dávid Miskolci Egyetem, IIT vincze.david@iit.uni-miskolc.hu PHP Personal Home Page (Tools) Script nyelv -> interpretált Elsősorban weboldal (dinamikus) tartalmak előállítására
RészletesebbenPHP5 Új generáció (2. rész)
PHP5 Új generáció (2. rész)...avagy hogyan használjuk okosan az osztályokat és objektumokat PHP 5-ben. Cikksorozatom elõzõ részében képet kaphattunk arról, hogy valójában mik is azok az objektumok, milyen
RészletesebbenEljárások, függvények
Eljárások, függvények Tartalomjegyzék Az alprogramok...2 Kérdések, feladatok...2 Kérdések, feladatok...3 Eljárások...3 Kérdések, feladatok...4 Érték és cím szerinti paraméterátadás...5 Kérdések, feladatok...6
RészletesebbenBevezetés a programozásba
Bevezetés a programozásba 1. Előadás Bevezetés, kifejezések http://digitus.itk.ppke.hu/~flugi/ Egyre precízebb A programozás természete Hozzál krumplit! Hozzál egy kiló krumplit! Hozzál egy kiló krumplit
RészletesebbenPartner. kezelési útmutató
Partner kezelési útmutató A P&T Partner mobil alkalmazás minden Android operációsrendszerrel mûködô mobileszközön ingyenesen elérhetô a Google Play áruházból. Keresd: P&T Partner. Az alkalmazást a telepítés
RészletesebbenOOP. Alapelvek Elek Tibor
OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós
RészletesebbenProgramozás II gyakorlat. 6. Polimorfizmus
Programozás II gyakorlat 6. Polimorfizmus Típuskonverziók C-ben: void * ptr; int * ptr_i = (int*)ptr; Ez működik C++-ban is. Használjuk inkább ezt: int * ptr_i = static_cast(ptr); Csak egymással
RészletesebbenForráskód formázási szabályok
Forráskód formázási szabályok Írta: Halmai Csongor, Webcenter Bt. A php és html kódrészletek Ugyanazon fájlon belül nem szerepelhet php kód és html tartalom. E kettő különválasztására smarty-t vagy más
RészletesebbenGENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok
GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és Függvénysablonok Gyakorlatorientált szoftverfejlesztés C++ nyelven Visual Studio Community fejlesztőkörnyezetben
RészletesebbenMintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
RészletesebbenOsztályok. 4. gyakorlat
Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum
RészletesebbenMár megismert fogalmak áttekintése
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak
RészletesebbenA JavaServer Pages (JSP)
A JavaServer Pages (JSP) Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 27. JSP Harmadik generáci ciós s WEB szerver A dinamikus lap a tipikus Dinamikus
RészletesebbenOperációs rendszerek gyak.
Operációs rendszerek gyak. AWK programozás Hirling Dominik Szegedi Tudományegyetem AWK AWK: a pattern scanning and processing language mintaelemző-és feldolgozó nyelv bármilyen szövegből minták alapján
RészletesebbenInternet technológiák
Szabadkai Műszaki Szakfőiskola Internet technológiák dr Zlatko Čović chole@vts.su.ac.rs 1 Függvények A függvény egy zárt, önálló kódrészlet, amelyet a PHP programból meghívhatunk és a meghívás után a függvény
RészletesebbenDr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS 2015-2016 Fájlkezelés PHP-ben Fájlok és könyvtárak kezelése 2 A PHP a Javascript-hez hasonlóan, nem képes a felhasználó merevlemezén
Részletesebbenés az instanceof operátor
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
RészletesebbenJava VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
RészletesebbenJava programozási nyelv
Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék
RészletesebbenMegoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)
Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május) Teszt kérdések 1. Melyik állítás igaz a folytonos integrációval (CI) kapcsolatban? a. Folytonos
RészletesebbenEseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.
Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb
RészletesebbenProgramozási nyelvek JAVA EA+GY 1. gyakolat
Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program
RészletesebbenInformációs technológiák 2. Gy: CSS, JS alapok
Információs technológiák 2. Gy: CSS, JS alapok 1/69 B ITv: MAN 2017.10.01 Ismétlés Van egy Web nevű mappánk, ebben vannak az eddig elkészített weboldalak (htm, html) képek (jpg, png). Logikai felépítés
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java 11.gyakorlat Operációsrendszertől függő tulajdonságok PATH elválasztó Unix ":" Windows ";" final String PATH_SEPARATOR = File.pathSeparator; Ugyanaz, csak karakterkent final char
RészletesebbenProgramzás I. - 1. gyakorlat
Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)
RészletesebbenErdő generálása a BVEPreproc programmal
Erdő generálása a BVEPreproc programmal Első lépés, hogy elkészítjük a falevél objektumot. Ezeket fogjuk rárakni a faág objektumokra, majd jön a fatörzs... Ez csak vicc volt. Elkészítjük/összeollózzuk
RészletesebbenSmart Pointer koncepciója
Smart Pointer koncepciója ( Egyszerű Smart Pointer implementálása C++ nyelven ) Bevezetés Mik a smart pointer-ek 1? A válasz egyszerű; a smart pointer-ek olyan mutatók amik okosak. Mit is jelent ez pontosan?
RészletesebbenStatikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék
Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma
RészletesebbenA gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:
1 Adatbázis kezelés 3. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Tábla kapcsolatok létrehozása,
RészletesebbenImportálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba
Importálás Külső programok által generált imp és.xml állományokat be lehet tölteni a program import funkcióival. Az ABEV2006 az xml állományok importálását nem tudta. Ez újdonság a nyomtatványkitöltő programban.
RészletesebbenInczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport
TANMENET Informatika szakmacsoport Programozási gyakorlatok III. tantárgy 12. évfolyam A osztály 2013/2014 tanév Heti óraszám: Éves óraszám: 3 óra 96 óra Készítette: Szikszai Gusztáv tanár Ellenőrizte:.
Részletesebben17. témakör Vírusok - Víruskeresés
17. témakör - Víruskeresés Megjegyzés [NEU1]: Sortávolságok túl nagyok. korrektúra bejegyzés ne maradjon benne. Az eredeti korrektúra bejegyzések honnét vannak, én ezt a fájlt még nem láttam. Számítógépes
RészletesebbenSmarty AJAX. Miért jó ez? Ha utálsz gépelni, akkor tudod. Milyen műveletet tudunk elvégezni velük:
Smarty AJAX Smarty sablonrendszer fegyverzetét (Funkcióit) igyekszik kiegészíteni, néhány alap AJAX metódussal, amivel a megjelenést, kényelmet vagy a funkcionalitást növelhetjük. A Smarty Ajax függvényeknek
RészletesebbenJelentkezési lap képző szervek részére
Jelentkezési lap képző szervek részére Felhasználói segédlet Tartalomjegzék Belépés Jelentkezési lap felület Kézi kitöltés menete Alapadatok megadása Korábban megszerzett vezetői engedély adatai Személyes
RészletesebbenTudás Reflektor. Copyright 2011; Kodácsy Tamás; E-mail: kodacsy.tamas@kodasoft.hu
Tudás Reflektor A Társadalmi Megújulás Operatív Program 4.1.3. számú, A felsőoktatási szolgáltatások rendszerszintű fejlesztése Központi/felsőoktatási Validációs Rendszer projekt keretében készült olyan
RészletesebbenJava és web programozás
Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:
RészletesebbenObjektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015
Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 9. ELİADÁS Kivételkezelés (Exception handling) 2 Mi a kivétel (exception)? A kivétel, olyan hibás állapot vagy esemény, amely
RészletesebbenScratch bevezető foglalkozás Scratch bevezető foglalkozás
a program fogalmának bevezetése a Scratch fejlesztőkörnyezet bemutatása a Scratch lehetőségeinek bemutatása példákon keresztül gyakorlás a példák módosításával Mi a program? utasítások sorozata valamilyen
RészletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. április 4. Számok rendezése Feladat: Fejlesszük tovább úgy a buborék rendez algoritmust bemutató példát, hogy a felhasználó adhassa meg a
RészletesebbenProgramozás C++ -ban
8. Dinamikus objektumok Programozás C++ -ban Ahhoz hogy általános prolémákat is meg tudjunk oldani, szükség van arra, hogy dinamikusan hozhassunk létre vagy szüntethessünk meg objektumokat. A C programozási
RészletesebbenPHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv
PHP A PHP rövidítés jelentése hivatalosan: PHP Hypertext Preprocessor. Ez egy kiszolgáló-oldali parancsnyelv, amit jellemzően HTML oldalakon használnak. A különbség a két nyelv között az, hogy a kiszolgáló
RészletesebbenSzkriptnyelvek. 1. UNIX shell
Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 5. előadás Tömbök átméretezése public static void Resize( ref T[] array, int newsize ) Példa: int[] a=new int[20]; Array.Resize(ref a, 22); 2016. 10. 19.
RészletesebbenBevezetés, a C++ osztályok. Pere László
Programozás módszertan II. p. Programozás módszertan II. Bevezetés, a C++ osztályok Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK
RészletesebbenKeresési algoritmusok, optimalizáció
Keresési algoritmusok, optimalizáció Az eddig tanultakból a mostani részben gyakran használt (emiatt szükséges az ismeretük) programozási ismeretek: függvények létrehozása, meghívása (ld. 3. óra anyagában)
RészletesebbenKézikönyv. Szelekciós jegyzék létrehozása
Kézikönyv Szelekciós jegyzék létrehozása Tartalomjegyzék 1 OBJEKTUM KIVÁLASZTÁS - VEVŐ MEGJELENÍTÉS... 4 2 VEVŐ - ÜRES... 6 3 ABAS-ERP MASZKINFÓ... 8 4 VEVŐ - ÜRES... 9 5 ABAS-ERP MASZKINFÓ... 11 6 VEVŐ
RészletesebbenJava II. I A Java programozási nyelv alapelemei
Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak
RészletesebbenKözfoglalkoztatás támogatás megállapítását segítő segédtábla használati útmutatója
Közfoglalkoztatás támogatás megállapítását segítő segédtábla használati útmutatója 1.) Általános tudnivalók: A segédtábla két méretben készül, 10, és 50 sort lehet kitölteni. A tábla megnevezéséből amit
RészletesebbenObjektum orientáltság alapjai A Java nyelv Fordítás - futtatás
Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás Objektum orientáltság alapjai Objektum: A való világ egy elemének ábrázolása, amely minden esetben rendelkezik: Állapottal,Viselkedéssel,Identitással
RészletesebbenHTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok
HTML Ismerkedés a JavaScripttel webprogramozó A weblapokat HTML nyelven készíthetjük el. A HTML egyszer leírónyelv, nem alkalmas válaszolni a felhasználóknak, nem tud döntéseket hozni, nem tud végrehajtani
RészletesebbenDelphi programozás I.
Delphi programozás I. Konzol alkalmazások készítése Delphiben A Delphi konzol alkalmazása (console application) olyan 32 bites program, amely nem grafikus felületen, hanem egy szöveges konzol ablakban
Részletesebben4. Használati útmutatás
megbízható(másnéven: robusztus): mert a programozási hibák egy részét megakadályozza,a másik részét pedig futás közben kisz ri és támogatja a fejleszt t azok professzionális kezelésében. biztonságos: megakadályozza
RészletesebbenEljárások és függvények
Eljárások és függvények Jegyzet Összeállította: Faludi Anita 2012. Bevezetés Ez a jegyzet elsősorban azoknak a diákoknak készült, akiket tanítok, ezért a jegyzet erőteljesen hiányos. Az olvasó egy percig
RészletesebbenC++ programozási nyelv Konstruktorok-destruktorok
C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék
RészletesebbenOOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.
OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_01-1 - E jegyzet másolata
RészletesebbenJava és web programozás
Budapesti Műszaki Egyetem 2015. 04. 08. 10. Előadás Ami kimearad múlthéten Ha már megvan a KeyListener vagy MouseListener osztályunk a következõ módon tudjuk hozzárendelni egy JFrame vagy JPanel-hez: Ami
RészletesebbenProgramozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)
Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index
RészletesebbenNeumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás
Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás Első félév A modul időtartama: A modul célja: A modul tartalma: 8 foglalkozás, alkalmanként
RészletesebbenProgramozás C++ -ban 2007/7
Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum
RészletesebbenA programozás alapjai 1 Rekurzió
A programozás alapjai Rekurzió. előadás Híradástechnikai Tanszék - preorder (gyökér bal gyerek jobb gyerek) mentés - visszaállítás - inorder (bal gyerek gyökér jobb gyerek) rendezés 4 5 6 4 6 7 5 7 - posztorder
RészletesebbenProgramozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira
Programozás II gyakorlat 7. Példák a polimorfizmus alkalmazásaira Probléma class A { public: ~A() { cout
RészletesebbenOpenCL alapú eszközök verifikációja és validációja a gyakorlatban
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és
RészletesebbenJava programozási nyelv 9. rész Kivételkezelés
Java programozási nyelv 9. rész Kivételkezelés Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/24 Tartalomjegyzék
RészletesebbenOBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat
2. Digitális óra 28 OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK 2.1 A feladat Ebben a fejezetben egy viszonylag egyszerő problémára alkalmazva tekintjük át az OO tervezés modellezési technikáit. A feladat
RészletesebbenDropbox - online fájltárolás és megosztás
Dropbox - online fájltárolás és megosztás web: https://www.dropbox.com A Dropbox egy felhő-alapú fájltároló és megosztó eszköz, melynek lényege, hogy a különböző fájlokat nem egy konkrét számítógéphez
Részletesebben2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése
Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,
RészletesebbenC++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:
C++ referencia Izsó Tamás 2017. február 17. 1. Bevezetés A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák: Sokan összetévesztik a pointerrel. Keveset alkalmazzák
Részletesebben1. Egyszerű (primitív) típusok. 2. Referencia típusok
II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget
RészletesebbenOOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
RészletesebbenCitibank Online Internet Banking Használati útmutató
Citibank Online Internet Banking Használati útmutató Bevezető A Citibank Online Internet Banking segítségével a nap 24 órájában, biztonságosan intézheti pénzügyeit, hiszen számos banki szolgáltatás elérhető
RészletesebbenA JavaServer Pages (JSP)
A JavaServer Pages (JSP) Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 27. JSP Harmadik generáci ciós s WEB szerver A dinamikus lap a tipikus Dinamikus
RészletesebbenC programozási nyelv Pointerek, tömbök, pointer aritmetika
C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek
Részletesebben7. fejezet: Mutatók és tömbök
7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata
RészletesebbenBevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu
RészletesebbenPénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök
RészletesebbenSzoftvertechnolo gia gyakorlat
Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot
RészletesebbenProgramozás 1. 2.gyakorlat
Programozás 1. 2.gyakorlat Ismétlés Objektum: Egy a való világból vett elem (ami lehet elvonatkoztatott is) számítógépes ábrázolása. Pl: Kurzus, Személy stb Minden Objektum rendelkezik: Állapottal Viselkedéssel
RészletesebbenProgramozás II. 2. gyakorlat Áttérés C-ről C++-ra
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,
RészletesebbenWeb-technológia PHP-vel
Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request
Részletesebben1.1.1 Dátum és idő függvények
1.1.1 Dátum és idő függvények Azt már tudjuk, hogy két dátum különbsége az eltelt napok számát adja meg, köszönhetően a dátum tárolási módjának az Excel-ben. Azt is tudjuk a korábbiakból, hogy a MA() függvény
RészletesebbenProgramozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek
Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő
Részletesebben1. Alapok. Programozás II
1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph
RészletesebbenFelhasználói dokumentáció. a TávTagTár programhoz. Készítette: Nyíri Gábor, hdd@nc-studio.com GDF Abakusz regisztrációs kód: GDFAba43
a TávTagTár programhoz Készítette: Nyíri Gábor, hdd@nc-studio.com GDF Abakusz regisztrációs kód: GDFAba43 Tartalomjegyzék Futási feltételek... 3 Telepítés... 3 Indítás... 3 Főablak... 4 Új személy felvétele...
RészletesebbenGeometria megadása DXF fájl importálásából
30. sz. Mérnöki kézikönyv Frissítve: 2016. március Geometria megadása DXF fájl importálásából Program: GEO5 FEM GEO5 Fájl: Demo_manual_30.gmk DXF Fájlok: - model201.dxf eredeti fájl, amit bonyolultsága
RészletesebbenProgramozói elvárások. avagy mit vár tőlünk a munkahelyünk
Programozói elvárások avagy mit vár tőlünk a munkahelyünk Konstantinusz Kft. 2010 1. Tartalomjegyzék 1. Tartalomjegyzék... 2 2. Bevezetés... 2 3. Programozással kapcsolatos elvárások... 3 4. Kommunikációs
Részletesebben