• 1400/01/17

آدرس موقت temporary$ :

سلام استاد

 در جلسه 46 ، این کد ها را نوشتین

define("BASE_URL", "http://localhost:8000");

$temporary = str_replace(BASE_URL, "", explode("?", $_SERVER["REQUEST_URI"])[0]);

$temporary === "/" ? $temporary = "" : $temporary = substr($temporary, 1);

همان طور که گفته بودین SERVER["REQUEST_URI"] ، بعد لوکال هاست یا دامین بر می گردونه خوب پس چه نیازی هست که بیایم  base_url از توش حذف کنیم که اصلا توش نیست ؟

 

سوال دومم اینه که تو جلسه 55 وقتی داشتین کلاس Routing می نوشتین به صورت زیر عمل کردین 

class Routing
{
    private $current_route;
    private $method_field; // post or get or put or delete 
    private $routes;
    private $values = [];

    public function __construct() 
    {
        $this->current_route = explode("/", CURRENT_ROUTE);

        $this->method_field = $this->methodField();

        global $routes;
        $this->routes = $routes;
    }

    public function run()
    {
    }
    public function match()
    {
    }
    private function compare($reservedRouteUrl){

      //part1
      if(trim($reservedRouteUrl, '/') === ''){
        return trim($this->current_route[0], '/') === '' ? true : false;
      }

      //part2
      $reservedRouteUrlArray = explode('/', $reservedRouteUrl);
      if(sizeof($this->current_route) != sizeof($reservedRouteUrlArray)){
        return false;
      }

      //part3
      foreach ($this->current_route as $key => $currentRouteElement) {
        $reservedRouteUrlElement = $reservedRouteUrlArray[$key];
        if(substr($reservedRouteUrlElement, 0, 1) == "{" && substr($reservedRouteUrlElement, -1) == "}"){
          array_push($this->values, $currentRouteElement);
        }
        elseif($reservedRouteUrlElement != $currentRouteElement){
          return false;
        }
      }
      return true;

    }



        
    }

تو اوایلش یک متد  construct هست که توش explode کردین currentRoute بر اساس اسلش . و تبدیل به آرایه شد

اما تو فانکشن compare تو قسمت پارت یک اومدین کد زیر نوشتین

return trim($this->current_route[0], '/') === '' ? true : false;

که با trim می خواین اسلش حذف کنید ولی اسلشی وجود نداره  ، چون اون بالا اسلشا با explode  حدف شدن ؟

ممنون میشم یه بررسی کنید

  • 1400/01/18
  • ساعت 21:06

دوست عزیز جواب سوال اولتون اینکه REQUEST_URI کل ادرس رو برمیگردونه 

BASE_URL  دامین سایت رو برمیگردونه مثلا : https://toplearn.com


  • 1400/01/18
  • ساعت 21:54

سلام مرسی از پاسخ 

ولی منظور من این بود که بعد http://localhost بر می گردونه الان مثلا این دستور زیر تست کنیم 

var_dump($_SERVER["REQUEST_URI"]);

نتیجه میشه این

تو اون خط بالا گفته شده که به جای localhaost ، جالی بزار  . ولی نکته اینجاست که localhost  توش نیست 


  • 1400/01/19
  • ساعت 14:49

با سلام خدمت شما همراه عزیز‌

 

 

هر دو بخش رو برای محکم کاری نوشتیم چون همیشه ادرس current به این صورت نخواهد بود


  • 1400/01/19
  • ساعت 17:30

ممنون از لطفتون


  • 1400/01/22
  • ساعت 11:27

سلامت باشید


logo-samandehi logo-anjoman-senfi