Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 13. diel - Objektové počítadlo návštev v PHP - dokončenie

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
kivdul
Člen
Avatar
kivdul:24.6.2016 14:42

ještě jednou já, Ludvík :-D

v této časti kodu

self::$spojeni = @new PDO(

je pro mě @ novým znakem, absolutně jsem nepobral, kde se tu zavináč vzal a co je jeho funkcí!

děkuji Ludvík

 
Odpovedať
24.6.2016 14:42
Avatar
Odpovedá na kivdul
Neaktivní uživatel:24.6.2016 15:59

Potlačí to chybové zprávy, které by následující výraz mohl vyhodit. Dokumentace říká tohle:
http://php.net/…rcontrol.php

Odpovedať
24.6.2016 15:59
Neaktivní uživatelský účet
Avatar
kivdul
Člen
Avatar
 
Odpovedať
24.6.2016 18:26
Avatar
Odpovedá na David Hartinger
Pavel Habžanský:25.6.2016 18:31

Podle mě je příklad v článku v pořádku :) Příklad od "Neaktivní uživatel" je stejně jenom okopírovaný z php.net, což na jeho argumentaci ubírá na legitimitě :) Oba příklady jsou v pořádku, ale je pravda, že pomocí bindParam() ti akorát přibývají proměnné a příkazy navíc, tudíž u velké DB se to taky projeví, u používání otazníků se mohou data zpracovávat v podstatě přímo v dotazu, což je rozhodně lepší než vypisovat další příkazy a proměnné navíc, jde jen o to vědět, který otazník patří k čemu, což není takový problém, když dotyčný umí psát kód :)

Odpovedať
25.6.2016 18:31
Čím větší výzva, tím větší zkušenost
Avatar
Jan Zamecnik
Člen
Avatar
Jan Zamecnik:19.9.2016 11:47

Třídu SpravceNavstev jsem si upravil tak, že jsem přidal

private $spojeni;

public function __construct(Databaze $databaseContact) {
    $this->spojeni = $databaseContact;
}

Tj. předal jsem třídu Databaze pomocí Constructor injection. A zároveň jsem všechny dotazy upravil z

Databaze::dotaz

na

$this->spojeni->dotaz

V indexu pak mám toto:

$spojeni = new Databaze('localhost', 'root', '', 'pocitadlo_db');
     $spravce = new SpravceNavstev($spojeni);
     $spravce->zapocitej();
     $spravce->vypisStatistiky();

Doufám, že takto je to správně dle zásad OOP.

Editované 19.9.2016 11:48
 
Odpovedať
19.9.2016 11:47
Avatar
Richard Pánek:13.5.2017 17:19

Ahojky, proč se nezadají ty přihlašovací údaje do DB přímo do té statické metody, ale vkládájí se až ve skriptu? Není to určité riziko? A nepostrádá to pak lehce smysl, když budu muset v každém skriptu znova zadat ty přihlašovací údaje, když stejně na většině hostingů je jen jedna DB a když budu chtít tu aplikaci přesunout jinam, tak to v tomhle případě budu muset přepsat ty údaje v každém skriptu, kdežto když to bude přímo v té metodě, tak to přepíšu jen tam a budu v klidu. Jestli se pletu tak mě prosím opravte někdo, pořád se učím (a nikdy nepřestanu :)) Díky.

 
Odpovedať
13.5.2017 17:19
Avatar
Odpovedá na Richard Pánek
Martin Konečný (pavelco1998):13.5.2017 21:26

Ahoj,
zde je to pouze takové ilustrativní - v reálné aplikaci to připojení k databázi budeš mít obvykle v nějakém společném souboru pro všechny stránky (buď přímo v index.php, nebo nějakém konfiguračním souboru, který se do něj vkládá).
Tudíž ty přihlašovací údaje zadáš jen v jednom souboru a skript bude k dané databázi připojen na každé stránce.

Důvod, proč nedat ty přihlašovací údaje rovnou do té metody Databaze::pripoj(), je ten, že účelem té třídy je znovupoužitelnost - tudíž by se neměla v každém jiném projektu měnit. To znamená, že proměnlivé hodnoty (právě třeba přihlašovací údaje k DB) se nebudou psát přímo do ní, ale nechají se předat parametrem. Ty tak při přesunutí webu na jiný hosting / jiného webu / změny databáze / ... nebudeš muset vůbec sahat na tu třídu Databaze, ale jen změníš ty přihlašovací údaje v parametru.

Editované 13.5.2017 21:29
Odpovedať
13.5.2017 21:26
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovedá na Martin Konečný (pavelco1998)
Richard Pánek:16.5.2017 15:56

Aha, takže pokud to dobře chápu, tak to tam vložím jen v jednom skriptu a pak už se o to nemusím starat, protože si to z toho vytáhne samo ty údaje?

 
Odpovedať
16.5.2017 15:56
Avatar
Odpovedá na Richard Pánek
Martin Konečný (pavelco1998):16.5.2017 17:28

V podstatě pokaždé se ti bude spouštět soubor index.php, ve kterým to připojení mít budeš - takže to budeš mít jen na tom jednom místě a použije se to automaticky na všech stránkách :)

Odpovedať
16.5.2017 17:28
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Otvorený Zdroj
Tvůrce
Avatar
Otvorený Zdroj:3.11.2017 1:23

public static function pripoj($host, $uzivatel, $heslo, $databaze)
{
if (!isset(self::$spo­jeni))
{
self::$spojeni = @new PDO(
"mysql:host=$hos­t;dbname=$data­baze",
$uzivatel,
$heslo,
self::$nastaveni
);
}
return self::$spojeni;
}

Vedel by podrobne vysvetliť niekto túto metódu,každý riadok..ďakujem.

Odpovedať
3.11.2017 1:23
Ak existuje voľná energia, tak autorské právo sú dve smiešne slová..
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 36.