技术开发

Laravel开发框架:

初步认识Laravel

  • Laravel环境基础:
    首先我们要确保开发环境的正确部署,Laravel的环境要求:
    PHP 5.5.9+,MySQL 5.1+。
    我安装的是WAMP开发集成环境,然后将官网中的laravel包解压到www目录下即可。
    配置好服务器,打开www下的laravel然后将http://localhost/laravel/public的地址输入就可以了,如出现以下图示laravel/public的主页

  • Laravel编程基础

读懂Laravel 5 中文文档,有配置完善的 PHP + MySQL 运行环境,懂得 PHP 网站运行的基础知识:
1. https://doc.laravel-china.org/docs/5.0
2. http://www.golaravel.com/laravel/docs/5.0/
- Laravel核心概念:https://laravel.com/docs/5.3/container

路由

  • 路由实例和基本参数

基本get路由
Route::get('/', function(){
return 'Hello World';
});

基本post路由
Route::post('/', function(){
return 'Hello World';
});

注册一个可以响应任何HTTP动作的路由
Route::get('/', function(){
return 'Hello World';
});

路由与控制器连接
Route::get('/', 'HomeController@index');

参数:
Route::get('user/{id}', function($id)
{
return 'User '.$id;
});

实例参考
- 路由分组和别名

Usay之中部分路由:

`Route::any(‘api/signup’, function () {
//实例化新model
return user_ins()->signup();
});
Route::any(‘api/login’, function () {
return user_ins()->login();
});
Route::any(‘api/logout’, function () {
return user_ins()->logout();
});

Route::any(‘api/question/add’, function () {
return question_ins()->add();
});
`

控制器

-

控制器实例和基本参数
- http://blog.csdn.net/xd43100678/article/details/24375393
- 路由缓存

HTTP session

  • 先决条件
    Laravel 中 Session 配置文件位于 config/session.php ,默认设置如下:
    return [
    'driver' => env('SESSION_DRIVER', 'file'),
    'lifetime' => 120,
    'expire_on_close' => false,
    'encrypt' => false,
    'files' => storage_path('framework/sessions'),
    'connection' => null,
    'table' => 'sessions',
    'lottery' => [2, 100],
    'cookie' => 'laravel_session',
    'path' => '/',
    'domain' => null,
    'secure' => false,
    ];
  • 响应实例和基本参数
    driver 配置项用于设置Session存储方式,默认是 file ,即存储在文件中,该文件位于 files 配置项配置的路径,即 storage/framework/sessions 。此外Laravel还支持其它存储方式:

    database :将Session数据存放到指定数据表中,该数据表由配置项 table 设置
    memcached :将Session数据存放到Memcached中
    redis :将Session数据存放到Redis中
    array :将Session数据存放到数组中,该配置仅用于测试环境

要修改 driver 配置,需要去项目根目录下 .env 文件修改其中的 SESSION_DRIVER 选项。
lifetime 配置项用于设置Session有效期,默认为120分钟。
expire_on_close 配置项用于设置是否在浏览器关闭时立即让Session失效。
encrypt 配置项用于配置Session数据是否加密。
lottery 配置项用于配置回收Session存放位置。
cookie 配置项用于配置存放Session ID的Cookie名称,默认是 laravel_session。
path 配置项用于配置存放Session ID的Cookie存放路径,默认为项目根目录。
domain 配置项用于配置存放Session ID的Cookie存放域名。
secure 配置项用于配置是否只有在HTTPS协议下发送Session ID到服务器。
使用数据库存储Session

需要将 .env 文件中的SESSION_DRIVER修改为 database ,然后将 config/session.php 中 connection 配置修改为 mysql (如果使用的数据库是MySQL的话),该配置值对应 config/database.php 中 connections 相应数据库配置项,也可以使用默认值 null 不做修改。

然后需要在项目根目录下运行如下Artisan命令:
php artisan session:table
composer dump-autoload
php artisan migrate

生成存放Session的数据表 sessions 。
使用Memcached/Redis存储Session
使用Memcached存储Session只需将 .env 文件中SESSION_DRIVER修改为 memcached 即可。
使用Redis存储Session需要将 .env 文件中SESSION_DRIVER修改为 redis ,然后将 config/session.php 中 connection 配置修改为 default (对应 config/database.php 中 redis 主机配置项),当然也可以使用默认值 null 不做修改。
这里我们使用默认配置不做改变(使用文件存储Session)。

验证

  • 表单请求验证
    ` //检查用户是否登陆

    if(!user_ins()->is_logged_in())
        return ['status' => 0, 'msg' => 'login required'];
    //检查参数中是否存在问题id和answer内容
    if(!rq('question_id')|| !rq('content'))
        return ['status' => 0, 'msg' => 'content or qustion_id required'];
    //检查问题id是否存在
    $question = question_ins()->find(rq('question_id'));
    if(!$question)
        return ['status' => 0, 'msg' => 'question not exist'];
    //检查answer是否回答过
    $answered = $this->where([
        'question_id' => rq('question_id'),
        'user_id'=> session('user_id')])
        ->count();
    if($answered)
        return ['status' => 0, 'msg' => 'duplicate answers'];
    //保存数据
    $this->content = rq('content');
    $this->question_id= rq('question_id');
    $this->user_id= session('user_id');
    
    return $this->save() ?
        ['status' => 1, 'id' => $this->id] :
        ['status' => 0, 'msg' => 'db insert failed'];
    

    `

加密

  • 加密器快速入门

`//加密密码除了Hash::make( password)bcrypt( password)

    $hashed_password = Hash::make($password);
   $user = $this;
    $user->password = $hashed_password;
    $user->username = $username;
    if ($user->save())
        return ['status' => 1, 'id' => $user->id];
    else return ['status' => 0, 'msg' => 'db insert failed'];

}

`

数据库

  • 读与写的连接
    app/config目录下,database.php包含数据库的配置,打开并修改mysql部分为如下:
  • 数据库事务
    建立一个迁移
    在cmd里面,定位到 laravel所在目录,执行如下命令:
    php artisan migrate:make –create=articles
    其中,–create=articles 就表示建立数据表
    这样,在 app/database/migrations/目录下,会生成一个迁移文件。文件名是 时间编号+create_articles_table.php本例是:2015_01_25_144256_create_articles_table.php 迁移语法检查手册
    检查手册收的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值