PHP code example of mheads / yii2-table

1. Go to this page and download the library: Download mheads/yii2-table 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/ */

    

mheads / yii2-table example snippets


return [
    'container' => [
        'definitions' => [
            // PSR-17
            \Psr\Http\Message\ResponseFactoryInterface::class      => \Nyholm\Psr7\Factory\Psr17Factory::class,
            \Psr\Http\Message\ServerRequestFactoryInterface::class => \Nyholm\Psr7\Factory\Psr17Factory::class,
            \Psr\Http\Message\StreamFactoryInterface::class        => \Nyholm\Psr7\Factory\Psr17Factory::class,

            // mheads/yii-table
            \Mheads\Yii\Table\Http\Request\TableRequestApplierInterface::class            => \Mheads\Yii\Table\Http\Request\TableRequestApplier::class,
            \Mheads\Yii\Table\Http\Response\TableHttpResponderInterface::class            => \Mheads\Yii\Table\Http\Response\TableHttpResponder::class,
            \Mheads\Yii\Table\Http\Response\Payload\TablePayloadResponderInterface::class => \Mheads\Yii\Table\Http\Response\Payload\JsonTablePayloadResponder::class,
            \Mheads\Yii\Table\Serialization\TableSerializerInterface::class               => \Mheads\Yii\Table\Serialization\TableArraySerializer::class,
            \Mheads\Yii\Table\Serialization\TableConfigSerializerInterface::class         => \Mheads\Yii\Table\Serialization\TableArraySerializer::class,
            \Mheads\Yii\Table\Serialization\TableRowsSerializerInterface::class           => \Mheads\Yii\Table\Serialization\TableArraySerializer::class,
            \Mheads\Yii\Table\I18n\TableTranslatorInterface::class                        => \Mheads\Yii2\Table\I18n\Yii2TableTranslator::class,

            // mheads/yii2-psr7-bridge
            \Mheads\Yii2Psr7Bridge\HttpMessageBridgeInterface::class                    => \Mheads\Yii2Psr7Bridge\HttpMessageBridge::class,
            \Mheads\Yii2Psr7Bridge\Request\Yii2ToPsr7RequestConverterInterface::class   => \Mheads\Yii2Psr7Bridge\Request\Yii2ToPsr7RequestConverter::class,
            \Mheads\Yii2Psr7Bridge\Response\Psr7ToYii2ResponseConverterInterface::class => \Mheads\Yii2Psr7Bridge\Response\Psr7ToYii2ResponseConverter::class,
        ],
    ],
];

return [
    'components' => [
        'i18n' => [
            'translations' => [
                'mheads-yii-table' => [
                    'class' => \yii\i18n\PhpMessageSource::class,
                    'basePath' => '@vendor/mheads/yii-table/resources/messages',
                ],
            ],
        ],
    ],
];



declare(strict_types=1);

namespace app\actions;

use app\tables\ProductsTableFactory;
use Mheads\Yii\Table\Http\Orchestrator\TableHttpOrchestrator;
use Mheads\Yii\Table\Provider\TableConfiguratorInterface;
use Mheads\Yii\Table\Provider\TableProviderInterface;
use Mheads\Yii2\Table\Http\TableAction;
use Mheads\Yii2Psr7Bridge\HttpMessageBridgeInterface;
use yii\web\Controller;

final class ProductsTableAction extends TableAction
{
    public function __construct(
        string $id,
        Controller $controller,
        TableHttpOrchestrator $orchestrator,
        HttpMessageBridgeInterface $bridge,
        private readonly ProductsTableFactory $tableFactory,
        array $config = [],
    ) {
        parent::__construct($id, $controller, $orchestrator, $bridge, $config);
    }

    protected function createTable(): TableProviderInterface&TableConfiguratorInterface
    {
        return $this->tableFactory->create();
    }
}

public function actions(): array
{
    return [
        'table' => [
            'class' => \app\actions\ProductsTableAction::class,
        ],
    ];
}