第一篇:laravel框架整理一
上一篇:laravel框架整理二
Composer
在项目中声明所依赖的外部工具库libraries,Composer会自动安装这些工具库及依赖的库文件
安装Composer:
win直接安装Composer-Setup.exe并设置环境变量,需要翻墙
通用安装(win、linux、mac):下载composer.phar,不需要翻墙
局部安装:放到项目任意目录即可
全局安装:mac和Linux将composer.phar重命名composer放到 /usr/local/bin 即可 没有权限需要给composer目录加上755权限
win将composer.phar放到php.exe同级目录,并新建批处理文件composer.bat并写入
@php "%~dp0composer.phar" %*
配置Composer中国全量镜像
composer config -gl repo.packagist
启用本镜像服务:
系统全局配置:即将配置信息添加到 Composer 的全局配置文件 config.json 中,打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:
composer config -gl repo.packagist composer https://packagist.phpcomposer.com
单个项目配置:将配置信息添加到某个项目的 composer.json 文件中,打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json 文件所在目录),执行如下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com
上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(你也可以自己手工添加):
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
使用Composer
新建项目文件夹,进入文件夹打开命令行输入:
composer init
指定包名、描述、作者、packagetype、依赖、等配置
composer search **
查询库的所有版本
composer show --all ***
声明库:在composer.json中的require声明
"库名":"版本号"
安装声明的库:
composer install
或者直接安装依赖
composer require ***
删除依赖
在json中删除不要的依赖,并执行
composer update
Composer安装Laravel
laravel是composer的一个包,所以可以用composer安装
composer create-project --prefer-dist laravel/laravel name "5.3.*"
Artisan控制台
artisan是laravel中自带的命令行工具的名称,由强大的symfony console组件驱动,提供许多对应用开发有帮主的命令
查看所有所有可用的atrisan命令:
php artisan
php artisan list
查看命令的帮助信息(help)
php artisan help migrate
artisan的基本使用:
创建控制器:php artisan make:controller UserController
创建模型:php artisan make:model User
创建中间件:php artisan make:middleware Activity
Laravel中的用户认证(Auth)
生成Auth所需文件
php artisan migrate
数据迁移
迁移文件在database\migrations下
创建迁移文件
php artisan make:migration create_user_table --create=user
创建模型时同时创建迁移文件
php artisan make:model Mode -m
数据填充
创建一个填充文件,并完善填充文件
php artisan make:seeder StudentTableSeeder
执行单个填充文件
php artisan db::seed --class=StudentTableSeeder
批量执行填充文件
php artisan db:seed
Route::auth()包含了用户验证的路由
方法路径在vendor/laravel/framework/src/Illuminate/Routing/Router.php
内置了以下路由:
/**
* Register the typical authentication routes for an application.
*
* @return void
*/
public function auth()
{
// Authentication Routes...
$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
$this->post('login', 'Auth\LoginController@login');
$this->post('logout', 'Auth\LoginController@logout')->name('logout');
// Registration Routes...
$this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
$this->post('register', 'Auth\RegisterController@register');
// Password Reset Routes...
$this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm');
$this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
$this->get('password/reset/', 'Auth\ResetPasswordController@showResetForm');
$this->post('password/reset', 'Auth\ResetPasswordController@reset');
}
其他常用功能
文件上传
新建本地端空间
'uploads'=>[
'driver'=>'local',
'root'=>storage_path('app/uploads'),
],
在form中要加上enctype="multipart/form-data" 才能上传
在controller中的上传方法
public function upload(Request $request){
if($request->isMethod('POST')){
$file=$request->file('source');
//文件是否上传成功
if($file->isValid()){
//原文件名
$originalName=$file->getClientOriginalName();
//扩展名
$ext=$file->getClientOriginalExtension();
//MimeType
$type=$file->getClientMimeType();
//临时绝对路径
$realPath=$file->getRealPath();
//验证信息
xxxx
//开始上传
//新文件名:时间+uniqid+扩展名
$filename=date('Y-m-d-H-i-s').'-'.uniqid().'.'.$ext;
$bool=Storage::disk('uploads')->put($filename,file_get_contents($realPath));
}
exit;
}
}
邮件发送
Laravel的邮件功能基于热门的Swiftmailer函数库之上,提供了一个简洁的API
Laravel为SMTP、Mailgun、Mandrill、Amazon SES、PHP的mail函数、以及sendmail提供了驱动从而允许你快速通过本地货云服务发送邮件。
配置文件:config/mail.php
发送文件格式:
纯文本:Mail::raw()
HTML:Mail::send()
例子:在配置好配置文件后,mail方法
use Mail;
public function mail(){
//发送纯文本
Mail::raw('邮件内容',function($message){
$message->from('发送人的账号','发送人的名称');
$message->subject('邮件主题');
$message->to('接收人地址');
});
//发送html,新建模板mail.blade.php
Mail::send('mail',['参数key'=>'参数value'],function($message){
$message->to('收件人地址');
});
}
缓存使用
use Mail;
public function mail(){
//发送纯文本
Mail::raw('邮件内容',function($message){
$message->from('发送人的账号','发送人的名称');
$message->subject('邮件主题');
$message->to('接收人地址');
});
//发送html,新建模板mail.blade.php
Mail::send('mail',['参数key'=>'参数value'],function($message){
$message->to('收件人地址');
});
}
use Illuminate\Support\Facades\Cache;
public function cache(){
//put()保存对象到缓存中
Cache::put('key','value',10);//10分钟到期
//get()从缓存中获取对象
$value=Cache::get('key');
//pull()从缓存中取出对象并删除该缓存
$value=Cahce::pull('key');
//add()添加缓存,key如果存在就会设置失败返回false
$bool=Cache::add('key','value',10);
//forever()永久保存对象到缓存
Cache::forever('key',value');
//has()判断key是否存在
$bool=Cache::has('key');
//forget()从缓存中删除对象,并返回
$bool=Cache::forget('key');
}
错误日志
Debug模式:配置文件:config/app.php
HTTP异常:
手动抛出异常:abort('503');
日志:
日志模式为single的方法:
public function log(){
Log::info('这是一个info 级别的日志');
Log::warning('这是一个warning级别的日志');
Log::error('这是一个error级别的日志,传入一个数组',['name'=>'labmem','error'=>'错误']); //log会把数组生成json格式
}
日志模式为daily,会每天生成一个日志文件