Laravel 514 + Bootstrap 334 Note 2: Laravel Routing
1 Routing mechanism
Routing in MVC is a very important function. Its function is:
A. Match the incoming request and the parameters attached to the request according to the user access (URL);
B. Call Request to map the Controller's Action method and pass in the parameters;
C. Return the Action method processing result;
The following figure represents a user request in a simple form:
2 In Laravel Routing
In Laravel 5.1.4, the routing configuration file is app/Http/routes.php.
2.1 Directly return string routing
Append the following code segment after the original code:
Route::get('/hw', function () { return 'Hello World'; });Open the browser to access: http://localhost:801/hw, as shown below:
2.2 Route to return the view
Add the following code segment to the above code:
Route::get('/home', function () { return view('home'); });Create the view file: home.php in the directory resources/views, with the following content:
<h1 id="home">home</h1>Open the browser and visit: http://localhost:801/home

What if the code in the above example needs to pass parameters to the view page? Modify our routing code:
Route::get('/home', function () { return view('home', ['name' => '张三']); });Modify the view code:
[<?php echo $name; ?>],您好!Look at the effect of the visit again:
If there are too many views, they are usually stored by module or even by function. Create a new directory in the resources/views directory: public/demo, and then move home.php to this directory.
Modify the routing code in the above example to:
Route::get('/home', function () { return view('public.demo.home', ['name' => '张三']); });You can still open the page normally when you visit again.
2.3 Routing Parameters
As mentioned before, routing can match the user’s request parameters, so how to match? Append the code snippet to the routing file in the above example:
Route::get('user/{name}', function($name) { return '用户姓名:'.$name; });Open the browser and visit: http://localhost:801/user/jack
What if there are two parameters? Woolen cloth? Modify the routing code:
Route::get('user/{name}/{age}', function($name,$age) { return '用户姓名:'.$name.',年龄:'.$age; });Open the browser and visit: http://localhost:801/user/jack/23
What if the age parameter is not necessary? Modify the routing code again:
Route::get('user/{name}/{age?}', function($name,$age=null) { return '用户姓名:'.$name.',年龄:'.$age; });Access address: http://localhost:801/user/jack
2.4 Constraints on routing parameters
Under normal circumstances, some parameters accessed by users have certain Rules, for example, the user ID when reading user information may be a number, the news ID when modifying news information may be a GUID, etc.
Modify the routes.php file and add the following code:
Route::get('new/{id}', function($id) { return '新闻ID:'.$id; })->where('id', '[0-9]+');Open the browser to access http://localhost:801/new/3 like this:
When you can access http://localhost:801/new/abc, the provided page does not exist:
Correspondingly, when multiple parameters are restricted at the same time, you need to use an array , modify the routing code of the above example:
Route::get('new/{id}/{title}', function($id,$title) { return '新闻ID:'.$id.',新闻标题:'.$title; })->where(['id' => '[0-9]+', 'title' => '[a-z]+']);The access effect will not be demonstrated here.
In addition, we can configure global restrictions, open the file: app/Providers/RouteServiceProviders.php, and modify the boot method as follows:
public function boot(Router $router) { // $router->pattern('id', '[0-9]+'); parent::boot($router); }
Modify the routing code in the above example to:
Route::get('new/{id}', function($id) { return '新闻ID:'.$id; });The access effect is the same as the above example and will not be demonstrated here.
2.5 Get routing parameters
You can get routing parameters in routes.php to do other operations. Modify the routing code in the above example:
Route::get('new/{id}', function(Request $request, $id) { if ($request->route('id') == '2') { return '新闻ID是2'; }else{ return '新闻ID不是2,值是:'.$id; } });
in routes.php Insert a new line after php:
use Illuminate\Http\Request;
Open the browser and visit http://localhost:801/new/2 and http://localhost:801/new/3 respectively You can see different page effects.
Routing still has many complex functions that need to be studied.
Copyright Statement: This article is an original article by the blogger and may not be reproduced without the blogger's permission.
The above introduces Laravel 514 + Bootstrap 334 Note 2: Laravel routing, including aspects of content, I hope it will be helpful to friends who are interested in PHP tutorials.

ThesecrettokeepingaPHP-poweredwebsiterunningsmoothlyunderheavyloadinvolvesseveralkeystrategies:1)ImplementopcodecachingwithOPcachetoreducescriptexecutiontime,2)UsedatabasequerycachingwithRedistolessendatabaseload,3)LeverageCDNslikeCloudflareforservin

You should care about DependencyInjection(DI) because it makes your code clearer and easier to maintain. 1) DI makes it more modular by decoupling classes, 2) improves the convenience of testing and code flexibility, 3) Use DI containers to manage complex dependencies, but pay attention to performance impact and circular dependencies, 4) The best practice is to rely on abstract interfaces to achieve loose coupling.

Yes,optimizingaPHPapplicationispossibleandessential.1)ImplementcachingusingAPCutoreducedatabaseload.2)Optimizedatabaseswithindexing,efficientqueries,andconnectionpooling.3)Enhancecodewithbuilt-infunctions,avoidingglobalvariables,andusingopcodecaching

ThekeystrategiestosignificantlyboostPHPapplicationperformanceare:1)UseopcodecachinglikeOPcachetoreduceexecutiontime,2)Optimizedatabaseinteractionswithpreparedstatementsandproperindexing,3)ConfigurewebserverslikeNginxwithPHP-FPMforbetterperformance,4)

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 Chinese version
Chinese version, very easy to use

WebStorm Mac version
Useful JavaScript development tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver Mac version
Visual web development tools
