1. Go to this page and download the library: Download savks/negotiator 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/ */
savks / negotiator example snippets
namespace App\Http\Mapping;
use App\Models\User;
use Savks\Negotiator\Support\Mapping\{
Casts\Cast,
Mapper,
Schema
};
final class UserMapper extends Mapper
{
public function __construct(public readonly User $user)
{
}
public static function schema(): Cast
{
return Schema::object([
'id' => Schema::string('id'),
'firstName' => Schema::string('first_name'),
'lastName' => Schema::string('last_name')->nullable(),
], 'user');
}
}
use App\Http\Mapping\UserMapper;
use Savks\Negotiator\Enums\RefTypes;
use Illuminate\Support\Str;
use Savks\Negotiator\Support\TypeGeneration\TypeScript\{
Generator,
Target
};
$generator = new Generator(
/* Функція для визначення референсів. */
fn (RefTypes $type, string $target) => match ($type) {
RefTypes::ENUM => sprintf(
'import(\'@enums\').%s',
class_basename($target::class)
),
RefTypes::MAPPER => sprintf(
'import(\'@dto\').%s',
class_basename($target::class)
),
}
);
$generator->addTarget(
new Target(UserMapper::class, '@dto')
);
$generator->saveTo('./path_to_file.ts');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.