LAB05 - nvbach91/4IZ278-2020-2021-LS GitHub Wiki
Cvičení 05 - In Code We Thrust.
Povinná četba (na doma)
Náplň cvičení
- https://eso.vse.cz/~nguv03/cv05/oop/
- OOP zapouzdření
- OOP přetěžování metod
- OOP konstanty, statické proměnné a statické metody
- OOP abstraktní třídy a abstraktní metody
- OOP dědičnost
- OOP rozhraní
- OOP polymorfismus
- OOP magické metody
- phpMyAdmin
- SQL CREATE TABLE
CREATE TABLE Users (
Name varchar(255),
Age int,
Email varchar(255)
);
INSERT INTO Users(Name, Age, Email) VALUES ('Nathan Drake', 38, '[email protected]');
INSERT INTO Users(Name, Age, Email) VALUES ('Samuel Drake', 42, '[email protected]');
INSERT INTO Users(Name, Age, Email) VALUES ('Elena Fisher', 34, '[email protected]');
INSERT INTO Users(Name, Age, Email) VALUES ('Victor Sullivan', 62, '[email protected]');
SELECT * FROM Users;
SELECT Name, Email FROM Users;
SELECT * FROM Users WHERE Email = '[email protected]';
SELECT * FROM Users WHERE Age > 40;
UPDATE Users
SET Age = 39
WHERE Email = '[email protected]';
DELETE FROM Users WHERE Email = '[email protected]';
Bodovaná samostatná práce na cvičení
- Vytvořte strukturu tříd a rozhraní pro práci s databázovým souborem. Struktura bude umožňovat operace jako čtení, zápis, změna a odstranění záznamů z souborů (příště už budeme pracovat s databází).
Postup
- Vytvořte rozhraní
DatabaseOperations
s operacemi:
- create (Create),
- fetch (Read),
- save (Update),
- delete (Delete), jejichž implementace bude spočívat v skutečněm čtení, vytváření, modifikaci a mazání záznamů ze souboru a také vypisování hlášek o vykonaných operací, případně s předanými parametry.
- Vytvořte abstraktní třídu
Database
implementující toto rozhraní
- s výchozími konfiguračním vlastnostmi:
- cesta ke složce databázových souborů
- přípona databázových souborů
- odělovač polí v databázovém souboru
- s magickou metodou
__construct
pro oznámení instancování konkrétní třídy
__toString
pro výpis konfiguračních parametrů
- Vytvořte její podtřídy a naimplementujte zmíněné 4 metody ze rozhraní
- pro práci s uživateli
UsersDB
.
- pro práci produkty
ProductsDB
.
- pro práci s objednávkami
OrdersDB
.
- V neposlední řadě otestujte vaše implementace vytvářením instancí a voláním jejich metod.
- zavoláte třeba
create
a následně ověřte metodou fetch
- ukázka řešení: https://eso.vse.cz/~nguv03/cv05/oop/15-oopdatabase.php
- 1 bod dostanete až po