教程:基于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

准备

  1. VirtualBox
    一款开源虚拟机软件
    下载

  2. Vagrant Development Environments Made Easy
    一款用于构建及配置虚拟开发环境的软件,基于Ruby, 主要以命令行的方式运行。
    主要使用Oracle的开源VirtualBox虚拟化系统,与Chef,Salt,Puppet等环境配置管理软件搭配使用, 可以实行快速虚拟开发环境的构建。
    下载
    vagrant box add laravel/homestead

  3. 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

  4. 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:

  5. motify config file



    vagrant up --provision

coding

Laravel Fortify是一个与前端无关的身份认证后端实现。

  1. 安装
    使用Composer软件包管理器安装Fortify
    composer require laravel/fortify

    下一步,使用vendor:publish命令来发布Fortify的资源:
    php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"

    该命令会将Fortifyactions发布到你的app/Actions目录,如果该目录不存在,则会创建该目录。
    此外,将发布FortifyServiceProvider、配置文件和所有必要的数据库迁移。
    接下来,你应该迁移数据库:
    php artisan migrate

    在应用程序的config/app.php配置文件的providers数组中注册FortifyServiceProvider
    App\Providers\FortifyServiceProvider::class,

  2. 使用Fortify实现应用程序的身份验证功能

    1. 登录
      要开始,我们需要指导Fortify如何返回“登录”视图。
      所有身份验证视图的呈现逻辑都可以使用Laravel\Fortify\Fortify类提供的适当方法进行定制。
      通常,应该从应用程序的App\Providers\FortifyServiceProvider类的boot方法调用此方法。
      Fortify将负责定义返回此视图的/login路由:

      登录模板应该包括一个向/login发出POST请求的表单。
      /login端点期望email/usernamepassword字符串。
      email/username字段的名称应与config/fortify.php配置文件中的username值匹配。
      此外,可以提供布尔remember字段,以指示用户希望使用Laravel提供的“记住我”功能。
      如果登录尝试成功,Fortify会将你重定向到通过应用程序的Fortify配置文件中的主配置选项配置的URI
      如果登录请求是XHR请求,将返回200 HTTP响应。
      如果请求不成功,用户将被重定向回登录屏幕,验证错误将通过共享的Blade模板变量$errors提供给您。
      或者,在XHR请求的情况下,验证错误将与422 HTTP响应一起返回。
    2. 注册
      我们需要指示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响应。
    3. 重置密码
      请求密码重置链接
      要开始实现应用程序的密码重置功能,我们需要指示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

posted @ 2020-04-24 02:18  杨孝乾  阅读(58)  评论(0编辑  收藏  举报