PHP For Beginners, Ep 15 - Make a PHP Router

Поділитися
Вставка
  • Опубліковано 28 лис 2024

КОМЕНТАРІ • 153

  • @yamix-tr
    @yamix-tr 2 місяці тому +1

    ... TBH, i have never seen someone teach a language basics with modern dev mindset until now, definitely the best teacher

  • @sifr-in
    @sifr-in Рік тому +8

    i directly came to this episode.
    i was searching for "understanding routes"
    u compelled me to see "previous videos also"
    nice one.👍

  • @scott-richardson
    @scott-richardson 4 місяці тому

    Been writing PHP apps and websites for what feels like 20 years and I'm LOVING this series.

  • @garyriehle239
    @garyriehle239 Рік тому

    Jeffrey, I am a hige fan, lifetime member of Laracasts and evangelist of Laravel & Laracasts. That fake typing at the beginning almost had me spit beer on my laptop. Hahahahaha. Its awesoem how many experienced PHP guys are watching these videos here and there. Including me.

  • @rafaelxrafael
    @rafaelxrafael Рік тому +2

    what i like is that you learn how to think like a programmer, and not only about php, althought is php for beginners. Thanks

  • @nick8292
    @nick8292 Рік тому +1

    The pace of this course and the way it's delivered is perfect for me -- and many others it seems!

  • @rosswilliamson4491
    @rosswilliamson4491 Рік тому +5

    This man will get me a job his teaching style is second to nobody

  • @MrFluteboy1980
    @MrFluteboy1980 2 роки тому +9

    I'm really loving this series. I work with PHP and Javascript in my job, and I've learned everything I know about these languages just through experience and google. The basics I'm learning here is really refreshing and it's really helping me in my job, so thank you!
    To be honest, before you got to parse_url function call, I thought you'd have to pull out preg_match() and thought "ooh, this is moving quickly!" haha. Nice to see the PHP devs already thought of that!
    Keep up the great content!

    • @SXsoft99
      @SXsoft99 2 роки тому +1

      i was thinking he would do an explode :))

  • @marilynyballa809
    @marilynyballa809 2 роки тому +1

    HOLYY SHIITTT I LOVE YOU ❤❤❤ I'VE BEEN SEARCHING AROUND THE INTERNET FOR 5 HOURS AND THEN NOW IT'S OVER FINALLY I LOVE YOU MAAN

  • @kladdelic
    @kladdelic 2 роки тому +10

    I love this series! A few years ago I had really trouble with understanding routing. Your first PHP series made it so clear, it was like a sudden awakening.
    The other thing I enjoy here is that you try different concepts. Your first series was so object oriented, and now you have a more functional approach. Will you refactor to classes where appropiate? ;)
    Also, two years ago I was about to quit web developement. But your dedication made me resist that. Your one of my favorite teachers, and also guitarist like me. All the best to you. :)

    • @rosswilliamson4491
      @rosswilliamson4491 Рік тому +1

      Agreed how much better is his new stuff in the past he was to fast but his new series he explains it so much better and he charges 12 pound a month you can't go wrong

  • @jakubfrei3757
    @jakubfrei3757 Рік тому +4

    Up until this point, you were teaching us MVC model without even metioning it, its just so natural.....i really love your style of teaching things, thank you !

  • @DougLopes
    @DougLopes 2 роки тому +8

    Nice and clean as always... I was runing some tests and this behavior when you access some address that doesn't exists only works in php server. With wamp and laragon you get 404 error probably because of apache and the index.php is never called. So if you're having this issue, try just run the tutorial codes like Jeffrey in a simple "php -S localhost" and it should work.

    • @Bishop_Six
      @Bishop_Six 2 роки тому +2

      Thank you for clearing this up for me, i had the same 404 problem earlier on wamp server. but i have one question, i'm running a laravel app on WAMP and it works, i'm guessing laravel uses the same single point of entry routing system (as jeffrey did in this video) but much more advanced. if thats the case why does laravel work on WAMP and the tutorial codes in this video breaks on WAMP?

    • @DougLopes
      @DougLopes 2 роки тому +3

      @@Bishop_Six thats because laravel has a .htaccess on the public directory, and it make the apache redirect all requests to index.php entry

    • @jediampm
      @jediampm 2 роки тому +2

      @@DougLopes And also mod rewrite is needed to be active, to be able to read .htaccess files, which usually is active in sharing hosting providers and some software solutions like wamp, mamp or xamp, but not in php base containers and hosting providers by using Virtual Private Server (VPS) plan.

    • @Bishop_Six
      @Bishop_Six 2 роки тому +1

      @@DougLopes once again thank u very much. Now I can sleep in peace

    • @Bishop_Six
      @Bishop_Six 2 роки тому +1

      @@jediampm thanks u very much

  • @devKazuto
    @devKazuto 2 роки тому +5

    One thing you could have done as well is to move the `parse_url` call to the `routeToController` function. This way you would only need to pass the routes as a parameter, because `$uri` is only used in the function.

    • @Laracastsofficial
      @Laracastsofficial  2 роки тому +2

      We’re not done in that file, but it’s more flexible if we instead pass in the uri.

    • @10029759
      @10029759 10 місяців тому

      @@Laracastsofficial are you going to cover adding variables to the URL?

  • @hnni5149
    @hnni5149 Рік тому

    I really watched it twice and now the third time. Exactly as you said :)

  • @BecomeAWebDev
    @BecomeAWebDev Рік тому

    The thumbnails for many of your videos look like you are starting a social club, or dating site. Just a heads up, blast from the past sort of comment ... you're teaching methods otherwise, once the video begins, are mainly spot-on

  • @rpbale
    @rpbale 10 місяців тому +1

    Super straight forward. Nice job

  • @felipepena4081
    @felipepena4081 Рік тому +3

    Hello I have the error no found in laragon I had to use chatgpt, in my case I had to create at root folder a file call " .htaccess " inside , FallbackResource /index.php, all request should redirect to index, also you need enable mod_rewrite in your apache config

  • @piyushadhikari1039
    @piyushadhikari1039 Рік тому +7

    I'm really stuck in this episode ..
    Whenever I click on About or Contact I am seeing this (The requested URL was not found on this server) error plz help....
    I have done everything correctly,upto this point
    P.S. I'm using XAMPP

    • @hagarosama5724
      @hagarosama5724 Рік тому +2

      I am stuck too, have you solved it?

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      same here. I noticed that I can't update the uri like he did at 2:15. if you add something after 'localhost:8888/' you will get 'Not Found The requested URL /tuna was not found on this server.' but for some reason he was able to do that just fine. I am gonna try different things like googling, changing the browser or use something other than mamp.

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      I did things a bit differently because of the 'root level' thing. I basically copied the wordpress .htaccess file and replaced 'wordpress' in the file with the name of the project folder. I put the .htaccess file directly inside of the project folder and ofc the project folder was inside the htdocs file in mamp.
      Note: my project folder name was '15-make-a-php-router'
      The content of my .htaccess file:
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      RewriteBase /make-a-php-router/
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /15-make-a-php-router/index.php [L]

    • @pedrowantuirpaixao1041
      @pedrowantuirpaixao1041 Місяць тому

      i´m also stuck bro, could you solve it?

  • @SKRUBL0RD
    @SKRUBL0RD 2 роки тому +15

    pffft, show me how to make a PHP interpreter in PHP

  • @and-why
    @and-why 4 місяці тому +1

    @1:150 ish... how come your server did not respond with a 404 when you entered that jibberish url? how come all request are routed to index.php at this point? is that typical for your local server?

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      Answer 1
      Hello just want to share how I resolved this issue, first create a .htaccess on your folder(must be a root level), then copy and paste this:
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
      Answer 2
      Hello I have the error no found in laragon I had to use chatgpt, in my case I had to create at root folder a file call " .htaccess " inside , FallbackResource /index.php, all request should redirect to index, also you need enable mod_rewrite in your apache config
      Answer 3 (mamp)
      I basically copied the wordpress .htaccess file and replaced 'wordpress' in the file with the name of the project folder. I put the .htaccess file directly inside of the project folder and ofc the project folder was inside the htdocs file in mamp.
      Note: my project folder name was '15-make-a-php-router'
      The content of my .htaccess file:
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      RewriteBase /make-a-php-router/
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /15-make-a-php-router/index.php [L]

  • @cristhianjhlcom
    @cristhianjhlcom 2 роки тому +2

    Great content by the team! 🤗🤗

  • @sonoftroy8572
    @sonoftroy8572 8 місяців тому

    I know this is such a late question to ask but I’ll give it a try with the hopes of a follow up answer. I noticed in this video when you clicked the reload button in the browser and changed the URL-Path, all the requests were sent to a single entry point without the .htaccess file. How can I accomplish that same thing.

  • @wujkudobrarada
    @wujkudobrarada 2 роки тому +1

    You are doing an amazing job.
    I would like to know if you share your editor's visual settings somewhere, they are great. 😍

    • @webixr
      @webixr 11 місяців тому

      this is phpstorm ide?

  • @abdullahal-kaf5364
    @abdullahal-kaf5364 Рік тому +5

    I did everything you did in this series, but when I did this router the home page works good ,but when I click on the other pages the browser gives me 404, idk why! 😩

    • @venom_21332
      @venom_21332 Рік тому +7

      Hello just want to share how I resolved this issue, first create a .htaccess on your folder(must be a root level), then copy and paste this:
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]

    • @badal8111
      @badal8111 Рік тому

      @@venom_21332​ Can You explain why and how this works?

    • @ChatBook_
      @ChatBook_ 11 місяців тому

      @@venom_21332 THANK YOU!!!!!!!!!!!!!!!!!!!! You saved my life

    • @hamzah5661
      @hamzah5661 7 місяців тому +1

      @@badal8111 This is a file that is read by the Apache server. This is used to specify certain rules that the Apache server should follow when routing. Essentially, we are saying that if the route is not referring to a file or a directory in the project, then it should refer to index.php.
      # This is a file that is read by the Apache server. This is used to specify certain rules that the Apache server should follow when routing. Essentially, we are saying that if the route is not referring to a file nor a directory in the project, then it should refer to index.php
      RewriteEngine On
      # Exclude existing files from the rewrite rule
      RewriteCond %{REQUEST_FILENAME} !-f
      # If previous condition is true, then exclude existing directories from the rewrite rule
      RewriteCond %{REQUEST_FILENAME} !-d
      # If previous condition is true, then redirect all other requests to index.php
      RewriteRule ^ index.php [QSA,L]

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      @@venom_21332 Thanks a lot. I did things a bit differently because of the 'root level' thing. I basically copied the wordpress .htaccess file and replaced 'wordpress' in the file with the name of the project folder. I put the .htaccess file directly inside of the project folder and ofc the project folder was inside the htdocs file in mamp.
      Note: my project folder name was '15-make-a-php-router'
      The content of my .htaccess file:
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      RewriteBase /make-a-php-router/
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /15-make-a-php-router/index.php [L]

  • @jakariya.h
    @jakariya.h 2 роки тому

    If this playlist had not ended

  • @abelmarkos5753
    @abelmarkos5753 2 роки тому +1

    Very nice jeff

  • @abulyamanpro
    @abulyamanpro 4 місяці тому +1

    Sir I have a question. You are runnig the built in php web server so there is a single entry point: index.php. But on apache just gives the files that are are requested. For example: on built in php web server, demo/about will forward the request to index.php where the routing is defined. the simple router can figure out which file to require. But on apache, demo/about gives error becuase there is no file names about, instead it is about.php. the request is not passed to the index.php file which has the router. How can I solve the problem?

    • @CHSKnight
      @CHSKnight 4 місяці тому +1

      Im also stuck on that one

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      @@CHSKnight
      Answer 1
      Hello just want to share how I resolved this issue, first create a .htaccess on your folder(must be a root level), then copy and paste this:
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
      Answer 2
      Hello I have the error no found in laragon I had to use chatgpt, in my case I had to create at root folder a file call " .htaccess " inside , FallbackResource /index.php, all request should redirect to index, also you need enable mod_rewrite in your apache config
      Answer 3 (mamp)
      I basically copied the wordpress .htaccess file and replaced 'wordpress' in the file with the name of the project folder. I put the .htaccess file directly inside of the project folder and ofc the project folder was inside the htdocs file in mamp.
      Note: my project folder name was '15-make-a-php-router'
      The content of my .htaccess file:
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      RewriteBase /make-a-php-router/
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /15-make-a-php-router/index.php [L]

  • @tito-ace
    @tito-ace Рік тому

    now i appreciate php thank you..

  • @deepakkandpal3497
    @deepakkandpal3497 2 роки тому

    Thankyou for this episode, now I am clear how does those routers work

  • @MrTheRocketmaster
    @MrTheRocketmaster 6 місяців тому

    Young Michael Keaton is teaching some good PHP. Nice!

  • @sandeep.thakur__
    @sandeep.thakur__ Рік тому +1

    The code isn't fetching '/about' and '/contact' URIs. Can somebody help

  • @lahoucineoldakdim7778
    @lahoucineoldakdim7778 2 роки тому

    Great tuto.
    I have a question about different between callable Of Middleware(filters) and callable of Event Listener(hooks)
    Are boat the same if we use the
    call_user_func();

  • @fulgorth2661
    @fulgorth2661 7 місяців тому

    Hi Jeff,
    I know thiss serie is now quite a time done and I don't know if you even read this comment. But I'm no searching around for quite a long time and indeed for me who never worked in IT but wa alway interested in doing this as a hobby I am doing bad in debugging in PHP/HTML/CSS/JS... I'm more used to C, C++, Visual Basic even Assembler. It would be great if you would make a eries that explicitly teaches how to debug in Web Development! I love your little function dd() just in the beginning of this series and that i exactly what I mean!
    In this lesson I kinda miss a sentence about the problem when putting the require into a function: Every variable needed in any content would have to be forwarded to the function... That makes it obligatory (at least for me) to change thinking from other languages.

  • @Bishop_Six
    @Bishop_Six 2 роки тому +4

    Single point of entry did'nt work for me. I'm using WAMP Server with php8. On my browser, if i navigate to my project folder the index.php file loads by default which is correct. From there, if i navigate to a route that doesn't exist (as jeffrey did in the begining of the video) i get a "404 The requested URL was not found on this server" error. it does not load up the default index.php file again. Is there anything i'm doing wrong? Please help

    • @jediampm
      @jediampm 2 роки тому

      Hi,
      As i will do a general comment for Jeff, for he explain this, but i will try to explain.
      If you watched the video 2 or 3 of this series, you will see he boot up a server, but not any server, the php built in server point out to that folder, as document root.
      If you try with real server that comes with software solutions like XAMP, WAMP and MAMP or Docker container or on hosting provider (which usualy comes with Apache http server), this will not work, because of configurations like document root and other setup that it is needed.
      Ya, in his first series of PHP for beginners that he did, He did same thing and i, like you, did not understand why, which lead to more confusion to me.

    • @Bishop_Six
      @Bishop_Six 2 роки тому

      @@jediampm thanks for responding. I'm using laravel on WAMP and it works out of the box. But the tutorial codes doesn't work on the same WAMP. Why?

    • @Bishop_Six
      @Bishop_Six 2 роки тому

      @@jediampm I know laravel is much more advanced but the routing system in this tutorial looks similar to that of laravel's. Why then does laravel work on WAMP and this doesn't?

    • @Bishop_Six
      @Bishop_Six 2 роки тому

      @@jediampm never mind, i just got the answers i needed.

    • @Laracastsofficial
      @Laracastsofficial  2 роки тому +5

      If you're instead using Apache, you'll need a rewrite rule.
      gist.github.com/RaVbaker/2254618

  • @ll18307
    @ll18307 3 місяці тому

    how to do it when the uri has a path parameter like /{id} ?

  • @Auxfuse89
    @Auxfuse89 Рік тому +3

    Does anyone have a simple breakdown of why this is not working on XAMPP (windows 10)? I have updated the nav partial for the `/about` path, and added the uri check in root index.php...however, whenever I click on "About" to navigate to it, I'm getting a file not found. I've been going around in circles for hours, and have tried all approaches in the comments.
    😢So damn annoying too, because the root returns as normal....and up to this one video, no issues. I'm not naive, I've done my homework and tried a lot of alternatives...but I am a little green when it comes to PHP and the intricacies of it around local development. So any help would be huge! 🤜

    • @kazzbeast5132
      @kazzbeast5132 Рік тому +1

      I had to utilize the suggestion of a previous comment suggesting that an .htaccess file be created in the project's root folder with 'FallbackResource /project/index.php'. I hope this applies to your use case!

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      @@kazzbeast5132
      Answer 1
      Hello just want to share how I resolved this issue, first create a .htaccess on your folder(must be a root level), then copy and paste this:
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
      Answer 2
      Hello I have the error no found in laragon I had to use chatgpt, in my case I had to create at root folder a file call " .htaccess " inside , FallbackResource /index.php, all request should redirect to index, also you need enable mod_rewrite in your apache config
      Answer 3 (mamp)
      I basically copied the wordpress .htaccess file and replaced 'wordpress' in the file with the name of the project folder. I put the .htaccess file directly inside of the project folder and ofc the project folder was inside the htdocs file in mamp.
      Note: my project folder name was '15-make-a-php-router'
      The content of my .htaccess file:
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      RewriteBase /make-a-php-router/
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /15-make-a-php-router/index.php [L]

  • @learnwithkhubbaib
    @learnwithkhubbaib Рік тому +1

    Great Work as i have 10+ years experience in PHP, still learning alot from you and your way of teaching is awesome,
    I have one question when writing functions for routing why its not written in functions.php? instead have their own file, Still own file is good but functions.php means have all the functions. Can you elaborate it.

  • @asheaven1st
    @asheaven1st 2 роки тому +6

    This is exactly lesson that I need.. I search this years ago, and I didn't get it..
    You really know how to explain things.. Thanks a lot from the deep of my heart 🥲

  • @RJComedyHub
    @RJComedyHub 7 місяців тому

    Brother, Thank you so much. This process working perfectly in localhost. But not working in live server. Please help me.

  • @janupasilva
    @janupasilva 2 роки тому

    Yo this is damn good man, i really feel bad why i haven't met this channel before

  • @CHSKnight
    @CHSKnight 4 місяці тому +2

    Anyone also have issues with routers not working on xampp? Only the index router works

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      Answer 1
      Hello just want to share how I resolved this issue, first create a .htaccess on your folder(must be a root level), then copy and paste this:
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
      Answer 2
      Hello I have the error no found in laragon I had to use chatgpt, in my case I had to create at root folder a file call " .htaccess " inside , FallbackResource /index.php, all request should redirect to index, also you need enable mod_rewrite in your apache config
      Answer 3 (mamp)
      I basically copied the wordpress .htaccess file and replaced 'wordpress' in the file with the name of the project folder. I put the .htaccess file directly inside of the project folder and ofc the project folder was inside the htdocs file in mamp.
      Note: my project folder name was '15-make-a-php-router'
      The content of my .htaccess file:
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      RewriteBase /make-a-php-router/
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /15-make-a-php-router/index.php [L]

    • @ImEli2215
      @ImEli2215 Місяць тому

      And I cannot seem to find the solution.

    • @CHSKnight
      @CHSKnight Місяць тому

      @@ImEli2215 check my other comment/comments. I found the solution

  • @blitzenon7999
    @blitzenon7999 Рік тому

    This is working in localhost, but I have problem in deploying with custom route.

  • @SXsoft99
    @SXsoft99 2 роки тому +1

    cant wait for routes that have parameters in them, even if people tend to have the parameters like "id=1" as a query param

  • @electricsupplyus
    @electricsupplyus Рік тому

    Can you make a video on Dynamic Routing? Creating pages based on JSON data?

  • @AnggaNegara
    @AnggaNegara 2 роки тому

    Wouldn't this fail if I hit the page with, for example, /about/?123 ? or if the server configuration for trailing slash is enabled

  • @peculiarprecious9814
    @peculiarprecious9814 2 роки тому

    I love this video. Please kindly share the video of the functions.php

  • @MictoSoftware
    @MictoSoftware 10 місяців тому

    what to do if i have another button in the homepage and it has another link page? pls i hope you notice it..

  • @muratbadem3638
    @muratbadem3638 Рік тому

    When I put it into the file named x, it gives an error and says it is indexing. Is there a solution? I can't use a router.

  • @MrRicardosgeral
    @MrRicardosgeral Рік тому +3

    Hi
    I get 404 error when i put something after the "/" in the url
    for example
    localhost/something
    gives me a 404
    i'm using laragon
    How did you not got an error?

    • @imransadikbangla
      @imransadikbangla 11 місяців тому +1

      I am facing same issue.

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      answers of people who faced the same problem:

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      Answer 1
      Hello just want to share how I resolved this issue, first create a .htaccess on your folder(must be a root level), then copy and paste this:
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      Answer 2
      Hello I have the error no found in laragon I had to use chatgpt, in my case I had to create at root folder a file call " .htaccess " inside , FallbackResource /index.php, all request should redirect to index, also you need enable mod_rewrite in your apache config

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      Answer 3 (mamp)
      I basically copied the wordpress .htaccess file and replaced 'wordpress' in the file with the name of the project folder. I put the .htaccess file directly inside of the project folder and ofc the project folder was inside the htdocs file in mamp.
      Note: my project folder name was '15-make-a-php-router'
      The content of my .htaccess file:
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      RewriteBase /make-a-php-router/
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /15-make-a-php-router/index.php [L]

  • @alalyrealestate1136
    @alalyrealestate1136 Рік тому +1

    Thanks >>> but can you help me >>> because i have a problem running this code on windows xampp, in the comments "son of troy" suggested using htaccess file, but i don't how to do it

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      Answer 1
      Hello just want to share how I resolved this issue, first create a .htaccess on your folder(must be a root level), then copy and paste this:
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
      Answer 2
      Hello I have the error no found in laragon I had to use chatgpt, in my case I had to create at root folder a file call " .htaccess " inside , FallbackResource /index.php, all request should redirect to index, also you need enable mod_rewrite in your apache config
      Answer 3 (mamp)
      I basically copied the wordpress .htaccess file and replaced 'wordpress' in the file with the name of the project folder. I put the .htaccess file directly inside of the project folder and ofc the project folder was inside the htdocs file in mamp.
      Note: my project folder name was '15-make-a-php-router'
      The content of my .htaccess file:
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      RewriteBase /make-a-php-router/
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /15-make-a-php-router/index.php [L]

  • @christopherstage9814
    @christopherstage9814 2 роки тому

    Jeffrey writes his own framework

  • @cubedev4838
    @cubedev4838 Рік тому +2

    Amazing!!

  • @niranjanfartare1523
    @niranjanfartare1523 Рік тому

    Awesome Series, but getting a 404 Not Found on Apache for /about, works great with php -S.

  • @טלעמית-מ9כ
    @טלעמית-מ9כ Рік тому

    Really great series!
    There is a problem with the router settings in xampp. If I find a solution, I will write here

    • @ImEli2215
      @ImEli2215 Місяць тому

      Did you ever find the solution?

  • @UndercoverDog
    @UndercoverDog Рік тому +1

    Thanks so much

  • @vuhoan-f7r
    @vuhoan-f7r 9 місяців тому

    why you cut config file .htaccess, how newbie can understand when see this video.

  • @saziknows
    @saziknows 2 роки тому

    Thank you🙇‍♂️bringer of wisdom

  • @imransadikbangla
    @imransadikbangla 11 місяців тому

    My code not work. I used your code too, but it still not works. It shows "Not Found
    The requested URL was not found on this server." Please solve this problem. Thanks.

    • @لوسيفرجبريل
      @لوسيفرجبريل 2 місяці тому

      Answer 1
      Hello just want to share how I resolved this issue, first create a .htaccess on your folder(must be a root level), then copy and paste this:
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
      Answer 2
      Hello I have the error no found in laragon I had to use chatgpt, in my case I had to create at root folder a file call " .htaccess " inside , FallbackResource /index.php, all request should redirect to index, also you need enable mod_rewrite in your apache config
      Answer 3 (mamp)
      I basically copied the wordpress .htaccess file and replaced 'wordpress' in the file with the name of the project folder. I put the .htaccess file directly inside of the project folder and ofc the project folder was inside the htdocs file in mamp.
      Note: my project folder name was '15-make-a-php-router'
      The content of my .htaccess file:
      RewriteEngine On
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      RewriteBase /make-a-php-router/
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /15-make-a-php-router/index.php [L]

  • @jediampm
    @jediampm 2 роки тому +2

    Hi Jeff,
    Please explain in the next video why this works on php built in server and it will not in software solutions like XAMP, LAMP OR WAMP, Docker container or even on hosting provider.
    I am asking, because you did same thing your first series of php for beginners ( The PHP Practitioner), and it just confuse me a lot and i am sure others too, at that time in laracast.
    For example, here in youtube, you have a comment about this from Philip Tammy, to avoid more confusion and misleading people to think that make a router is simple and no need to config a server.
    Another think i want to ask is what is best practice for naming routes / url for full website and web api, because i worked for companies that do not how should naming the pages or routes.
    Thanks.

    • @Laracastsofficial
      @Laracastsofficial  2 роки тому +3

      We're using PHP's built-in server for this series, so we get the rewriting for free. If you're using Apache or Nginx, the rules might be different. That's all entirely separate from the process of writing a simple PHP router.
      A quick Google search for something like "Apache rewrite to index.php" will provide hundreds of solutions.
      gist.github.com/RaVbaker/2254618
      stackoverflow.com/questions/12195622/apache-redirect-directory-to-index-php

    • @jediampm
      @jediampm 2 роки тому +2

      @@Laracastsofficial Hi, i know that you you using built-in server and for prod server you need mod rewrite to read the htaccess file and. htaccess file configuration for apache http server ( where all frameworks provide that kind of config file for Apache) , as i said long time ago i watched The PHP Practitioner (which was great) and i did my research for that at that time, so no need to explain to me now.
      To go direct to the point, in this video you should be clear, to your viewers, don't repeat same mistake of dont saying the how and why this is working. By saying or write in the comments is not enough, not all people will read the comments or make some research on it because they dont know the problem or what key words to use.
      And another thing, for simple projects, you dont need router to have clean urls, because like you show, if you have a file call index.php, the server know what to do, you have a folder call contact and inside you have a file call index.php or ( even index.html if it is only static page), you do '/contact/' , it will load the file. you just mention and show but dont said why should be index.php, i tell you, because exist config file that said to the server files call index.php or index.html is to load and give priority.
      Thanks.

    • @hassanrezve7269
      @hassanrezve7269 Рік тому

      @@Laracastsofficial i was very confused and frustated until i read the comments thanks jeff for the help i solved the problem by googling the solution as u told us to write

    • @ibrahimcious
      @ibrahimcious Рік тому

      thanks man, I confused too. I had re-installed xampp in my PC, but still doesn't work. Using PHP's build-in server is the answer.

    • @MartinExequielFuraca
      @MartinExequielFuraca Рік тому

      Im having the same f* problem, still can’t solve it.
      How do u use php-built in server?
      Would it affect my xamp config?

  • @and-why
    @and-why 9 місяців тому +2

    To all xammp users, short open tag

    • @ImEli2215
      @ImEli2215 Місяць тому

      ; short_open_tag
      ; Default Value: On
      ; Development Value: Off
      ; Production Value: Off
      This is what is in the php.ini file do I need to change anything?

    • @and-why
      @and-why Місяць тому

      @@ImEli2215 find or add it a bit lower down in the file without the semicolons in the beginning, what you pasted is part of Quick Reference and is not a config

    • @ImEli2215
      @ImEli2215 Місяць тому

      @@and-why Ow ok let me try that out and see if it works.

  • @imhayatunnabi
    @imhayatunnabi 2 роки тому

    what is the name of this ide ?
    plz let me know

  • @mehmetaydar_QXyGeN
    @mehmetaydar_QXyGeN 5 місяців тому

    Amazing 🔥👑

  • @thuriyayenaing7571
    @thuriyayenaing7571 Рік тому +2

    anybody who's wondering why their routing doesn't work , look for the answers in the comments

  • @BenTV_Italia
    @BenTV_Italia 2 роки тому

    PHP is the best

  • @emreonural
    @emreonural Рік тому

    please share editor, looking best!

  • @axel2004.
    @axel2004. 2 роки тому

    ITS REALLY WORKED LOL THANK YOU DUDE

  • @Trebukeet
    @Trebukeet Місяць тому

    @1:52 Why are you not getting a 404 not found?😕

    • @Trebukeet
      @Trebukeet Місяць тому

      I found a solution. I had to add a redirect all in IIS web.config.

  • @Mahin_katariya
    @Mahin_katariya 5 місяців тому

    for some reason its not working for me

  • @RodrigoMendoza7
    @RodrigoMendoza7 Рік тому

    1:42 General Kenobi!

  • @GuDvIn31region
    @GuDvIn31region 2 роки тому

    Thank you!

  • @adorablebabiesandpets2514
    @adorablebabiesandpets2514 2 роки тому

    Can you teach SOLID PRINCIPLE in php please

  • @fmgchannel5650
    @fmgchannel5650 Рік тому

    thanks for video

  • @ozorg
    @ozorg 2 роки тому

    great tut! thx!

  • @michi19935
    @michi19935 5 місяців тому

    The real question is how do I create product pages without GET Params. This would look much better

  • @bimbim1862
    @bimbim1862 Рік тому

    PHP For Beginners from master :D

  • @kaneich
    @kaneich Рік тому +1

    this will not work if you running in apache service he running it from php server php -S it will work but in apache you need to use .htaccess

    • @imransadikbangla
      @imransadikbangla 11 місяців тому

      I am facing this issue. How can I solve this? Can you explain it please?

  • @JoshuaRotimi
    @JoshuaRotimi 2 роки тому

    Wow!

  • @rustamergashev7278
    @rustamergashev7278 4 місяці тому

    👍

  • @sonoftroy8572
    @sonoftroy8572 2 роки тому

    Hey I have a quick question. when it comes to relative path vs absolute path, how does that affect my application? a few things to note, my file structure has the public, App dir structure. and my httpd.conf document root and directory points to the public folder by default. I have a bug that wont allow me to request the about page or contact page. I'm confused because my file and url paths are correct... but the error message is telling me the request url was not found on the server. That cant be right... I know my paths are correct. thoughts anyone...

    • @fernandolicea2088
      @fernandolicea2088 Рік тому

      Use the server by PHP, you can use: php -S localhost:8888 in the console

  • @sumith
    @sumith Рік тому

    nic cool😍

  • @codewithjom
    @codewithjom Рік тому

    *in the last episode we learn how to die* 1:57

  • @transi2844
    @transi2844 Рік тому

    theme

  • @andrewtedjawardana5198
    @andrewtedjawardana5198 3 місяці тому

    5:28

  • @ErwinMaas
    @ErwinMaas Рік тому +1

    This is not for beginners, you lost me after 2 minutes and I am not a beginner. You go way too fast and don't explain, you just show things.

  • @somegoofy
    @somegoofy Рік тому +1

    2:21 localhost/contact does not return REQUEST_URI = "/contact" ........... why? simple - 404 The requested URL /contact was not found on this server and this happens before any php
    whole thing start working after: = changing apache httpd.conf, = adding corect .htaccess file in corect folder, = modifing in php code path to php files

  • @haseebzafar5957
    @haseebzafar5957 Рік тому

    $uri = parse_url($_SERVER['REQUEST_URI'])['path'];

    if($uri === '/routing/index'){
    require 'controllers/index.php';
    }else if($uri === '/routing/contact'){
    echo 'controllers/contact.php';
    }
    I wrote this code in index.php, the route of index is working but contact is not opening on index.php. For contact I must declare contact.php then it will work, kind please help me to sort it.

  • @pmanolak
    @pmanolak 2 роки тому

    Excellent lesson!!!!

  • @DanielDrummond2k6
    @DanielDrummond2k6 10 місяців тому

    Hi! I'm having trouble when we're going to implement the error pages. Chrome simply does not display the page, in this case 404.php but a standard 404 error from Chrome. I've already tried creating a .htaccess file to try and resolve it without success. Can we help me?