教程:基于Laravel(PHP web Framework)开发Web App
本地环境
OS:Ubuntu 20.04.5
CE:Visual Studio Code 1.72
CPU VT-x
pwd
mkdir code
185.199.111.133 raw.githubusercontent.com
sudo vi /etc/hosts
sudo apt install git
ssh-keygen -t rsa -C "your@email.com"
ls ~/.ssh
准备
-
VirtualBox
一款开源虚拟机软件
下载 -
Vagrant Development Environments Made Easy
一款用于构建及配置虚拟开发环境的软件,基于Ruby, 主要以命令行的方式运行。
主要使用Oracle的开源VirtualBox虚拟化系统,与Chef,Salt,Puppet等环境配置管理软件搭配使用, 可以实行快速虚拟开发环境的构建。
下载
vagrant box add laravel/homestead
-
Homestead
git clone https://github.com/laravel/homestead.git ~/Homestead
切换到版本v10.12.0
git checkout c045198
新建分支
git switch -c <new-branch-name>
切换到分支
git checkout -b <new-branch-name>
cd ~/Homestead
进入目录
git branch -a
查看分支列表
git checkout release
切换到release分支
bash init.sh
执行初始化
vagrant up
-
connect server
vagrant ssh
laravel
composer
npm -v
mysql --version
nginx -v
php -v
阿里镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer config -g --unset repos.packagist
npm config set registry https://registry.npm.taobao.org
npm config get registry
pwd
ls
cd code
composer create-project --prefer-dist laravel/laravel "name" 6.*
artisan
Artisan is the command line interface included with Laravel.
Artisan exists at the root of your application as the artisan script and provides a number of helpful commands that can assist you while you build your application.
To view a list of all available Artisan commands, you may use the list command:
-
motify config file
vagrant up --provision
coding
Laravel Fortify是一个与前端无关的身份认证后端实现。
-
安装
使用Composer软件包管理器安装Fortify
composer require laravel/fortify
下一步,使用vendor:publish
命令来发布Fortify的资源:
php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"
该命令会将Fortify的actions发布到你的app/Actions目录,如果该目录不存在,则会创建该目录。
此外,将发布FortifyServiceProvider
、配置文件和所有必要的数据库迁移。
接下来,你应该迁移数据库:
php artisan migrate
在应用程序的config/app.php配置文件的providers
数组中注册FortifyServiceProvider
。
App\Providers\FortifyServiceProvider::class,
-
使用Fortify实现应用程序的身份验证功能
- 登录
要开始,我们需要指导Fortify如何返回“登录”视图。
所有身份验证视图的呈现逻辑都可以使用Laravel\Fortify\Fortify
类提供的适当方法进行定制。
通常,应该从应用程序的App\Providers\FortifyServiceProvider
类的boot
方法调用此方法。
Fortify将负责定义返回此视图的/login路由:
登录模板应该包括一个向/login发出POST请求的表单。
/login端点期望email/username和password字符串。
email/username字段的名称应与config/fortify.php配置文件中的username
值匹配。
此外,可以提供布尔remember
字段,以指示用户希望使用Laravel提供的“记住我”功能。
如果登录尝试成功,Fortify会将你重定向到通过应用程序的Fortify配置文件中的主配置选项配置的URI。
如果登录请求是XHR请求,将返回200 HTTP
响应。
如果请求不成功,用户将被重定向回登录屏幕,验证错误将通过共享的Blade模板变量$errors
提供给您。
或者,在XHR请求的情况下,验证错误将与422 HTTP
响应一起返回。 - 注册
我们需要指示Fortify如何返回“注册”视图。
Fortify的所有视图渲染逻辑都可以使用Laravel\Fortify\Fortify
类提供的适当方法进行定制。
通常,您应该从App\Providers\FortifyServiceProvider
类的boot
方法调用此方法:
Fortify将负责定义返回此视图的/register路由。
您的注册模板应该包括一个表单,该表单向Fortify定义的/register端点发出POST请求。
/register端点需要字符串名称、字符串电子邮件地址/用户名、密码和密码确认字段。
电子邮件/用户名字段的名称应与应用程序的Fortify配置文件中定义的用户名配置值匹配。
如果注册尝试成功,Fortify会将用户重定向到通过应用程序的Fortify配置文件中的主配置选项配置的URI。
如果请求是XHR请求,将返回201 HTTP
响应。
如果请求不成功,用户将被重定向回注册屏幕,验证错误将通过共享的Blade模板变量$errors
提供给您。
或者,在XHR请求的情况下,验证错误将返回422 HTTP
响应。 - 重置密码
请求密码重置链接
要开始实现应用程序的密码重置功能,我们需要指示Fortify如何返回“忘记密码”视图。
Fortify的所有视图渲染逻辑都可以使用Laravel\Fortify\Fortify
类提供的适当方法进行定制。
通常,您应该从应用程序的App\Providers\FortifyServiceProvider
类的boot
方法调用此方法:
Fortify::requestPasswordResetLinkView(function () {
return view('auth.forgot-password');
});
Fortify将负责定义返回此视图的/忘记密码端点。
您的忘记密码模板应该包括一个表单,该表单向/忘记密码端点发出POST请求。
忘记密码端点需要一个字符串电子邮件字段。
此字段/数据库列的名称应与应用程序的强化配置文件中的电子邮件配置值匹配。
- 登录
composer require spatie/laravel-permission
composer require spatie/laravel-menu
composer require spatie/laravel-feed
composer require spatie/laravel-sitemap
composer require spatie/laravel-newsletter
composer require intervention/image
composer require doctrine/dbal
composer require michelf/php-markdown
composer require michelf/php-smartypants
composer require simplepie/simplepie
composer require laravelcollective/html
composer require dflydev/apache-mime-types
composer dump-autoload
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
制造控制器
php artisan make:controller BlogController
php artisan make:controller PostController --resource
php artisan make:controller PermissionController
php artisan make:controller TagController
php artisan make:controller CategoryController
php artisan make:controller UploadController
制造模型
php artisan make:model Models/Post -m
php artisan make:model Models/Tag
php artisan make:model Models/Category
php artisan make:seeder PermissionSeeder
php artisan db:seed --class=PermissionSeeder
制造资源
php artisan make:resource categories --collection
php artisan storage:link
php artisan migrate
php artisan ui bootstrap --auth
npm install
npm run dev