Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] dzialanie klas
sakul55
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 27.03.2011

Ostrzeżenie: (0%)
-----


troszke sobie poczytalem i probuje pisac obiektowo. zrobilem cos takiego i dziala poprawnie, ale sam sie zastanawiam czemu i czy to jest dobre (IMG:style_emoticons/default/tongue.gif)

add.php:
  1. require_once 'model.php';
  2. $conn = new conn();
  3.  
  4. if(isset($_POST['submit'])){
  5.  
  6. $baza->add($_POST['title'], $_POST['author'])
  7. } else {
  8. <form action="add.php" method="POST">
  9. <input type="text" name="title">
  10. <input type="text" name="author">
  11. <input type="hidden" name="hidden">
  12. <input type="submit" name="submit" value="Add">

model.php:
  1. class conn {
  2. function add($_POST['title'], $_POST['author']) {
  3.  
  4. echo $_POST['hidden']; // dziala
  5.  
  6. }
  7. }


skoro nie przesylam przez add $_POST['hidden'] to dlaczego moge to potem odczytac w funkcji? na jakiej to zasadzie dziala? chyba jednak to jakos zle zrobilem skoro to przechodzi

Ten post edytował sakul55 27.03.2011, 11:07:41
Go to the top of the page
+Quote Post
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


$_POST, $_GET, $_REQUEST, $_SERVER, $_COOKIE oraz $_ENV to są tablice superglobalne, które są dostępne w każdym miejscu kodu. Dlatego nie ma konieczności bezpośredniego przekazywania tych tablic do metod, chociaż kod wtedy staje się czytelniejszy,
Go to the top of the page
+Quote Post
sakul55
post
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 27.03.2011

Ostrzeżenie: (0%)
-----


dzieki juz rozumiem (IMG:style_emoticons/default/smile.gif)

a jeszcze mam jedno pytanie

  1. <?php
  2.  
  3. try
  4. {
  5. $pdo = new PDO('mysql:host=localhost;dbname=produkty', 'root', 'root', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  6. echo 'Połączenie nawiązane!';
  7. }
  8. catch(PDOException $e)
  9. {
  10. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  11. }
  12. ?>

zrobione mam funkcje do laczenia sie z baza, dodawania do bazy i edytowania. i teraz kazda z tych funkcji powinna byc objeta blokiem TRY CATCH z osobna, czy jako calosc?

mam zrobic tak:

index.php
  1. <?php
  2.  
  3. try
  4. {
  5. $conn->conn();
  6.  
  7. $conn->add(title, author);
  8.  
  9. }
  10. catch(PDOException $e)
  11. {
  12. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  13. }
  14. ?>


czy kazda z tych funkcji CONN, ADD i EDIT mam ubierac w blok TRY CATCH?
Go to the top of the page
+Quote Post
darko
post
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Nie ma takiej konieczności, wystarczy objąć blokiem try catch tylko funkcję łączącą się z bazą, jeżeli połączenia nie będzie zostanie rzucony i wyłapany wyjątek. Metody wyciągające dane w przypadku błędu nie rzucą wyjątku, a zwrócą pustą tablicę lub wartość false.
Go to the top of the page
+Quote Post
sakul55
post
Post #5





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 27.03.2011

Ostrzeżenie: (0%)
-----


dzieki (IMG:style_emoticons/default/smile.gif)
a to jeszcze przy okazji mam pytanie. jak sie powinno uzywac HTML piszac obiektowo?

jak mam np formularz to przed nim zakonczyc php ?> i zaczac pisac normalnie w HTML, czy wszystko ma byc w echo "<form> itd </form>"? rozumiem, ze do pogrubiania zamiast <b> musze uzywac CSS? a co z U i I? a <br /> mozna normalnie uzywac? bo czytalem na forum, ze ktos ma zastrzezenia, ale moze chodzilo o zwykle <br> (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
darko
post
Post #6





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


"Obiektowo" masz tylko jedno miejsce to mieszania kodu php i html i są tą templatey phtml i dokładnie tak, jak opisałeś wyskakujesz z php i wskakujesz do html itd. Tag <br/> jest tagiem samozamykającym i wymaga zamknięcia.
Go to the top of the page
+Quote Post
sakul55
post
Post #7





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 27.03.2011

Ostrzeżenie: (0%)
-----


no tak, mam zrobiony plik layout.php w html i tam wrzucam przez np <?php include 'edit.php' ?>, ale to co mam w edit.php tez moge pisac na czysto w HTML czy przez echo ?
a co z tym uzywaniem B, U i I? zamiast B CSS, a U i I moge normalnie?

Ten post edytował sakul55 27.03.2011, 12:45:49
Go to the top of the page
+Quote Post
darko
post
Post #8





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Nie wiem, co dokładnie rozumiesz pod pojęciem "obiektowo", ale może najpierw poznaj podstawy wzorców projektowych? W projektach opartych o wzorce trójwarstwowe (sprytnie ominąłem kwestie czy mvc czy nie (IMG:style_emoticons/default/tongue.gif) ) nie robisz po prostu w dowolnym miejscu: echo $data. To jest zresztą temat rzeka i miejsce licznych sporów nt. mvc, hmvc, mvp i różnic między nimi itd. Poczytaj przyklejony temat.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 14:07