PHP code example of misarai / misardev-php

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

    

misarai / misardev-php example snippets


use MisarDev\MisarDev;

$dev = new MisarDev(getenv('MISARDEV_API_KEY'));


MisarDev\MisarDev;

$dev = new MisarDev(getenv('MISARDEV_API_KEY'));

$created = $dev->projects->create([
    'name'        => 'Coffee shop site',
    'description' => 'A one-page site for a neighbourhood coffee shop',
]);

echo $created['project']['id'];

$projectId = $dev->projects->create(['name' => 'Landing page'])['project']['id'];

$dev->projects->writeFiles($projectId, [
    'files' => [
        ['path' => 'index.html', 'content' => '<h1>Hello</h1>'],
        ['path' => 'styles.css', 'content' => 'h1 { color: #22c55e; }'],
    ],
]);

$files = $dev->projects->listFiles($projectId);

// Check the subdomain first — bdomain($projectId, 'coffee-shop');

$deployment = $dev->projects->deploy($projectId, ['subdomain' => 'coffee-shop']);
$status     = $dev->projects->getDeployment($projectId);

$templates = $dev->templates->list(['featured' => true, 'limit' => 10])['templates'];

$created = $dev->templates->use($templates[0]['id'], ['projectName' => 'My portfolio']);

$completion = $dev->chat->completions([
    'model'    => 'misar-online',
    'messages' => [['role' => 'user', 'content' => "What's new in CSS this year?"]],
]);

echo $completion['choices'][0]['message']['content'];

foreach ($dev->chat->completionsStream([
    'model'    => 'misar-online',
    'messages' => [['role' => 'user', 'content' => 'Write a haiku']],
]) as $chunk) {
    echo $chunk->data['choices'][0]['delta']['content'] ?? '';
}

$hits     = $dev->search->code(['q' => 'useEffect', 'types' => 'files', 'limit' => 20]);
$semantic = $dev->rag->search($projectId, ['query' => 'where do we send email?']);

$plan  = $dev->usage->plan();
$usage = $dev->usage->list(['days' => 30]);

$fresh = $dev->account->createKey(['name' => 'CI']);
echo $fresh['key'];   // shown once and never again

use MisarDev\PlanLimitError;

try {
    $dev->projects->list();
} catch (PlanLimitError $e) {
    fwrite(STDERR, ($e->offer['headline'] ?? $e->getMessage()) . "\n");
    foreach ($e->offer['plans'] ?? [] as $plan) {
        fwrite(STDERR, "  {$plan['name']} — {$plan['price']}\n");
    }
    fwrite(STDERR, 'Upgrade: ' . $e->upgradeUrl() . "\n");
    // $e->feature(), $e->currentPlan(), $e->recommendedPlan(), $e->retryAfter
}

foreach ($dev->chat->completionsStream([
    'model'    => 'misar-online',
    'messages' => [['role' => 'user', 'content' => 'Write a haiku']],
]) as $chunk) {
    echo $chunk->data['choices'][0]['delta']['content'] ?? '';
}

foreach ($dev->projects->buildStream($projectId) as $event) {
    echo $event->event, ' ', json_encode($event->data), "\n";
}

foreach ($dev->paginate(fn (int $offset, int $limit) =>
    $dev->templates->list(['offset' => $offset, 'limit' => $limit])) as $template) {
    echo $template['name'], "\n";
}

// pageSize and maxItems are optional: $dev->paginate($fetch, 50, 200)
bash
composer