CodeIgniter 4.1のDatabase Query関連のクラス図
CodeIgniter 4.1.1のDatabase Query関連のクラスを理解するために、クラス図を書きましたので、残しておきます。
(2021-02-24 追記) クラス図を更新しました。
クラス図
UML
@startuml
interface ConnectionInterface {
BaseBuilder : table($tableName)
query(string $sql, $binds)
}
abstract class BaseConnection implements ConnectionInterface {
#$lastQuery
query(string $sql, $binds, ...)
#execute(string $sql)
}
BaseConnection ..> Query : create
class SQLite3\Connection extends BaseConnection {
bool : isWriteType()
execute(string $sql)
}
interface QueryInterface {
bool : isWriteType()
}
class Query implements QueryInterface
{
bool : isWriteType()
}
Query o-- ConnectionInterface
class Postgre\Query extends Query {
bool : isWriteType()
}
note right of Postgre\Query : This is just an example.\nIt doesn't exist yet.
class BaseBuilder {
#$db : ConnectionInterface
string : compileFinalQuery()
}
BaseBuilder <.. ConnectionInterface : create
BaseBuilder ..> Query : create
interface PreparedQueryInterface {
prepare(string $sql, array $options)
execute(...$data)
}
abstract class BasePreparedQuery implements PreparedQueryInterface {
#$query : Query
#$db : BaseConnection
prepare(string $sql, array $options, string $queryClass)
execute(...$data)
}
BasePreparedQuery ..> Query : create
@enduml
Date: 2021/02/20