第一篇:laravel框架整理一            上一篇:laravel框架整理二


Composer

                Composer是PHP的一个依赖管理器,不是包管理器,它涉及到"packages"和"libraries"

                在项目中声明所依赖的外部工具库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所需文件

                    在artisan控制台输入一下命令
                        php artisan make: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');
}



其他常用功能

                 文件上传

                             Laravel的文件系统是基于Frank de Jonge的Flysystem扩展包,该扩展包提供了简单接口,可操作本地端空间、AmazonS3、Rackspace Cloud Storage,可以非常简单的切换不同保存方式,但任使用相同的API操作。
                              配置文件在config/filesystems.php

                             新建本地端空间

'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('收件人地址');
});

}

                 缓存使用

                                laravel为各种不同的缓存系统提供一致的API
                                laravel支持各种常见的后端缓存系统,如File、Memcached和Redis
                                配置文件在:    config/cache.php
                                使用方法:
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

                                    进行本地开发时,应该配置APP_DEBUG环境变量为true,在线上环境,这个值应该永远为false

                        HTTP异常:

                                    有些异常描述来自服务器的HTTP错误码,比如:404、500等

                             手动抛出异常:abort('503');

                        日志:

                            laravel日志工具基于强大的Monolog库,提供了single、daily、syslog和errorlog日志模式
                            debug、info、notice、warning、error、critival和alert七个错误级别
                            配置文件:config/app.php
                            在.env中配置    APP_LOG=single

                            日志模式为single的方法:

public function log(){
Log::info('这是一个info 级别的日志');
Log::warning('这是一个warning级别的日志');
Log::error('这是一个error级别的日志,传入一个数组',['name'=>'labmem','error'=>'错误']); //log会把数组生成json格式
}

                                    日志模式为daily,会每天生成一个日志文件

                 队列应用

                              laravel队列服务为各种不同的额后台队列提供了统一的API
                              允许推迟耗时任务(例如发送邮件)的执行,从而大幅提高web请求速度                                                              
                               配置文件在:    config/queue.php