Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przekierowanie a ładowanie metody
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Ciąglę walczę z przykładem z książki, który opisałem we wczesniejszym poście. Tym razem męczę się aby wyświetlić dahsboard.view.php

index.php
  1. require('config.php');
  2.  
  3. use Hajduk\Shortener;
  4.  
  5. $processor = new \Hajduk\Shortener\RequestProcessor();
  6.  
  7. switch ($_SERVER['HTTP_HOST']) {
  8. case ROOT_LANDING_URL:
  9. $processor->processLandingRequest($_SERVER['REQUEST_URI']);
  10. break;
  11. case ROOT_APP_URL:
  12. $processor->processAppRequest($_SERVER['REQUEST_URI']);
  13. break;
  14. case ROOT_SHORT_URL:
  15. $processor->processShortRequest($_SERVER['REQUEST_URI']);
  16. break;
  17. default:
  18. header("Location:http://" . ROOT_LANDING_URL);
  19. break;
  20. }



config.php
  1. //Define DB params
  2. define("DB_HOST", "localhost");
  3. define("DB_USER", "xxx");
  4. define("DB_PASS", 'xxx');
  5. define("DB_NAME", "stronka");
  6.  
  7. //Define URL
  8. define("ROOT_LANDING_URL", "localhost");
  9. define("ROOT_APP_URL", "app.localhost");
  10. define("ROOT_SHORT_URL", "riy");
  11.  
  12. foreach (glob("app/*.php") as $filename) {
  13. include $filename;
  14. }
  15.  
  16. include("RequestProcessor.php");


RequestProcessor.php
  1. namespace Hajduk\Shortener;
  2.  
  3. class RequestProcessor
  4. {
  5. public function processShortRequest($request)
  6. {
  7. $shortener = new Shortener();
  8. $shortener->RedirectToDestinationUrl(
  9. '/',
  10. '',
  11. $request
  12. )
  13. );
  14. }
  15. public function processAppRequest($request)
  16. {
  17. $dashboard = new Dashboard($request);
  18. $dashboard->ProcessRequest();
  19. }
  20. public function processLandingRequest($request)
  21. {
  22. require("landing.view.php");
  23. }
  24. }


I wreszcie Dashboard.php który to ma wyświetlić dashboard.view.php ale wygląda na to że mi go nie wyświetla
  1. namespace Hajduk\Shortener;
  2.  
  3. class Dashboard
  4. {
  5. private $request;
  6. private $post;
  7. private $get;
  8. public function __construct($request)
  9. {
  10. $requestString = explode("?", $request);
  11. $this->request = empty($requestString) ? $request : $requestString[0];
  12. }
  13. public function processRequest()
  14. {
  15. if (!$this->request) {
  16. return;
  17. }
  18. $this->post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
  19. $this->get = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
  20. switch ($this->request) {
  21. case "/":
  22. $this->showDashboard();
  23. break;
  24. }
  25. }
  26.  
  27. private function showDashboard()
  28. {
  29. $clicks = 1020;
  30. $count = 100;
  31. require("app/views/dashboard.view.php");
  32. }
  33. }


Po wpisaniu w przeglądarkę localhost/stronka wyświetla mi się landing page, czyli ok. Jednak po wpisaniu app.localhost/stronka nie wyświetla się nic a wg mojego rozumienia tego kodu powinno się załadować dashboard.view.php
Co robię nie tak? Jaki adres wpisać żeby odpaliła metoda showDashboard() ?

Dzięki.

PS. nospor - cierpliwości wink.gif
viking
Nospor dał Ci dobrą radę. Dumpuj. Skoro nie wchodzi do danej instrukcji to zobacz po kolei gdzie przechodzi.
Ale zainstaluj xdebug.
nospor
Pomijajac to co napisal Viking, ze ja napisalem (no naprawde, drugi temat z problemem tego samego typu... juz naprawde moglbys sam rozwiazywac takie banaly. "var_dump" i "echo dupa" twoim przyjacielem) , to mi osobiscie za bardzo nie podoba sie zrodlo z ktorego sie uczysz

No np to:

foreach (glob("app/*.php") as $filename) {
include $filename;
}

Ladujesz wszystkie pliki php ktore masz w app. Srednio fajne. NIe po to sie robi autoloadery by potem ladowac wszystko jak leci z katalogu. Zero optymalnosci
sadistic_son
No tak, z var_dump i echo 'dupa'; to już się dawno temu zaprzyjaźniłem. Swoją drogą nie sądziłem, że więcej ludzi używa dupy w ten sposób w programowaniu smile.gif

W końcu doszedłem do tego co jest nie tak w tym kodzie, ale zajęło mi to sporo czasu i nie do końca rozumiałem na początku mechanikę, która stoi za modelowaniem linków w tym kodzie. W ogóle muszę przyznać, że nie jestem zadowolony z tej książki, z której się uczę. Autor niezbyt jasno tłumaczy zastosowany kod, sporo rzeczy pomija (trzeba się domyśleć), pomija wytłumaczenie nowych zastosowanych rozwiązań, do tego popełnia literówki i potem zachodź człowieku w głowę czemu kod przepisany żywcem z książki nie działa (nawet tu na forum miałem przez to temat otwarty). No i do tego dochodzi to co nospor napisał o includzie *.php z folderu app - to już mi się najbardziej nie podoba - bo skoro uczę się z książki to zależy mi na nauce najlepszych praktyk.
Ale jak już zacząłem i jestem gdzieś mniej więcej w 3/4 książki to ją skończę.
Tomplus
Ja sam nie używam 4L, ale zdarzyło mi się spotkać takie printy u innych programistów.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.