Laravel学习
2014-07-08 05:49 轩脉刃 阅读(33081) 评论(1) 编辑 收藏 举报Laravel是个很强大的PHP框架,它剔除了开发中Web开发中比较痛苦的过程,提供了验证(authentication),路由(routing),Session和缓存(caching)等开发过程中常用到的工具或者功能。
Laravel的配置都存放在app/config中。
里面所有的*.php都按照return的形式返回数据,那么就可以使用Config::get("key")来获取配置。使用Config::set("key", "value") 来赋值配置项
要想使用不同的环境配置,就需要在config下创建对应配置的文件夹。然后它会覆盖对应的配置项。
获取当前的环境是使用App::environment(),判断当前环境是什么是使用:App::environment("local")
providers是用来配置对应的服务的,比如:
Laravel的请求周期:
1 请求先从public/index.php中进入
2 bootstrap/start.php文件创建app并检测环境
3 内部的 /Illuminate/Foundation/start.php文件配置相关设置并加载服务器
4 加载app/start目录下的文件
5 加载app/routes.php的路由设置
6 request通过controller等转化为response
7 返回response
路由配置:
配置的格式是:
Route::get(\'foo/bar\', funciton(){return \'Hello World\';})
路由参数是可以有下面几种的:
可选路由参数:
带有默认的可选的路由参数:
用正则表达式限定的路由参数:
传递参数限定的数组:
定义全局模式:
不同的参数定位到不同的路由:
好,现在有个问题是某些路由必须要登录或者验证才能访问怎么办?这里就使用到了路由过滤器这个东西。
比如下面这个例子,当年龄小于200的时候就跳转到主页:
Request中的操作:
获取用户提交的值:Input::get(\'name\');
获取用户提交的值并指定默认值:Input::get(\'name\', \'Sally\');
用户提交的信息是否存在:Input::has(\'name\')
获取所有用户提交的信息:Input::all()
获取其中几项指定的信息:Input::only(\'username\', \'password\');
获取除几项之外的提交信息:Input::except(\'card\');
访问用户提交的数组:Input::get(\'products.0.name\');
cookie操作:
获取Cookie中的值:Cookie::get(\'name\')
添加一个Cookie:
$response = Response::make(\'Hello World\');
$response->withCookie(Cookie::make(\'name\', \'value\', $minutes));
如果想在Response之前设置Cookie,使用Cookie::queue()
Cookie::queue($name, $value, $minute);
Session操作:
存储一个变量:Session::put(\'key\', \'value\');
读取一个变量:Session::get(\'key\');
读取一个变量或者返回默认值:Session::get(\'key\', \'default\');
检查一个变量是否存在:Sesssion::has(\'key\');
删除一个变量:Session::forget(\'key\');
删除所有Session变量:Session::flush();
文件上传操作:
获取用户上传文件:$file = Input::file(\'photo\');
判断是否有上传这个文件:Input::hasFile(\'photo\');
移动上传的文件:
Input::file(\'photo\')->move($destinationPath);
Input::file(\'photo\')->move($destinationPath, $fileName);
获取上传文件大小:
Input::file(\'photo\')->getSize();
获取上传文件类型:
Input::file(\'photo\')->getMimeType();
获取用户请求路径:Request::path();
获取用户请求URL:Request::url();
获取Header中的信息:Request::header(\'Content-Type\');
获取SERVER中的信息:Request::server(\'PATH_INFO\');
重定向:
重定向: return Redirect::to(\'user/login\');
有参数的重定向: return Redirect::to(\'user/login\')->with(\'message\', \'Login Failed\');
重定向到路由:return Redirect::route(\'profile\', array(\'user\' => 1));
返回重定向到Action:return Redirect::action(\'UserController@profile\', array(\'user\' => 1));
视图层:
传递数据给视图:$view = View::make(\'greeting\')->with(\'name\', \'Steve\');
将一个视图传递给另一个视图:$view = View::make(\'greeting\')->nest(\'child\', \'child.view\');
返回json:return Response::json(array(\'name\' => \'Steve\', \'state\' => \'CA\'));
返回jsonp:return Response::json(array(\'name\' => \'Steve\', \'state\' => \'CA\'))->setCallback(Input::get(\'callback\'));
返回下载文件:
return Response::download($pathToFile);
return Response::download($pathToFile, $status, $headers);
一个基本的控制器:
路由就长这样:
默认中,app/start/global.php文件中包含了一个处理所有异常的处理器。
监听fatal error,可以使用App::fatal方法。
日志操作:
Log::info
Log::warning
Log::error