Laravel 学习笔记:Route
其实刚开始逛 v2ex 的时候,就听说过 PHP 框架,然后通过搜索得知最大最好用的框架是 Laravel,但我兴趣满满地打开官网,却发现自己完全看不懂,连 Quick Start 都看不懂。
还是需要有师傅带入门。
今天回顾了 Laravel Basics 的第三集,A Gentle Introduction to Routing, Controllers, and Views。
Route 实现的其实是伪静态,不用创建某个目录,但是却可以直接访问那个目录。
这种做法我是真的从来没有想过,不过很好用是真的。
route 的控制文件位于 app/Http/routes.php,对应 Controller 的目录在 app/Http/Controllers,再对应到 View 目录是 resources/views/,如果没有老师带着,一开始真的会晕。
views 都会以 xxx.balde.php 去命名,我初步理解 blade 是 laravel 的一种 php 解析引擎,比方可以实现 {{$index}} 这样比较方便的变量输出,还有一些简化 PHP 函数的编写。
之前我自己闭门造轮子的时候,这方面的纠结很多,因为每一次的 html 和 php 的切换都很麻烦,非常频繁地使用<?php xxx ?>。我曾经搜索过各种关键词,什么 PHP 与 HTML 混排,什么 MVC 的实现,反正没什么好的结果能够提供给我。无奈之下,自己闭门造车,把所有 HTML 写成 php static 函数,于是就变成了这个样子:
我现在回过头去看都觉得不好意思,这居然是我写的,太丢人了。
现在我才知道,Laravel 也有非常类似的做法,但是是人家高端多了,是从反方向去做。我是全部弄成 PHP 了,导致代码的可读性很低,破坏了 HTML 的美感;Laravel 是在保留 HTML 代码的基础上,很简单地实现 PHP 语法的插入。
比方上面这种函数值的直接输出,再比方 @foreach 和 @endforeach 配对,就可以直接被解析成 PHP 循环语句。
只有 view 目录下带.blade.php 这样子的文件才可以实现,这种做法真的非常省心省力。后面教程里还有关于 masterpage 的思路,也是我很想实现的,唉,真是自叹不如,以后再写。
说回 laravel,在 call 向 view 的时候,由于文件名很长,laravel 做了优化,不需要写完整的文件名,比方 index.blade.php,只需要这样写就可以了:
1 |
return view ('index') |
如果是某个目录,可以写成这样的形式,简单方便快捷:
1 |
return view("index.index",compact('title','name')); |
compact 也是新学的函数。我之前曾经纠结过一个东西,如果我命名了一个变量,比方 $title,我能不能获得这个变量的 name 也就是’title’ 这个部分,而不是变量的 value,为的是可以更方便地实现变量在页面间的传递。现在有了 compact,这个问题已经不用纠结了,有多少个变量,直接往里面放就是。
可以说 laravel 发展到第五个版本,很多东西是越来越成熟了,点 100 个赞都不嫌多。