PHP code example of qkskima / qkskima-php

1. Go to this page and download the library: Download qkskima/qkskima-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

qkskima / qkskima-php example snippets


\QkSkima\Base\Schema::define(function ($schema) {
    $schema->table(tablename: 'contents', closure: function ($table) {
        $table->type(typeName: 'header-with-count', closure: function ($type) {
            $type->column(
                field: 'headline',
                columnName: 'qks_string_1',
                fieldtype: \QkSkima\Base\Mapper\FieldTypes::VARCHAR
            );
            $type->column(
                field: 'intro',
                columnName: 'qks_string_2',
                fieldtype: \QkSkima\Base\Mapper\FieldTypes::VARCHAR
            );
            $type->column(
                field: 'count',
                columnName: 'qks_integer_1',
                fieldtype: \QkSkima\Base\Mapper\FieldTypes::INTEGER
            );
        });
    
        $table->primaryKeyColumn(primaryKeyColumn: 'id');
        $table->stiColumn(stiColumn: 'type');
    });
});

final class FieldTypes
{
    public const VARCHAR = 'string';
    public const TEXT = 'text';
    public const INTEGER = 'integer';
    public const FLOAT = 'float';
    public const DECIMAL = 'decimal';
    public const DATETIME = 'datetime';
    public const TIMESTAMP = 'timestamp';
    public const TIME = 'time';
    public const DATE = 'date';
    public const BOOLEAN = 'boolean';
    public const BELONGS_TO = 'belongs_to';
    public const HAS_MANY = 'has_many';
    public const HAS_ONE = 'has_one';
    public const PRIMARY_KEY = 'primary_key';
    public const INHERITANCE_COLUMN = 'inheritance_column';
}

$schema = \QkSkima\Base\Schema\Registry::getInstance()->find('contents');
$schema->hasTable('contents'); # => true

$schema = \QkSkima\Base\Schema\Registry::getInstance()->find('contents');
$mapper = new \QkSkima\Base\Mapper(tablename: 'contents', schema: $schema);
$fieldPromise = $mapper->fieldPromiseFor('headline');
echo $fieldPromise->getColumnName(); # => qks_string_1
echo $fieldPromise->getFieldtype(); # => string

$schema = \QkSkima\Base\Schema\Registry::getInstance()->find('contents');
$mapper = new \QkSkima\Base\Mapper(tablename: 'contents', schema: $schema);
$fieldPromiseA = $mapper->fieldPromiseFor(fieldOrColumnName: 'headline');
$fieldPromiseB = $mapper->fieldPromiseFor(fieldOrColumnName: 'qks_string_1');

echo $fieldPromiseA === $fieldPromiseB; # => true