Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MVC + require_once
KotWButach
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

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


Witam
Napisalem sobie taką metodę do wczytywania pliczków

  1. public static function page($path) {
  2. $file = $path . '.php';
  3. if (file_exists($file))
  4. require_once $file;
  5. }


Problem pojawił się gdy pliki pomimo innego katalogu nazywają się tak samo. Wtedy MVC widzi je jako ten sam plik... choć scieżki do nich sa inne np.

  1. load::page('cos/plik.php');
  2. load::page('nic/plik.php');
  3.  


wzswietli komunikat o dublowaniu. Jak temu zapobiec sad.gif
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




1) Kod co tu masz z obiektówką nie ma żadnego związku - przenosze
2) Jaki znowu MVC?
3) Kod co tu masz jest ok nawet jeśli chodzi o te same nazwy plików. Przecież pliki podajesz ze ścieżką.

Podsumowując - problem pewnie leży gdzieś indziej w tym twoim nic nie mowiącym MVC


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

"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
korniks
post
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 22.03.2012

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


To co zrobiłeś jest troszkę bez sensu. Żeby dołączyć plik do projektu standardowo dodaje się include bądź require, u ciebie jest to load::page, czyli jedym słowem wynalazłeś koło na nowo i do tego jest gorszej jakości od poprzedników. ;/

Jeśli już nie chce ci się dodawać tych includów to możesz zrobić sobie autoloader który sam będzie przeszukiwał wszystkie podane scieżki w celu znalezienia pliku, klasy etc. wtedy zamiast .

  1.  
  2. include "czekolada.php"
  3.  
  4. $test = new czekolada();
  5.  


będzie to wyglądało tak

  1.  
  2. $test = new czekolada();
  3.  


Tutaj faktycznie może się pojawić problem z nazewnictwem, zależy jak napiszesz sobie tego autoloader'a, ja u siebie rozwiązałem to po przez dodawanie postfix przy nazwach plików i tak w katalogu Controllers nazywam pliki nazwa_controller.php dla modeli nazwa_model.php etc.

Ten post edytował korniks 21.06.2012, 17:00:23
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: 21.08.2025 - 18:46