SlideShare una empresa de Scribd logo
1 de 17
URL Routing Basics
Overview
Objective
Learn the basics setting up routing in your application with
ProdigyView. This tutorial simulates an MVC.
Requirements
 Understanding of an url
 Installed version of ProdigyView with a database
 An understanding of MVC Design
Estimated Time
15 minutes

                        www.prodigyview.com
Follow Along With Code
               Example
1. Download a copy of the example code at
  www.prodigyview.com/source.

2. Install the system in an environment you feel comfortable
  testing in.

3. Proceed to mvc/helium/config/bootstrap/router.php




                       www.prodigyview.com
What is Routing
Routing is process of selecting a path to send traffic too. In
PHP, url routing is the process of directing traffic to a location
on a website.

Most frameworks and CMS using a front end controller to
control the process of routing. In this tuturial, we are going to
use Helium's routing example.

The first thing we have to do is make sure your server is
configured to handle routing.




                         www.prodigyview.com
Routing - Apache
Depending on your server set up, you can achieve routing
in apache by modifying the .htaccess file in site’s root
location. For this example, copy the code below into your
.htaccess file and the rewrite rule will work.
Routing - Nginx
If you are on a Nginx Server, routing is handled a little
differently. In your sites-available, modify the location section
of your sites configuration.




  Add this to the location for routing
Examples
In ProdigyView, routing is governed by rules. Refer to
helium’s config/bootstrap/router.php for an example of
the rule. Each rule below can correspond to a different
action.




Remember these rules, they will be used throughout this tutorial



                          www.prodigyview.com
Rules
In routing, a rule is when a certain uri matches a rules. The rules can be
exact or general match. Examples are below.
                                     Exact Match
Rule – ‘/user/login’
Will react only if the uri is ‘/user/login’
                                   Variable Match
Rule – ‘/:controller/:action’
Will react to a uri that has two elements. This mean the uri such as
‘/something/random’ will have a match.
These uri will not match with the rule aboe.
‘/something/random/more’ or ‘/something’ .

      Using ‘/:variable_name’ will make the rule match any variable in the uri
Uri and Rules
Examples of uri that will match certain rules are below.
Rules and Your Application
Once a rule is found, is up to your application to handle
the how the rule influences the execution of your code.

The rules in this tutorial were designed for an mvc, but
they can change to fit your application. Our next example
will show helium uses the rule.




                      www.prodigyview.com
Use the rules in application
    Below is Helium’s MVC and how it routes based on the
    rules.
 1. Get the route        2. If the route’s controller and action is not set, use the
                         variables form the uri. Otherwise, use variables in route..




3. Set the default value for the     4. Call the controller based upon the variables
controller and action                above.
Get Route Variable
Taking a closer look at Helium's router, we can see that the
PVRouter::getRouteVariable() method is retrieving a variable.
If the variable is defined in one of our rules and is in the uri, it
will be retrieved.




In this example, if the uri is /posts/view, it matches one of our
rules. Therefore we can retrieve the variable by calling the part of
the rule and assign it to our action in our mvc.

                          www.prodigyview.com
Get Route Variable In
             Controller
We have a way of retrieving our controller and action in
our mvc. But there will be times we need to retrieve other
variables in our application such as an id. Again, we can
use Helium as our example. Proceed to Helium’s post
controller.




                     www.prodigyview.com
Inside the Controller
Look at the beginning of our view method in the the controller.
From the rules we set before, we can retrieve the ID and use it
find data and pass it too our view.
Challenge!
To help better your understanding of routing, complete this
optional challenge.

1. Create a front end controller has multiple actions to execute.
2. In your router, add route route rules.
3. In your front end controller, set up a mapping system that
   executes commands depending on if the rule matches.

4. Run your front end controller and ensure that the correct
   commands are executed based on the route passed.
Review
1. Define route rules with the method
   PVRouter::addRouteRule()

2. Configure your web server (Apache or Nginx) to
   handle rewrite rules

3. Using a string form such as /:controller to define
   variable routes.

4. Use PVRouter::getRouteVariable() to retrieve
   variables from a route.



                      www.prodigyview.com
API Reference
For a better understanding of the PVRouter, check out the
api at the two links below.

PVRouter




                 More Tutorials
For more tutorials, please visit:

http://www.prodigyview.com/tutorials


                       www.prodigyview.com

Más contenido relacionado

Destacado

F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업
NAVER D2
 
Routing Information Protocol
Routing Information ProtocolRouting Information Protocol
Routing Information Protocol
Kashif Latif
 
Routing Protocols and Concepts - Chapter 1
Routing Protocols and Concepts - Chapter 1Routing Protocols and Concepts - Chapter 1
Routing Protocols and Concepts - Chapter 1
CAVC
 
Tutorial Pembuatan Aplikasi Website Beserta Databasenya
Tutorial Pembuatan Aplikasi Website Beserta DatabasenyaTutorial Pembuatan Aplikasi Website Beserta Databasenya
Tutorial Pembuatan Aplikasi Website Beserta Databasenya
RCH_98
 

Destacado (15)

[D2SF] Naver 오픈 API 가이드
[D2SF] Naver 오픈 API 가이드[D2SF] Naver 오픈 API 가이드
[D2SF] Naver 오픈 API 가이드
 
[Tutorial] Diccionario de Naver (Español)
[Tutorial] Diccionario de Naver (Español)[Tutorial] Diccionario de Naver (Español)
[Tutorial] Diccionario de Naver (Español)
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업
 
Curso de Coreano Gratuito
Curso de Coreano GratuitoCurso de Coreano Gratuito
Curso de Coreano Gratuito
 
Atm using fingerprint
Atm using fingerprintAtm using fingerprint
Atm using fingerprint
 
Korean1
Korean1Korean1
Korean1
 
Libro
LibroLibro
Libro
 
Alfabeto coreano en español
Alfabeto coreano en españolAlfabeto coreano en español
Alfabeto coreano en español
 
Libro de coreano básico
Libro de coreano básicoLibro de coreano básico
Libro de coreano básico
 
Jason Mdmp Chart
Jason Mdmp ChartJason Mdmp Chart
Jason Mdmp Chart
 
Routing Information Protocol
Routing Information ProtocolRouting Information Protocol
Routing Information Protocol
 
Mdmp Bctp
Mdmp BctpMdmp Bctp
Mdmp Bctp
 
Routing Protocols and Concepts - Chapter 1
Routing Protocols and Concepts - Chapter 1Routing Protocols and Concepts - Chapter 1
Routing Protocols and Concepts - Chapter 1
 
Segment Routing & Application Engeering Routing
Segment Routing & Application Engeering RoutingSegment Routing & Application Engeering Routing
Segment Routing & Application Engeering Routing
 
Tutorial Pembuatan Aplikasi Website Beserta Databasenya
Tutorial Pembuatan Aplikasi Website Beserta DatabasenyaTutorial Pembuatan Aplikasi Website Beserta Databasenya
Tutorial Pembuatan Aplikasi Website Beserta Databasenya
 

Más de ProdigyView

Más de ProdigyView (20)

Installing Plug-ins
Installing Plug-insInstalling Plug-ins
Installing Plug-ins
 
Building An Application
Building An ApplicationBuilding An Application
Building An Application
 
Installing Applications
Installing ApplicationsInstalling Applications
Installing Applications
 
Video Content Management
Video Content ManagementVideo Content Management
Video Content Management
 
Audio Content Management
Audio Content ManagementAudio Content Management
Audio Content Management
 
File Content Management
File Content ManagementFile Content Management
File Content Management
 
Email Configuration
Email ConfigurationEmail Configuration
Email Configuration
 
HTML5 Tags and Elements Tutorial
HTML5 Tags and Elements TutorialHTML5 Tags and Elements Tutorial
HTML5 Tags and Elements Tutorial
 
HTML Forms Tutorial
HTML Forms TutorialHTML Forms Tutorial
HTML Forms Tutorial
 
Html Tags Tutorial
Html Tags TutorialHtml Tags Tutorial
Html Tags Tutorial
 
Video Conversion PHP
Video Conversion PHPVideo Conversion PHP
Video Conversion PHP
 
Sending Email Basics PHP
Sending Email Basics PHPSending Email Basics PHP
Sending Email Basics PHP
 
Tools ProdigyView
Tools ProdigyViewTools ProdigyView
Tools ProdigyView
 
Custom Validation PHP
Custom Validation PHPCustom Validation PHP
Custom Validation PHP
 
Basic File Cache Tutorial - PHP
Basic File Cache Tutorial - PHPBasic File Cache Tutorial - PHP
Basic File Cache Tutorial - PHP
 
Understanding Web Cache
Understanding Web CacheUnderstanding Web Cache
Understanding Web Cache
 
Javascript And CSS Libraries
Javascript And CSS LibrariesJavascript And CSS Libraries
Javascript And CSS Libraries
 
PHP Libraries
PHP LibrariesPHP Libraries
PHP Libraries
 
SQL Prepared Statements Tutorial
SQL Prepared Statements TutorialSQL Prepared Statements Tutorial
SQL Prepared Statements Tutorial
 
Database Basics
Database BasicsDatabase Basics
Database Basics
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

Url Routing Basics Tutorial PHP

  • 2. Overview Objective Learn the basics setting up routing in your application with ProdigyView. This tutorial simulates an MVC. Requirements  Understanding of an url  Installed version of ProdigyView with a database  An understanding of MVC Design Estimated Time 15 minutes www.prodigyview.com
  • 3. Follow Along With Code Example 1. Download a copy of the example code at www.prodigyview.com/source. 2. Install the system in an environment you feel comfortable testing in. 3. Proceed to mvc/helium/config/bootstrap/router.php www.prodigyview.com
  • 4. What is Routing Routing is process of selecting a path to send traffic too. In PHP, url routing is the process of directing traffic to a location on a website. Most frameworks and CMS using a front end controller to control the process of routing. In this tuturial, we are going to use Helium's routing example. The first thing we have to do is make sure your server is configured to handle routing. www.prodigyview.com
  • 5. Routing - Apache Depending on your server set up, you can achieve routing in apache by modifying the .htaccess file in site’s root location. For this example, copy the code below into your .htaccess file and the rewrite rule will work.
  • 6. Routing - Nginx If you are on a Nginx Server, routing is handled a little differently. In your sites-available, modify the location section of your sites configuration. Add this to the location for routing
  • 7. Examples In ProdigyView, routing is governed by rules. Refer to helium’s config/bootstrap/router.php for an example of the rule. Each rule below can correspond to a different action. Remember these rules, they will be used throughout this tutorial www.prodigyview.com
  • 8. Rules In routing, a rule is when a certain uri matches a rules. The rules can be exact or general match. Examples are below. Exact Match Rule – ‘/user/login’ Will react only if the uri is ‘/user/login’ Variable Match Rule – ‘/:controller/:action’ Will react to a uri that has two elements. This mean the uri such as ‘/something/random’ will have a match. These uri will not match with the rule aboe. ‘/something/random/more’ or ‘/something’ . Using ‘/:variable_name’ will make the rule match any variable in the uri
  • 9. Uri and Rules Examples of uri that will match certain rules are below.
  • 10. Rules and Your Application Once a rule is found, is up to your application to handle the how the rule influences the execution of your code. The rules in this tutorial were designed for an mvc, but they can change to fit your application. Our next example will show helium uses the rule. www.prodigyview.com
  • 11. Use the rules in application Below is Helium’s MVC and how it routes based on the rules. 1. Get the route 2. If the route’s controller and action is not set, use the variables form the uri. Otherwise, use variables in route.. 3. Set the default value for the 4. Call the controller based upon the variables controller and action above.
  • 12. Get Route Variable Taking a closer look at Helium's router, we can see that the PVRouter::getRouteVariable() method is retrieving a variable. If the variable is defined in one of our rules and is in the uri, it will be retrieved. In this example, if the uri is /posts/view, it matches one of our rules. Therefore we can retrieve the variable by calling the part of the rule and assign it to our action in our mvc. www.prodigyview.com
  • 13. Get Route Variable In Controller We have a way of retrieving our controller and action in our mvc. But there will be times we need to retrieve other variables in our application such as an id. Again, we can use Helium as our example. Proceed to Helium’s post controller. www.prodigyview.com
  • 14. Inside the Controller Look at the beginning of our view method in the the controller. From the rules we set before, we can retrieve the ID and use it find data and pass it too our view.
  • 15. Challenge! To help better your understanding of routing, complete this optional challenge. 1. Create a front end controller has multiple actions to execute. 2. In your router, add route route rules. 3. In your front end controller, set up a mapping system that executes commands depending on if the rule matches. 4. Run your front end controller and ensure that the correct commands are executed based on the route passed.
  • 16. Review 1. Define route rules with the method PVRouter::addRouteRule() 2. Configure your web server (Apache or Nginx) to handle rewrite rules 3. Using a string form such as /:controller to define variable routes. 4. Use PVRouter::getRouteVariable() to retrieve variables from a route. www.prodigyview.com
  • 17. API Reference For a better understanding of the PVRouter, check out the api at the two links below. PVRouter More Tutorials For more tutorials, please visit: http://www.prodigyview.com/tutorials www.prodigyview.com