Autor Zpráva
Martin Straka
Profil
Dobrý večer, rád bych poprosil přítomné o radu/nasměrování. Vím, že je tady toho o OOP v PHP napsáno spousta, nicméně nenašel jsem přesně to, co jsem hledal.

Snažím se přejít k objektovému myšlení - a k objektovému programování aplikací v PHP. Jsem z toho ale trochu bezradný - pročetl jsem několik seriálů o tomto na internetu, myslím si, že té základní logice a syntaxi rozumím, mám ale problém "napasovat" získané vědomosti na praxi.

Uvedu příklad, dejme tomu, že chci vytvořit klasický inzertní web (vkládání inzerátů do kategorií, poté jejich zobrazení, registrace uživatelů). Když nad tím přemýšlím, nevím si moc rady, jaké třídy vytvořit, napadá mě jednoduše dejme tomu Kategorie, Inzerat, Uzivatel, ale myslím, že tato cesta není správná, nevidím tam např. žádný prostor pro dědičnost, působí to na mě jen jako takové chlívečky pro funkce, jakým způsobem by se to dalo uchopit lépe?

Další věc, která mě zajímá, je dejme tomu výpis inzerátů z databáze - v tomto jsem také trochu bezradný. Řešil bych to nějak takto (zjednodušeně) - používám šablonovací systém Smarty, ale cítím, že je to takové zbastlené (jde vlastně jen o procedurální kód obalený do třídy a vlastně nevím, jak využít ty getry a setry, protože takhle nejsou potřeba) - jak toto, prosím, pojmout lépe?

index.php
$inzerat = new Inzerat();
$inzerat->nactiInzeraty("uzivatel@email.cz");

třída inzerat.php
class Inzerat {
public function nactiInzeraty($email) {
   $inzeraty = MySQL_Query("SELECT * FROM inzeraty WHERE email='".MySQL_Real_Escape_String($email)."' ");

   $pole_inzeratu = Array();
   while ($inzerat = MySQL_Fetch_Assoc($inzeraty)) {
      Array_push($pole_inzeratu,$inzerat);
   }

   return $pole_inzeratu;
}

Vím, že pokud nejsem schopný dát toto sám dohromady, je možná zbytečná jakákoliv rada, a budu odkázan na studium tohoto a tohoto (ale i to ocením, pokud půjde o konkrétní podobný příklad), ale jak říkám, dělá mi problém to užití v praxi, chápu ty jednoduché příklady na OOP, kdy si vytvořím objekt třídy Ctverec($delka_strany), ale jsem bezradný, když mám třeba za užití OOP vypsat řádky z databáze. Proto prosím o alespoň malé nasměrování, věřím, že kdyby se našel někdo ochotný vyjádřit se k těmto 2 příkladům, hondě by mně to pomohlo.
Mockrát děkuju.
nemeja
Profil
Měl jsem podobný problém, všude byly jen samé utržky - doporučil bych ti seriál na devbooku, tam je to podle mě krásně vysvětleno. Nejvíce mi stejně s OOP pomohla asi Java.

Když už chceš psát OOP kod, chtělo by to i objektově pracovat s databází např. MySQLi ( oop i proceduralni funkce ), PDO ( pouze objektový, nicméně doporučuji ), či nějakého jiného wrapperu
Martin Straka
Profil
Ahoj, ten odkaz vede někam jinam, ale pokud jsi myslel tohle: http://www.devbook.cz/php-objektove-orientovane-programovani-navody-a-tutorialy , děkuju, to vypadá dobře.
Nevěděl by prosím někdo ještě třeba o "případových studíich"? Řešila se tady návštěvní kniha, ale zůstalo jen u takového nástinu funkcionality, nedošlo na ukázky zdrojových kódů. Děkuju všem.
nemeja
Profil
Ano je to on. vždycky píšu .com místo .cz - nemůžu se to odnaučit.

Máš tam tutorial na OOP MVC redakčák, tuším, že neni dodělaný, ale to nejdůležitější tam je.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: