Laravel 快速起步

安装 Laravel

composer create-project laravel/laravel laravel  # "5.8.*"  指定版本 || 最新

# laravel 拥有丰富的功能,代价是需要安装很多扩展文件

#(composer会将相关的依赖都安装在vendor下)

文档:https://learnku.com/docs/laravel/6.x/installation/5124

 

文件夹结构

框架的目录结构都大同小异:

入口(/public)、配置(/config)、应用(/app)、扩展(/vendor)、缓存(/storage vs /runtime)等等..

入门阶段只需注重业务开发 (/app),但MVC结构较为随性,按照自己理解定义即可~~

文档:https://learnku.com/docs/laravel/6.x/structure/5126

 

配置

所有 Laravel 框架的配置文件都放置在 config 目录下。拿数据库配置为例(database.php):

<?php
    # env() 会读取根目录下.env 文件对应的值,第二个参数是默认值。
    # 这样的目的是方便不同环境的配置(.env文件不要上传到git)。
    'default' => env('DB_CONNECTION', 'mysql'),

文档:https://learnku.com/docs/laravel/6.x/configuration/5125

 

强悍的 artisan

# 如果不想使用apache\nginx,可以使用larvel自带的服务器 serve (一般用于测试)
php artisan serve --port 8080
# 数据迁移,相当于数据库的版本控制,生成文件位于 /database/migrations
php artisan migrate:install
# 为了方便开发,还有贼多的命令用于提高效率,看看还有哪些->_->
php artisan list 

文档:https://learnku.com/docs/laravel/6.x/artisan/5158

 

请求周期

访问 public/index.php 入口文件时,larevel 处理的大致流程:

index.php 文件载入 Composer 生成的自动加载器定义,并从 bootstrap/app.php 文件获取到 Laravel 应用实例。

传入的请求会被发送给 HTTP 内核或者 console 内核,完成在请求被处理前需要完成的工作。

所有的请求必须在处理前通过 HTTP 中间件 列表的中间件,最重要的动作之一就是载入 服务提供者 到你的应用。

一旦应用完成引导和所有服务提供者都注册完成,Request 将会移交给路由进行分发。

服务提供者是 Laravel 应用的真正关键部分,应用实例被创建后,服务提供者就会被注册完成,并将请求传递给应用进行处理,真的就是这么简单!

文档:https://learnku.com/docs/laravel/6.x/lifecycle/5130

 

路由

访问 /public/index.php 入口文件 经过一系列加载与注册事件之后,请求将移交路由进行分发处理。

如默认访问的欢迎页也是经过路由 /routes/web.php 分配的:

Route::get('/', function () {
    // view 指向 /resources/view/welcome.blade.php
    return view("welcome");
});

第一个参数是路由路径,第二个参数是回调方法,也可以直接指向 控制@方法:

// 第二个参数指向 命名空间/IndexController 控制器下的 say 方法
Route::get("test","/app/Http/Controller/Test/IndexController@say");
// 默认命名空间已包含 'App\Http\Controllers' ,所以一下写法等效
Route::get("test","Test/IndexController@say");

文档:https://learnku.com/docs/laravel/6.x/routing/5135

 

控制器

控制器位置一般位于 /app/Http/Controller/ ,,可建立文件夹分类存放,但要注意命名空间。

# 新建控制器的快捷方法:

php artisan make:controller Test/IndexController --resource

# 此命令将在  /app/Http/Controller/Test/ 下创建 IndexController.php 文件,

# --resource 会帮助新建多个常用资源操作的方法。

文档:https://learnku.com/docs/laravel/6.x/controllers/5138

 

视图

视图文件位置一般位于 /resources/view/ 下,可建立文件夹分类存放

模版引擎的逻辑都大同小异,只是定义的标签写法不一样而已。

文档:https://learnku.com/docs/laravel/6.x/views/5141

 

数据迁移

laravel 并不建议直接创建表,而是使用其提供的 artisan migrate 建表,其可方便版本控制(表处理sql都会被保存)及数据迁移合并。

#  在 /database/migrations/ 下已有两个测试table文件,直接运行

php artisan migrate

# 会成功创建 3 个表(其中一个是创建日志表 migrations)

# 需要创建其它表时,先在 /database/migrations/  生成 table 文件,

# 然后再运行创建命令 php artisan migrate

# 创建  table 文件也有快捷的命令,如创建 tests 表

php artisan make:migration create_tests_table 即可

# 为什么laravel的表一般都要加 s ?模型下有说明

相关文章:https://blog.csdn.net/king2wang/article/details/80414828

 

模型

# 像创建 控制器、migrations 一样,也可以直接使用 artisan 创建model:

php artisan make:model Test

# 其创建的模型位于 /app 下,对应的表是 Tests 而不是 Test!!

# 模型对于每个开发人员都有不同的理解,所以其位置由开发者根据自己的见解进行处理。

文档:https://learnku.com/docs/laravel/6.x/eloquent/5176

 

tinker 

进入交互模式,直接编写php代码进行调试,如

$ php artisan tinker

>>> $test = new \App\Test();

>>> $test->name = "hello world!"

>>> $test->save();

=> true

# 成功插入数据

文档:略

 

laravel 基础入门之后,其它的逻辑和其它轻量级框架也差之不多了,多读文档、多尝试、多几次实际开发 laravel 就成功上手~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章