Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z zasięgiem zmiennych, jw
miras
post
Post #1





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Witam, mam 3 pliki


  1. index.php
  2. {
  3. i tu includuje logika.php
  4. i widok.php
  5.  
  6. }




w logika.php mam:

  1. $test = "test";



w widok.php:


  1. echo $test;



dlaczego ta zmienna nie ma zasiegu ? Jak temu zaradzić?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




manual php -> zasieg zmiennych
I wszystko jasne wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miras
post
Post #3





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Od tego zacząłem natomiast nie znalazłem tego, co mnie konkretnie interesuje.

Chciałbym się jeszcze dowiedzieć w jaki najlepszy sposób przekazać $test z logiki do widoku?


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


przecież to działa....

index.php
  1. <?php
  2.  
  3. include 'test.php';
  4. include 'view.php';

test.php
  1. <?php
  2.  
  3. $test = 'test.php';

view.php
  1. <?php
  2.  
  3. echo $test;
Go to the top of the page
+Quote Post
miras
post
Post #5





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Dobra, chyba podałem zły przykład, w logika.php pobieram dane z metody, a samo includowanie tych plików też jest robione za pomocą metody,



logika.php
  1. $productsList = $products->getProducts();




widok.php

  1. while ($product = $productsList->fetch()) {
  2. // ...
  3. }


w tym przypadku juz nie działa..


--------------------
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


A widok to pewnie też metoda np. showProducts()? Musiałbyś do niej przekazać $productsList;


--------------------
Go to the top of the page
+Quote Post
miras
post
Post #7





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Niee, w widoku jest tylko ta pętla, która wyświetla dane z logiki

  1. while ($product = $productsList->fetch()) {
  2. // ...
  3. }


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Sprawdziles w ogole czy $productsList = $products->getProducts(); zwrocilo ci poprawne wyniki? Zrob w logika kod ktory probujesz zrobic w widok wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miras
post
Post #9





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Tak, jak wrzucam kod z logika.php do widoku to wszystko działa.

Może to przez to, że w taki sposób to includuje?


  1.  
  2. $SkinsBox->controller($_GET['page']);
  3. $SkinsBox->view($_GET['page']);
  4.  



i w tych metodach mam switch'a i dalej już tylko includuje pliki z danego katalogu


--------------------
Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Słabo masz to zrobione. Kontroler integruje dane z modeli i wstrzykuje je do widoku. U ciebie to wszystko jest zupełnie oddzielnie. Poza tym nie wiemy co to generuje więc jak można pomóc?


--------------------
Go to the top of the page
+Quote Post
miras
post
Post #11





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Konkretnie o czym mowa, "nie wiem co generuje" ? getProducts pobiera z bazy rekordy i żadnego zadania więcej nie ma.

Ja się wcale nie upieram, że muszę zostać przy takim rozwiązaniu, po prostu chciałbym się dowiedzieć jak to "zacząć", żeby później było mi wygodnie...


Czyli - w jaki sposób wstrzykiwać dane z kontrolera do widoku?

Ten post edytował miras 6.10.2016, 12:05:22


--------------------
Go to the top of the page
+Quote Post
viking
post
Post #12





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Chodzi o to że rzucasz jakimiś losowymi metodami a my nie wiemy co zawierają. Definicję i zastosowanie znajdziesz w dokumentacji dowolnego frameworka.
Przykłądowy kontroler https://github.com/zf3buch/zendframework-ce...yController.php


--------------------
Go to the top of the page
+Quote Post
miras
post
Post #13





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


hmm, to jest bardzo prosta aplikacja, ale po prostu chciałbym ją napisać w "porządny" sposób. Mógłbyś mi tak w krótkim łopatologicznym przykładzie podpowiedzieć w jaki prosty sposób "połączyć" kontroler z widokiem?


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Podalem ci przyklad jak to moze wygladac. Tam wlasnie kontroler wstrzykuje dane do widoku

viking rowniez podal ci przyklad.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miras
post
Post #15





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Ehh, nie rozumiem...

W którym miejscu mi pokazałeś jak mam to zrobic?


@ vikinga link faktycznie jest, tylko, że musiałbym się zapoznać z tym FW, żeby to zrozumieć, a chciałbym na szybko jakiś prosty przykład i tyle, a później już się zajmę jakimś FW.

Ten post edytował miras 6.10.2016, 12:31:52


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ehh, nie rozumiem...

W którym miejscu mi pokazałeś jak mam to zrobic?
W poprzednim temacie gdzie mieszales logike z widokiem. Oj chlopie, za duzo masla i skleroze juz masz... tongue.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
viking
post
Post #17





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Nie musisz się jakoś szczególnie wgłębiać w działanie żeby dostać przykład ogólnej idei MVC.


  1. public function indexAction()
  2. {
  3. // w twoim przypadku $_GET['page']
  4. $page = $this->params()->fromRoute('page', 1);
  5.  
  6. //pobieranie danych z repozytorium na bazie danych z $page
  7. // repozytorium czyli zbiór danych w skrócie, u ciebie productsList
  8. $advertList = $this->advertRepository->getAdvertsByPage(
  9. null, false, $page, 15
  10. );
  11. // jak nic nie zwrócone redirect
  12. if (!$advertList) {
  13. return $this->redirect()->toRoute('advert-backend', [], true);
  14. }
  15.  
  16. // tu jest view model
  17. $viewModel = new ViewModel();
  18. // ustawienie w widoku danych z modelu
  19. $viewModel->setVariable('advertList', $advertList);
  20. // zakończenie czyli akurat we frameworku, w podstawowej formie będzie to posłanie danych do przeglądarki
  21. return $viewModel;
  22. }


Trudne?


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 10:27