介绍swoft中
1、mysql、
2、Redis
一、mysql使用:
1、配置,在 appean.php
文件中
'db' => [ 'class' => Database::class, 'dsn' => 'mysql:dbname=webdemo;host=localhost', 'username' => 'root', 'password' => 'foto_cj1', ],
//链接池配置 'db2.pool' => [ 'class' => Pool::class, 'database' => bean('db'), 'minActive' => 10, 'maxActive' => 20, 'maxWait' => 0, 'maxWaitTime' => 0, 'maxIdleTime' => 60, ],
2、生成Model,一个Model对应一张表。在 /App/Model/Entity/ 文件夹下新建文件
<?php declare(strict_types=1); namespace AppModelEntity; use SwoftDbAnnotationMappingColumn; use SwoftDbAnnotationMappingEntity; use SwoftDbAnnotationMappingId; use SwoftDbEloquentModel; /** * * Class Demo * * @since 2.0 * * @Entity(table="demo",pool="db2.pool") //定义Model,参数是对应的表和连接池(选填) */ class Demo extends Model { /** *默认自动添加 created_at 和 updated_at,不需要时设置为false * @var bool */ public $modelTimestamps = false; /** * * @Id(incrementing=false) * @Column(name="id") //定义列 * * @var int */ private $id; /** * @Column(name="name") * * @var string|null */ private $name; /** * @param int $id * * @return void */ public function setId(int $id): void { $this->id = $id; } /** * @param string|null $name * * @return void */ public function setName(?string $name): void { $this->name = $name; } /** * @return int */ public function getId(): ?int { return $this->id; } /** * @return string|null */ public function getName(): ?string { return $this->name; } }
3、使用(Model)
//查询 $user = Demo::find($)->toArray(); //修改 $sdbuser = Demo::find($id); $sdbuser->setName("cjcjcjccj"); //或者 $sdbuser->update(['name' => "dddddd"]); //删除 $result = Demo::where('id', 1)->delete(); $user = Demo::find($data["uid"]); $result = $user->delete(); //插入 $count = new Demo(); $count->setId(mt_rand(1, 100)); $count->setName('attr'); $result = $count->save(); $nId = $count->getId(); //批量插入 $insArr = [ [ 'id' => random_int(1, 100), 'name' => md5(uniqid()) ], [ 'id' => random_int(1, 100), 'name' => md5(uniqid()) ] ]; $result = Demo::insert($insArr);
4、DB原生使用:https://www.swoft.org/docs/2.x/zh-CN/db/builder.html
二:Redis简单使用:
1、配置:在 appean.php
文件中
'redis' => [ 'class' => RedisDb::class, 'host' => '127.0.0.1', 'port' => 6379, 'database' => 0, 'option' => [ 'prefix' => 'swoft:' ] ], 'redis.pool' => [ 'class' => SwoftRedisPool::class, 'redisDb' => ean('redis'), 'minActive' => 10, 'maxActive' => 20, 'maxWait' => 0, 'maxWaitTime' => 0, 'maxIdleTime' => 40, ]
2、使用
(1)、直接使用
Redis::set($key, $setData,$time);
Redis::get($key);
(2)、通过 @Inject注入连接池方式使用
在/App/Http/Controller/中新建文件
/** * Class RedisController * * @since 2.0 * @Controller("redis") */ class RedisController { /** * @Inject("redis.pool") * * @var Pool */ private $redis; /** * @return array * @RequestMapping("find") //访问路由: /redis/find * @throws Throwable */ public function find() { $us = $this->redis->get('user'); if($us) $this->redis->set('user', ["name" => "gimi", "age" => "18"],120); return $us; } }
查看文档:
https://www.swoft.org/docs/2.x/zh-CN/db/index.html
https://www.swoft.org/docs/2.x/zh-CN/redis/index.html