Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]PHP obiektowo
devil1051
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 29.09.2015

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


Moje początki z PHP... (IMG:style_emoticons/default/smile.gif)

Mam plik (przedstawie tylko body, żeby nie zaśmiecać)

first
  1. <form action="first.php" method="GET">
  2. One: <input type=text name="one"/><br/>
  3. Two: <input type=text name="two"/><br/>
  4. <input type=submit value="Send"/>
  5. </form>
  6. One: <?php echo $_GET['one']?><br>
  7. Two: <?php echo $_GET['two']?><br>
  8. <?php
  9. $one = (int)$_GET['one'];
  10. $two = (int)$_GET['two'];
  11. echo $one;
  12. echo "<br/>";
  13. echo $two;
  14. echo "<br/>";
  15. echo $one+$two+10;
  16. ?>


I teraz mam 3 pytania
1.Dane, które odbieram chciałbym użyć i obiektowo troche na nich namieszać. W którym miejscu mogę tworzyć nowe klasy, abym mógł je używać (można zrobić to w innych plikach?)
2.Czy mogę w jakiś sposób użyć tylko raz wstawek <?php i ?> czy muszę za każdym razem gdy chcę wypisać coś na stronie "wychodzić" z nich?
3.Chciałbym ukryć drugą część pliku (od przycisku send), aby nie była pokazywana zanim się go nie naciśnie.

Ten post edytował devil1051 29.09.2015, 22:31:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Geniesis
post
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 4.12.2013
Skąd: Śląsk

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


Może wykorzystać obiekt np. do walidacji danych po stronie serwera,
dla przykładu one może być tylko tekstem, two może być tylko liczbą
wtedy:

Sposób pierwszy używania zmiennych (w tym konkretnym przypadku nie jest on preferowany)
Validator.class.php

  1. <?php
  2.  
  3. class Validator
  4. {
  5. private $one;
  6.  
  7. private $two
  8.  
  9. public function __construct($one, $two)
  10. {
  11. $this->one = $one;
  12. $this->two = $two;
  13. }
  14.  
  15. public function text()
  16. {
  17. if (preg_math(..., $this->one)) {
  18. return true;
  19. } else {
  20. return 'err.text.format';
  21. }
  22. }
  23.  
  24. public function number()
  25. {
  26. if (preg_math(..., $this->two)) {
  27. return true;
  28. } else {
  29. return 'err.number.format';
  30. }
  31. }
  32. }


Wywołanie:
  1. require_once ('/Validator.class.php');
  2. $aResultValidation = array();
  3.  
  4. $validator = new Validator($_GET['one'], $_GET['two']);
  5. $aResultValidation['one'] = $validator->text();
  6. $aResultValidation['two'] = $validator->number();


Sposób drugi:
  1. class Validator
  2. {
  3. public function text ($data)
  4. {
  5. if (preg_math(..., $data)) {
  6. return true;
  7. } else {
  8. return 'err.text.format';
  9. }
  10. }
  11.  
  12. public function number ($data)
  13. {
  14. if (preg_math(..., $data)) {
  15. return true;
  16. } else {
  17. return 'err.number.format';
  18. }
  19. }
  20. }

Wywołanie:
  1. require_once ('/Validator.class.php');
  2. $validator = new Validator();
  3. $aResultValidation = array();
  4.  
  5. $aResultValidation['one'] = $validator->text($_GET['one']);
  6. $aResultValidation['two'] = $validator->number($_GET['two']);

Każda klasa powinna być w osobnym pliku, czyli Validator w Validator.class.php, Mailer w Mailer.class.php itd.
Najlepiej podzielić to jeszcze na konkretne podfoldery:
validation <- klasy walidujące
database <- klasy wykorzystujące bazy danych
itd.

2.W przypadku wyświetlania nie używając gotowych systemów template można robić to za pomocą JavaScript (w pierw dane przekazać za pomocą AJAX).

Ten post edytował Geniesis 30.09.2015, 13:51:48
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 06:17