0 laravel 安装及目录说明
安装laravel命令【指定版本】
composer create-project laravel/laravel=5.2.* --prefer-dist
阿里云composer镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
 
0.2 laravel 目录结构
######################## 目录结构 ##########################
app:主要包含应用程序的核心代码,包括路由文件、控制器文件、模型文件。
Console:主要包含所有artisan命令
Events:用来放置于事件相关的类
Exceptions:包含应用程序的异常处理类,用于处理应用程序抛出的任何异常。
Http:主要包含路由文件、控制器文件、请求文件、中间文件等,是应用程序与laravel框架源代码等外部库交互的主要地方。
Jobs:主要包含消息队列的各种消息类文件
Listeners:主要包含监听事件类文件
Providenrs:主要包含服务提供者的相关文件
./ :目录下放置模型类文件
bootstrap:主要包含几个框架启动和自动加载配置文件
config: 常用配置文件信息
database: 主要包含数据库迁移和数据填充文件
public:公共目录文件,静态资源
resource:主要包含视图文件
storage:包含编译后的Blade模板、基于文件的session、文件缓存和日志等文件
tests:主要包含自动化测试文件
vendor:主要包含依赖库文件,包含laravel框架源码
.env 文件:主要配置文件
composer.json
 
ERROR:安装后可能出现的问题
安装后报错:
error:Whoops, looks like something went wrong.
APP_KEY值复制下来修改config/app.php内
'key' => env('APP_KEY','base64:R+8tyPpcbK6ELMheXa4D8hsxdVvXDilVUSFCFqaH8vY='),
OR
No supported encrypter found. The cipher and / or key length are invalid
直接 PHP artisan key:generate即可
 
1 框架下载及部署启动
1.1 目录权限及文件保存路径【上线及正常部署需要配置】
1》laravel 目录权限设置:
storage 和 bootstrap/cache 目录在你的 web 服务下应该是可写的权限
sudo chmod -R 777 ./storage
sudo chmod -R 777 ./bootstrap/cache
2》laravel 存储的问题 软连接问题
php artisan storage:link
3》nginx增加伪静态,配置index.php 隐藏
 
2 框架功能开发
2.1 开启验证功能
快速搭建验证脚手架:
php artisan make:auth
php artisan migrate
npm run dev # 编译前端资源,如果之前已经运行过,可以跳过
TODO 配置用户名-邮箱字段验证登录【待解决】
认证配置是由 guard 和 provider 两部分构成的,guard 用于配置认证请求服务方,比如前台登录、后台登录、API登录,以及基于 Web 路由还是 API 路由(Web 路由基于 Session 进行认证,API 路由基于 Token 进行认证);
provider 用于配置用户认证数据提供方,通过 Eloquent 还是数据库,以及哪张数据表。
laravel登录机制
 
2.2 基础日常开发点
laravel实现于语言包的完美切换
 
2.10.1 控制器开发中使用到的功能点
laravel5.4获取控制器名称和方法名称
如何在Laravel中获得动作名称?
注: laravel 路由模式resource下,edit只有使用相同命名的模型才能直接获取到对应筛选条件的数据companyController => edit(Company $compnay) 下,可以获取相应条件性数据
 
2.10.2 时间问题处理
laravel时间处理的函数及包的使用
2.10.3 路由及跳转问题
1)laravel 重定向跳转注意点
路由的跳转: return Redirect::to('admin/login');
2)laravel 返回上页的url链接 url()->previous();
2.10.4 数据库及其操作
1)禁止自动更新created_at 字段
2.10.5 请求及客户操作
1) laravel获取用户真实ip
2) 添加csrf 防护
1)表单中添加 {{ csrf_field() }}
2)排除url app/Http/Middleware/VerifyCsrfToken.php 中except 数组中添加排除网址
3)X-CSRF-Token
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }});
laravel 跨域及验证csrf问题:
 
2.10.6 调试及日志记录
1)laravel 自定义log路径
 
 
3 功能开发及优化
3.1 缓存及配置
laravel缓存使用
Cache::put('memcache','hello,world',1);
Cache::get('memcache')
Cache::forget('key3');//删除
Cache::pull('key1');//取了之后删除
Cache::forever('key3','value3');//永久保存
cache 功能操作
 
可用【使用openssl_encrypt方法替代mcrypt_encrypt做AES加密】
Laravel 5 性能优化技巧
 
4 功能增强及扩展
4.1 laravel 微信登录功能
 
4.2 laravel使用jwt验证
 
4.3 laravel 队列
 
####################### 4.4 Permission自动生成的5张表 #########################
roles角色表,
role_has_permissions角色关联权限表,
permissions权限表,
model_has_roles用户关联角色表,
model_has_permission用户关联权限表
 
permission 新增方法:
#############################################################################
 
5 blade模板及数据传递
关于 appserviceProvider 中,view->composer()
视图返回及参数传递
return view('home')->with('tasks', Task::all());
view('home',['tasks'=>task:all()]); [推荐使用后者,因为简单。]
视图共享变量
view()->share('siteName','laravel 学院');
渲染数据
{{}} 包裹需要渲染的 PHP 变量 htmlentities($variable)
不进行html转义 {!! $variable !!}
@{{ $vueData }} 原文输出