Giter Site home page Giter Site logo

joryashop's Introduction

项目概述

  • 产品名称:卓雅美发商城
  • 项目代号:joryaShop
  • 域名:-
  • GitHub: https://github.com/MiracleTrue/joryaShop.git

项目部署

//Linux服务器环境要求
支持Laravel 5.5 | PHP7.1 | MySql5.7 | Redis3.2
Composer | Git客户端 | crond服务 | Supervisor进程管理工具

//安装
composer install

//crond服务
crontab -e 添加
* * * * * php /{项目绝对路径根目录}/artisan schedule:run >> /dev/null 2>&1    保存
crontab -u root -l   查看

//配置 env
cp .env.example .env
php artisan key:generate

//静态资源软链接
sudo php artisan storage:link

//运行 Laravel Mix
yarn config set registry https://registry.npm.taobao.org
sudo SASS_BINARY_SITE=http://npm.taobao.org/mirrors/node-sass yarn --no-bin-links

//生产环境数据数据迁移
php artisan migrate:refresh
php artisan db:seed --class=AdminTablesSeeder
php artisan db:seed --class=ConfigsSeeder

//开发环境数据数据迁移(含测试数据)
php artisan ide-helper:generate
php artisan migrate:refresh --seed
Note: [设计外键添加的数据迁移务必注意数据迁移文件的执行次序!!!]

//后台菜单和权限修改
database\seeds\AdminTablesSeeder.php 中修改后
php artisan admin:make UsersController --model=App\\Models\\User
php artisan db:seed --class=AdminTablesSeeder

//后台系统设置构建
database\seeds\ConfigsSeeder.php 中修改后
php artisan db:seed --class=ConfigsSeeder
服务器后台运行的服务: 生产环境进程管理工具 Supervisor
  • npm run watch-poll &
  • php artisan horizon &

常用 artisan 命令

//创建模型 & 数据填充 & 控制器
php artisan make:model Models/{模型名称sgl.} -mf         //模型 & 工厂
php artisan make:seeder {模型名称pl.}Seeder             //数据填充名称一般为模型复数名
php artisan make:controller {控制器名称pl.}Controller   //控制器名称一般为模型复数名
php artisan admin:make {控制器名称pl.}Controller --model=App\\Models\\{模型名称sgl.} //控制器名称一般为模型复数名

//创建验证器
php artisan make:request {验证器名称}Request

//创建任务
php artisan make:job {任务名称}

//快速创建事件与绑定监听器
app/Providers/EventServiceProvider.php  //listen 数组包含所有的事件(键)以及事件对应的监听器(值)来注册所有的事件监听器
php artisan event:generate

//创建事件
php artisan make:event {事件名称}

//创建监听器
php artisan make:listener UpdateProductSoldCount --event=OrderPaid

//创建通知类
php artisan make:notification OrderPaidNotification

//创建授权策略类
php artisan make:policy {模型名称}Policy   //OrderPolicy

//创建队列失败表
php artisan queue:failed-table

//将所有配置文件 publish 出来
php artisan vendor:publish

//重命名工厂文件之后需要执行 ,否则会找不到对应的工厂文件。
composer dumpautoload

//清除配置文件缓存
php artisan cache:clear
php artisan route:clear
php artisan config:clear

php artisan config:cache

//清除异步队列任务
php artisan queue:flush

.env文件详解:

基础
  • APP_NAME=项目名称
  • APP_ENV=开发:local 测试:testing 预上线:staging 正式环境: production
  • APP_KEY=php artisan key:generate 生成
  • APP_DEBUG=开启Debug:true 关闭Debug:false 生产环境必须关闭
  • APP_LOG_LEVEL=日志记录的等级默认记录全部 debug 生成环境应该为:error
  • APP_URL=项目的Url地址 http://www.xxx.com
  • DEBUGBAR_ENABLED=是否开启 Debugbar

Composer 已安装插件:

安装 Laravel-ide-helper IDE & 模型注释助手
composer require barryvdh/laravel-ide-helper
添加对应配置到 .gitignore 文件中:
.idea
_ide_helper.php
_ide_helper_models.php
.phpstorm.meta.php

//IDE助手:
php artisan ide-helper:generate

//模型注释助手:
composer require doctrine/dbal
php artisan ide-helper:models
安装 Debugbar
composer require barryvdh/laravel-debugbar

生成配置文件,存放位置 config/debugbar.php:
php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"

打开 config/debugbar.php,将 enabled 的值设置为:
'enabled' => env('DEBUGBAR_ENABLED', false),
安装 中文语言包
composer require overtrue/laravel-lang

然后修改系统语言,将原本的值 en 改成 zh-CN:
config/app.php
'locale' => 'zh-CN',
图片处理扩展包,支持裁剪、水印等处理
composer require "intervention/image"

php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"

config/app.php   $providers
Intervention\Image\ImageServiceProvider::class

config/app.php   $aliases
'Image' => Intervention\Image\Facades\Image::class
Horizon 是 Laravel 生态圈里的一员,为 Laravel Redis 队列提供了一个漂亮的仪表板,允许我们很方便地查看和管理 Redis 队列任务执行的情况。
使用 Composer 安装:
composer require laravel/horizon
安装完成后,使用 vendor:publish Artisan 命令发布相关文件:
php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"
分别是配置文件 config/horizon.php 和存放在 public/vendor/horizon 文件夹中的 CSS 、JS 等页面资源文件。

Horizon 是一个监控程序,需要常驻运行,我们可以通过以下命令启动:
php artisan horizon
安装了 Horizon 以后,我们将使用 horizon 命令来启动队列系统和任务监控,无需使用 queue:listen。
encore/laravel-admin 扩展包
composer require encore/laravel-admin "1.5.*"

php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
php artisan admin:install

1. 创建控制器
Laravel-Admin 的控制器创建方式与普通的控制器创建方式不太一样,要用 admin:make 来创建:

$ php artisan admin:make UsersController --model=App\\Models\\User

其中 --model=App\\Models\\User 代表新创建的这个控制器是要对 App\Models\User 这个模型做增删改查。

Composer 常用插件:

Redis 队列驱动器依赖
composer require "predis/predis:~1.0"

//创建队列失败表
php artisan queue:failed-table
安装 DingoAPI
你必须在你的项目中修改 composer.json 文件并且运行 composer update 命令来加载这个包的最新版本。
"require": {
    "dingo/api": "2.0.0-alpha1"
}
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
导航的 Active 状态
composer require "hieu-le/active:~3.5"
函数:
function active_class($condition, $activeClass = 'active', $inactiveClass = '')
使用:
{{ active_class((if_route('category.show') && if_route_param('category', 1))) }}
安装 HTMLPurifier for Laravel 5 ( XSS攻击 用户提交数据过滤器)
使用 Composer 安装:
composer require "mews/purifier:~2.0"
命令行下运行
php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider"
图片验证码扩展包 mews/captcha
使用 Composer 安装:
composer require "mews/captcha:~2.0"
运行以下命令生成配置文件 config/captcha.php:
php artisan vendor:publish --provider='Mews\Captcha\CaptchaServiceProvider'
安装 PinYin 基于 CC-CEDICT 词典的中文转拼音工具,是一套优质的汉字转拼音解决方案。
composer require "overtrue/pinyin:~3.0"
使用 Laravel-permission 扩展包,权限和角色控制
composer require "spatie/laravel-permission:~2.7"
生成数据库迁移文件:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
php artisan migrate
生成配置信息:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
数据表:
roles —— 角色的模型表;
permissions —— 权限的模型表;
model_has_roles —— 模型与角色的关联表,用户拥有什么角色在此表中定义,一个用户能拥有多个角色;
role_has_permissions —— 角色拥有的权限关联表,如管理员拥有查看后台的权限都是在此表定义,一个角色能拥有多个权限;
model_has_permissions —— 模型与权限关联表,一个模型能拥有多个权限。
用户切换工具 sudo-su
composer require "viacreative/sudo-su:~1.1"
添加 Provider :
app/Providers/AppServiceProvider.php
    public function register()
    {
        if (app()->isLocal()) {
            $this->app->register(\VIACreative\SudoSu\ServiceProvider::class);
        }
    }
发布资源文件:
php artisan vendor:publish --provider="VIACreative\SudoSu\ServiceProvider"
resources/views/layouts/app.blade.php
    @if (app()->isLocal())
        @include('sudosu::user-selector')
    @endif
安装 easy-sms
composer require "overtrue/easy-sms"
https://github.com/overtrue/easy-sms
教程:https://laravel-china.org/courses/laravel-advance-training-5.5/791/sms-provider
安装 Guzzle HTTP 请求依赖包
composer require "guzzlehttp/guzzle:~6.3"
Alipay 和 WeChat 的 laravel 支付扩展包
composer require yansongda/pay
composer require overtrue/wechat:~4.0 -vvv

wget -O config/pay.php https://github.com/yansongda/laravel-pay/raw/master/config/pay.php

.env 文件里面配置

// alipay 配置
ALI_APP_ID=
ALI_PUBLIC_KEY=
ALI_PRIVATE_KEY=

// wechat 配置
WECHAT_APP_ID=
WECHAT_MINIAPP_ID=
WECHAT_APPID=
WECHAT_MCH_ID=
WECHAT_KEY=

//实例化
Pay::alipay(config('pay.alipay'))->web([
    'out_trade_no' => $order->no, // 订单编号,需保证在商户端不重复
    'total_amount' => $order->total_amount, // 订单金额,单位元,支持小数点后两位
    'subject' => '支付 Laravel Shop 的订单:' . $order->no, // 订单标题
]);

joryashop's People

Contributors

eli-jah avatar yuxinqiang avatar miracletrue avatar hmaisky avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.