php软件开发--laravel框架

lv6开发测试站点:

http://lv6.gqqf.xyz/admin/index/index

composer简介及安装:

composer是PHP中用来管理依赖关系的工具
一句话,composer是一个工具,是为php项目准备的软件管家。

laravel简介,安装,目录结构,运行:

PHP Web开发框架

compsoser下载laravel:
    composer create-project --prefer-dist laravel/laravel=版本 weblaravel

目录:
    app、bootstrap、config、public、resource、route、storage、vendor、env、artisan脚手架文件

运行:
    php artisan serve --port = 8000
    配置虚拟主机

csrf攻击:

跨站请求伪造
routes/web.php文件中的路由,默认就有了csrf验证功能。(除get请求)
routes/api.php文件中就没有了csrf验证功能,接口操作
排除路由csrf:app/Http/Middleware/VerifyCsrfToken.php

laravel路由、控制器、请求、响应、视图:

路由:
    路由:将用户的请求指定控制方法
    位置:/routes/web.php
    4种基础路由的定义:get、post、put、delete
        Route::请求方式('uri',匿名函数);
        Route::请求方式('uri','控制器名称@操作方法');
    其它路由:
        Route::match([请求方式,多个以逗号隔开],$uri, $callback);
        Route::any($uri, $callback);
    路由参数(必填、可填、条件限制):
        Route::get('URL/{参数名称}','闭包函数或控制器响应方法标识');
        Route::get('URL/{参数名称?}','闭包函数或控制器响应方法标识');
        Route::get('URL/{参数名称}','闭包函数或控制器响应方法标识')->where(['参数名称'=>'正则']);
    路由别名:
        Route::请求方式('uri','控制器名称@操作方法')->name('名字');
        Route::has(url) 判断路由别名是否存在
    路由组之路由前缀:
        Route::group(['prefix' => 'admin'], function () {
            Route::请求方式('uri','控制器名称@操作方法');
        });
    查看定义好的路由:
        php artisan route:list

控制器:
    位置:/app/Http/constrolls
    创建:
        使用大驼峰命名,同时注意命名空间和基类控制器的引入
        php artisan make:controller 控制器名Controller [-r]
    路由访问控制器中方法:
        Route::请求方法(URI,'[命名空间\]控制器类名@方法名')

请求:
    Input类来获取数据:
        Input::get、all、only、exception、has
    Request 获取数据:
        $request = new Request()...
        $request->get、all、only、except、has、isMethod...
    辅助函数方式来获取 request():
        request()->get、all、isMethod...

响应:
    返回字符串:
        return $str;
    设置cookie:
        return response('')->cookie(name,value,min,path...);
        echo request()->cookie('id');
    重定向:
        return redirect()->route('路由别名');
    json数据返回:
        return response()->json([
            'name' => 'zhangsan',
            'age' => 22
        ]);


视图:
    模板引擎:index.blade.php
    位置:/resource/views
    分配数据到模板:
        view(index.index.index,compact('变量名1','变量名2'))
        view(模板文件名称)->with(关联数组)
        fetch(模板文件名称)
    模板中输出变量:
        变量:{{$变量名}}
        三元运算:{{ $name or 'Default' }}
        未转义输出:{!!$变量!!}
        原始形态输出:Hello, @{{ $变量名 }}
        使用函数:{{php函数名()}}
        if语句:@if ... @elseif ... @else ... @endif
        循环:
            @foreach ($users as $key=>$user) ... @endforeach
            @forelse ($users as $key=>$user) ... @empty ... @endforelse
        模板包含:
            @include('public.header')
        模版继承:
            @extends('public.home')
            @section('content') ... @endsection

表单验证:

添加用户验证:
    {{ csrf_token() }}、{{ csrf_field() }} 简写 @csrf
    password、password_confirmation

    php artisan make:controller 控制器名
    required、between:2|4、confirmed、email
    方式一:控制器中的$this->validate方式
    $this->validate($request,[],[])
    方式二:独立方式去验证表单
    use Validate
    Validate::make($request->all(),[],[])
    方式三、验证器:
    php artisan make:request 验证器的名称

错误信息输出:
    @if(@errors->any()) @foreach($errors->all() as @arr) @endif

把默认信息换成中文:
    composer搜索lang
    resources/lang:zh-CN、重命名cn
    config/app:locale=>'cn'

Session管理

session处理:session()、Session类
	设置:
		session(name,val)、Session::put(name,val)
	读取:
		Session::all()、Session::get(name,default)
		session()->all()、session(name)
	判断:
		session()->has(name)
		Session::has(name)
	删除:
		session()->forget(name)、session()->flush();
		Session::forget(name)、Session::flush();
	闪存:
		session()->flash(name,val)
		Session::flash(name,val)
		redirect()->route('')->with(name,val)

Cache管理

Cache默认缓存类型是文件.

	判断:has
	    Cache::has(name);

	设置:add、put
	    Cache::add(name,val,ttl)
	    Cache::set(name,val,ttl);
        Cache::increment(name,num); // num默认1不填写、递增
        Cache::decrement(name,num); // 同上、递减

	删除:forever
	    Cache::forget('name')

	存储设置:member
	    Cache::member(name,ttl,function(){});

	获取:get、pull
	    Cache::get(name)
	    Cache::put(name) // 获取后并删除

你可能感兴趣的:(laravel,laravel)