laravel入门及技术指南

桃扇骨 2022-10-16 08:56 313阅读 0赞

介绍

  1. Laravel 是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

参考

Laravel 5.7 中文文档 https://learnku.com/docs/laravel/5.7/installation/2242

Laravel8 中文文档 https://learnku.com/docs/laravel/8.x/

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbl9kaw_size_16_color_FFFFFF_t_70

安装

我们使用composer安装,可以参考《Composer入门及技术指南》https://blog.csdn.net/yan_dk/article/details/90228559

注意,当前如果composer最新版本2.0以上使用,最好php版本使用>7.1的,本人现在使用版本为php7.2.9,使用php7.1.3是安装会出现问题。

composer.json文件如下

  1. {
  2. "name": "laravel/laravel",
  3. "description": "The Laravel Framework.",
  4. "keywords": ["framework", "laravel"],
  5. "license": "MIT",
  6. "type": "project",
  7. "require": {
  8. "php": ">=7.2.9",
  9. "laravel/framework": "^7.29"
  10. },
  11. "config": {
  12. "preferred-install": "dist"
  13. },
  14. "repositories": {
  15. "packagist": {
  16. "type": "composer",
  17. "url": "https://mirrors.aliyun.com/composer/"
  18. }
  19. }
  20. }

注意:这里php版本,laravel/framework的版本一定要找到合适对应的版本,不然会报错找不到包。可以到https://packagist.org/,输入“laravle/laravel”,查看匹配的版本。例如:现在最新laravel8版本,匹配php7.3以上,需要改配置为:

  1. "php": ">=7.3.4",
  2. "laravel/framework": "8.\*"

更新依赖包,

composer update

2021060919511762.png

注:可能会报错,php需要安装扩展fileinfo。成功后生成vendor目录

建立laravel项目

# composer create-project laravel/laravel test

注意调整php环境版本,可能报错(如php还要取消相应禁用函数proc_open、putenv),会自动根据当前的php版本创建相应的laravel版本的项目,建立成功后会在当前目录下创建“test“项目

启动项目

php artisan serve

20210529101619782.png

浏览器访问

laravel8.0

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbl9kaw_size_16_color_FFFFFF_t_70 1

可能有后台报错“RuntimeException No application encryption key has been specified”,需要运行如下指令

# php artisan key:generate

laravel7.29

20210529233959566.png

IDE工具安装插件

针对phpstorm,可以安装laravel插件,方便编码

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbl9kaw_size_16_color_FFFFFF_t_70 2

调试

安装调试工具,在phpstorm中安装

# composer require barryvdh/laravel-debugbar

安装完成后,在 config/app.php 中注册服务提供者到 providers 数组。

Barryvdh\Debugbar\ServiceProvider::class,

在配置文件 config/app.php 中添加到 aliases 数组:

'Debugbar' => Barryvdh\Debugbar\Facade::class,

然后运行如下 Artisan 命令将该扩展包的配置文件拷贝到 config 目录下:

php artisan vendor:publish

2021052919390318.png

选1

如果配置文件中 debug 设置为 true 的话,Debugbar 分析器默认是启用的,如果你想要关闭该分析器,在配置文件 config/debugbar.php 中设置 enabledfalse 即可。

phpstorm调试使用debug模式运行,显示如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbl9kaw_size_16_color_FFFFFF_t_70 3

编码

路由

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbl9kaw_size_16_color_FFFFFF_t_70 4

生成控制器

  1. 资源控制器
  2. # php artisan make:controller Api/OrderController --resouce
  3. 行为控制器
  4. # php artisan make:controller Only/SlipController --invokable
  5. 注意:
  6. 1.laravel8的路由写法按原有laravel5.7以下写法会报错,改动方法如下:
  7. class RouteServiceProvider extends ServiceProvider
  8. {
  9. # 添加该属性就可以按照之前习惯的写法编码了
  10. protected $namespace = "App\Http\Controllers";
  11. ...
  12. }

路由配置

  1. // 单一控制器
  2. Route::get('slip','Only\SlipController');
  3. Route::get('slipindex','Only\SlipController@index');
  4. //资源控制器
  5. Route::resource('order','Api\OrderController');
  6. //资源访问限制
  7. //允许指定方法访问
  8. Route::resource('order1','Api\OrderController')->only([
  9. 'index','store'
  10. ]);
  11. //不允许指定方法访问
  12. Route::resource('order2','Api\OrderController')->except([
  13. 'index','store'
  14. ]);

视图

视图定义

20210530094625404.png

  1. <!DOCTYPE html>
  2. <html lang="{
  3. { str_replace('_', '-', app()->getLocale()) }}">
  4. <head>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>Laravel</title>
  8. </head>
  9. <body>
  10. <form method="post" action="login">
  11. {
  12. {csrf_field()}}
  13. 用户:<input type="text" name="username"><br>
  14. 密码:<input type="text" name="password"><br>
  15. <button type="submit">提交</button>
  16. </form>
  17. </body>
  18. </html>

控制器

  1. class LoginController extends Controller
  2. {
  3. public function index() {
  4. return view("login/login");
  5. }
  6. public function store(Request $request)
  7. {
  8. if ($request->method() == 'POST') {
  9. return 'username:'.$request->input('username').'password:'.$request->input('password');
  10. }
  11. }
  12. }

路由配置

  1. //登录
  2. Route::get('login','LoginController@index');
  3. Route::post('login','LoginController@store');

浏览器访问http://127.0.0.1:8000/login

20210530095146569.png

发表评论

表情:
评论列表 (有 0 条评论,313人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Nginx入门技术指南

    1. Nginx介绍          Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Ngi