单元测试
php vendor/bin/phpunit
项目重新部署
- 执行composer install安装依赖
- 执行php artisan key:generate生成key
- 建立上传文件的软连接 php artisan storage:link
- composer dump-autoload 生成自动加载文件
laravel新项目
安装新框架
composer create-project --prefer-dist laravel/laravel blog
#生成密钥
php artisan key:generate
#修改配置
locale timezone
数据库配置, session驱动 redis
#修改.gitignore忽略文件
.idea phpstorm 项目文件
#创建数据库
CREATE DATABASE `yourdbname` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
#nginx 配置
#安装常用扩展包
#目录创建
#数据迁移文件
#数据填充工厂
#注册路由
#写控制器代码
#生成系统自带的登录注册模块
php artisan make:auth
php artisn tinker
namespace App;
factory(User::class,30)->create(); //生成30个填充数据
数据迁移
建立数据表迁移文件
#新建表的迁移文件
php artisan make:migration create_users_table --create=users
#修改表的迁移文件
php artisan make:migration add_votes_to_users_table --table=users
执行迁移,生成或修改表
php artisan migrate
建立模型
#带上-m 参数 生成模型的时候同时生成 数据迁移文件
php artisan make:model Flight -m
建立数据填充文件
php artisan make:seeder UsersTableSeeder
执行填充
# 执行填充
php artisan db:seed
# 执行指定填充类
php artisan db:seed --class=UsersTableSeeder
# 重建数据库,再次填充
php artisan migrate:refresh --seed
建立控制器 composer dump-autoload
事件监听
创建时间,创建监听者,绑定两者
aritsan 命令创建 例如 登录事件,监听到后 发送邮件, 一个事件有多个监听者
时间监听流程
填充数据的方法
factory工厂,数据生成工厂,生成一条数据的内容,返回数组
seeder 类里去调用工厂,生产指定条数的数据,并执行添加生成的数据
扩展包
guzzlehttp/guzzle 网络请求
phpstorm
双击shift 查找 comman+E 然后回车, 回到上次打开的文件. 列出类的 方法属性列表 自定义 com shift 1 格式化代码 command+option+L
注册分析 见文档[安全][登录]部分
用自带的auth模块
// 获取当前认证用户
$user = Auth::user();
// 获取当前认证用户的ID
$id = Auth::id();
$request->user();
if (Auth::check())
Illuminate\Auth\Middleware\Authenticate 中的 auth 中间件
Route::get('profile', function() {
// 只有认证用户可以进入...
})->middleware('auth');
public function __construct(){
$this->middleware('auth');
}
if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) {
自己传条件判断
}
if (Auth::viaRemember()) {
//是否记住我判断
}
// 登录并 "记住" 给定用户...
Auth::login($user, true);
// 用id登录并 "记住" 给定用户...
Auth::loginUsingId(1, true);
if (Auth::once($credentials)) {
一次性认证,单次请求认证
}
Auth::logout(); //退出
Auth::logoutOtherDevices($password); 仅允许单设备登录
需要Illuminate\Session\Middleware\AuthenticateSession 中间件在 app/Http/Kernel.php 类的 web 中间件组中存在且没有被注释:
//
系统安全
调试 屏蔽敏感配置显示 官方文档 - 配置-在调试页面隐藏环境变量
config/app.php debug_blacklist 显示黑名单配置
应用程序提升速度
php artisan config:cache
系统维护
php artisan down 见文档-配置-维护模式
Envoy 部署工具,快速在本地对远程服务器执行一系列命令
扩展包
illuminate/html
intervention/image
前端发布
# 配置前端依赖
package.json
# 安装前端依赖
npm install
# webpack.mix.js 编译配置
# 创建 vue 组件,注册 vue 组件
app.js 注册vue组件
# 编译文件发布到 public目录,当你执行 npm run dev 命令的时候,Webpack 将会执行webpack.mix.js 中的指令:
npm run dev
# 发布生产环境的资源
npm run production
# 模板需要加上 token
<meta name="csrf-token" content="{{ csrf_token() }}">
注:app.js 文件会加载 resources/js/bootstrap.js 以便启动和配置 Vue,Axios,jQuery 以及所有其它 JavaScript 依赖,如果你有额外的 JavaScript 依赖需要配置,请在这里操作。
开发专用扩展包
安装开发专用扩展包时 必须 使用 --dev 参数,如:
composer require laracasts/generators --dev
开发专用的 provider 绝不在 config/app.php 里面注册,必须 在 app/Providers/AppServiceProvider.php 文件中使用如以下方式:
public function register()
{
if ($this->app->environment() == 'local') {
$this->app->register('Laracasts\Generators\GeneratorsServiceProvider');
}
}