Laravel 学习笔记:Route

其实刚开始逛 v2ex 的时候,就听说过 PHP 框架,然后通过搜索得知最大最好用的框架是 Laravel,但我兴趣满满地打开官网,却发现自己完全看不懂,连 Quick Start 都看不懂。

还是需要有师傅带入门。

今天回顾了 Laravel Basics 的第三集,A Gentle Introduction to Routing, Controllers, and Views

Route 实现的其实是伪静态,不用创建某个目录,但是却可以直接访问那个目录。

route

这种做法我是真的从来没有想过,不过很好用是真的。

route 的控制文件位于 app/Http/routes.php,对应 Controller 的目录在 app/Http/Controllers,再对应到 View 目录是 resources/views/,如果没有老师带着,一开始真的会晕。

view

views 都会以 xxx.balde.php 去命名,我初步理解 blade 是 laravel 的一种 php 解析引擎,比方可以实现 {{$index}} 这样比较方便的变量输出,还有一些简化 PHP 函数的编写。

之前我自己闭门造轮子的时候,这方面的纠结很多,因为每一次的 html 和 php 的切换都很麻烦,非常频繁地使用<?php xxx ?>。我曾经搜索过各种关键词,什么 PHP 与 HTML 混排,什么 MVC 的实现,反正没什么好的结果能够提供给我。无奈之下,自己闭门造车,把所有 HTML 写成 php static 函数,于是就变成了这个样子:

mstar

我现在回过头去看都觉得不好意思,这居然是我写的,太丢人了。

现在我才知道,Laravel 也有非常类似的做法,但是是人家高端多了,是从反方向去做。我是全部弄成 PHP 了,导致代码的可读性很低,破坏了 HTML 的美感;Laravel 是在保留 HTML 代码的基础上,很简单地实现 PHP 语法的插入。

blade

比方上面这种函数值的直接输出,再比方 @foreach 和 @endforeach 配对,就可以直接被解析成 PHP 循环语句。

只有 view 目录下带.blade.php 这样子的文件才可以实现,这种做法真的非常省心省力。后面教程里还有关于 masterpage 的思路,也是我很想实现的,唉,真是自叹不如,以后再写。

说回 laravel,在 call 向 view 的时候,由于文件名很长,laravel 做了优化,不需要写完整的文件名,比方 index.blade.php,只需要这样写就可以了:

如果是某个目录,可以写成这样的形式,简单方便快捷:

compact 也是新学的函数。我之前曾经纠结过一个东西,如果我命名了一个变量,比方 $title,我能不能获得这个变量的 name 也就是’title’ 这个部分,而不是变量的 value,为的是可以更方便地实现变量在页面间的传递。现在有了 compact,这个问题已经不用纠结了,有多少个变量,直接往里面放就是。

可以说 laravel 发展到第五个版本,很多东西是越来越成熟了,点 100 个赞都不嫌多。

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.