Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Przekazanie zmiennej z klasy do funkcji
Malinaa
post
Post #1





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

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


Jak przekazać zmienną z klasy do funkcji?

W folderze classes mam klasę z takim kodem

Kod
class routClass {
...
   public function __construct() {
      ...
      define('NAME_CONTROLLER', $name_controller); // Jak inaczej przekazac zmienna do funkcji?
   }
}


W folderze functions mam funkcje
Kod
function writeData($value) {
    global $arrayData; // Czy funkcja z global $arrayData jest ok?
    $key = NAME_CONTROLLER;  // Jak inaczej przekazac zmienna do funkcji?
    $data = '';
    
    if (isset($arrayData[$key][$value])) {
        $data = $arrayData[$key][$value];
    }
    else {
        $data = 'Sorry value not found!';
    }
    
    echo $data;
}

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Malinaa
post
Post #2





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

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


Cytat(viking @ 19.12.2020, 11:52:17 ) *
Stykasz się z zasięgiem zmiennych wewnątrz funkcji. W view($viewName, $data = [])


Mogę przekazać dane poprzez $data[] i tak też robię z innymi danymi,
wówczas funkcja jako metoda zadziała w frameworkClass ale nie zmienia to sytuacji i tak dopiero po dodaniu global $arrayDataPages tablica jest ładowana do funkcji/metody
alternatywą dla global jest require(data.php) plik w którym jest ta tablica. Czy require() jest tu ok zamiast global?

Jeśli ok to pozostała zmienna, static::class to tandeta, więc nie o to chodzi.

W pliku routClass.php (wczytującym kontrolery w zależności od adresu strony) mam klasę i kod ze zmienną

Kod
class routClass {

public function __construct() {
            $name_controller = $this->nameController($url[0]);
}

}


Jak tę zmienną przekazać do pliku kontrolera np. indexController.php (z jednej klasy do drugiej znajdujących się w różnych plikach)?

Kod
class indexController extends frameworkClass {
    
    public function index() {
               //$html_menu = $this->buildMenu();

        $data = ['name_controller' => $name_controller, 'i inne dane dla widoku...'];

        $this->view("index", $data);
    }
}


Wówczas wynik np. z funkcji buildMenu() czyli całe Menu, które przeniosę do frameworkClass jako metodę też mógłbym wrzucić do tablicy $data i wyświetlić w widoku?!


If you try walking in my shoes... PHP Info, Please.

Kilka tygodni pracy i jest pierwsza strona na autorskim Frameworku: www.s7partner.dbm.org.pl

Z waszą pomocą, ale średnio wyszło i chciałbym popracować nad back endem php'em, może damy radę coś jeszcze usprawnić?

Tym razem przydałoby się więcej teorii o ile to możliwe bez słów typu rzuć to, powodzenia życzę, nie możliwe...


Mam pytania odnośnie kilku wypowiedzi:

1. "Nie możesz użyć normalnie composera i prawidłowego nazewnictwa zgodnie z PSR?"

Używam Composera do podstron typu Kontakt, gdzie potrzebuję PHPMailera itp., nie wiem jednak na co potrzebny jest w autorskim Frameworku (co mógłbym tu nim usprawnić)?
Standardy PSR są do opanowania, ale jak się do nich zabrać... szybko ? : )

2. "Rzucić to w diabły i użyć Symfony albo Laravela"

Wymienione frameworki są ok, ale to "krowy", samo skopiowanie plików, instalacja Symfony zajmuje stosunkowo bardzo dużo czasu, a strona otwiera się katastrofalnie na typowym serwerze.
Potrzebowałem szybkiego frameworka dla stron składających się z kilku/kilkunastu podstron i ten, który napisałem jest do tego celu dobry.
Ponadto uruchomienie strony na serwerze zajęło może 10 minut i gotowe.
Czy wymienione ciężkie frameworki są w takiej sytuacji pożądane?

3. "Pisząc w ten sposób który nam prezentujesz nabierasz tylko mega złych nawyków."
P.S. viking jak widać masz większe wyobrażenie o PHP, więc zostań mentorem, nie krzycz na mnie, że nie tak, a naucz paru rzeczy, abym nabrał dobrych nawyków.

Ten post edytował Malinaa 28.12.2020, 20:11:47
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: 11.10.2025 - 01:50