Laravel|Laravel 学习 第一天
今天主要的学习任务有以下
- 安装
- 安装环境 30’
- 配置
- The Basics
- Routing
- Middleware
- Controllers
- Requests
- Responses
- Views
curl -sS https://getcomposer.org/installer | php
如果提示HTTPS证书问题可以改用如下命令行安装以忽略证书
curl -k https://getcomposer.org/installer | php
安装完Composer后,使用Composer来安装laravel
php composer.phar global require "laravel/installer=~1.1"
安装完成后将laravel加到PATH路径中,在MAC上修改PATH变量 。
添加完了后就可以使用一下命令在当前目录下创建项目了。
laravel new Project_Name
laravel 要求PHP版本大于等于5.4
在Laravel 5中调整public文件夹的名称为public_html
/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.
|
*/$app = require_once __DIR__.'/../bootstrap/app.php';
// set the public path to this directory
$app->bind('path.public', function() {
return __DIR__;
});
all set, let's start building
文章图片
Let's start coding 配置 所有和应用相关的配置都保存在
config
文件夹中读取Config变量
$value = https://www.it610.com/article/Config::get('app.timezone');
// 可以通过外观模式来读写Config里定义的变量
Config::set('app.timezone', 'America/Chicago');
$value = https://www.it610.com/article/config('app.timezone');
// 也可以通过帮助函数来读取Config的值
storage
和vendor
文件夹需要写权限修改namespace的名称可以使用如下命令行
php artisan app:name Car
维护模式 - 这个可以有
php artisan down
php artisan up
维护期间的提示页模板
resources/views/errors/503.blade.php
在项目根目录下有一个.env文件,在这里定义的所有常量都可以通过
$_ENV
访问。工程师各自的开发环境会有不同,所以这个文件最好不要提交到SourceControl中。获取并检测当前应用的环境
$environment = app()->environment();
// helper function
$environment = App::environment();
// app facadeif ($app->environment('local')) {// The environment is local}
if ($app->environment('local', 'staging')){ // The environment is either local OR staging...}
MARK 文档里有下面一句没有看懂什么意思,估计等到学Service Container的时候会搞明白
To obtain an instance of the application, resolve the Illuminate\Contracts\Foundation\ApplicationThe Basics Routing Laravel的路由做的还是很优雅的,用这套路由机制做RESTful API实在是太爽了(相比CI)
contract via the service container.
路由分组
这是个很方便的工具,可以对多个路由分组,将
Middleware 这货让我想起了很久之前.net framework里的http handler。。。
所有的middleware都存在App/Http/Middleware/这个文件夹中
创建Middleware
执行下面的语句来创建新的Middleware
php artisan make:middleware ImageFetcher
执行成功会在middleware的文件夹中多一个ImageFetcher.php的文件。
注册
Middleware做完了之后需要注册到应用中去,app/Http/这个文件夹下有Kernal.php文件,全局的middleware注册在$middleware变量中;如果是要给某个特定的Route绑定使用的middleware,注册在$routeMiddleware这个变量中。
Route::get('admin/profile', ['middleware' => 'auth', function(){
// do the shit here
}]);
可结束的Middleware
【Laravel|Laravel 学习 第一天】有的操作需要在http请求被处理之后才可以做,例如Session要在http请求结束后才会往客户端写数据。碰到这种情况,将middleware声明为TerminableMiddleware,在termintate这个函数中进行http请求完成后的操作。
use Closure;
use Illuminate\Contracts\Routing\TerminableMiddleware;
class StartSession implements TerminableMiddleware {public function handle($request, Closure $next)
{
return $next($request);
}public function terminate($request, $response)
{
// Store the session data...
}
}
推荐阅读
- 开学第一天(下)
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)